summaryrefslogtreecommitdiff
path: root/apps/web/src/lib/timeline/zoom-utils.ts
diff options
context:
space:
mode:
authorMaze Winther <mazewinther@gmail.com>2026-04-01 19:27:49 +0200
committerMaze Winther <mazewinther@gmail.com>2026-04-01 19:27:49 +0200
commitbd9ec023eefc4b5d26fa8b66c4338e97104f0f96 (patch)
tree08350eaa107b27f026eebdb65df54b1ca25521fd /apps/web/src/lib/timeline/zoom-utils.ts
parentf4b9f40ab1ba1cedf208bba708f4331d36bb30cc (diff)
downloadopencut-bd9ec023eefc4b5d26fa8b66c4338e97104f0f96.tar.gz
refactor: split constants by domain and isolate timeline panel from core
Diffstat (limited to 'apps/web/src/lib/timeline/zoom-utils.ts')
-rw-r--r--apps/web/src/lib/timeline/zoom-utils.ts15
1 files changed, 9 insertions, 6 deletions
diff --git a/apps/web/src/lib/timeline/zoom-utils.ts b/apps/web/src/lib/timeline/zoom-utils.ts
index bbc0b6ae..c06957d0 100644
--- a/apps/web/src/lib/timeline/zoom-utils.ts
+++ b/apps/web/src/lib/timeline/zoom-utils.ts
@@ -1,4 +1,7 @@
-import { TIMELINE_CONSTANTS } from "@/constants/timeline-constants";
+import {
+ BASE_TIMELINE_PIXELS_PER_SECOND,
+ TIMELINE_ZOOM_MAX,
+} from "@/lib/timeline/scale";
const PADDING_MAX_RATIO = 0.75;
const PADDING_MIN_RATIO = 0.15;
@@ -16,9 +19,9 @@ export function getTimelineZoomMin({
const contentRatioAtMinZoom = 1 - PADDING_MAX_RATIO;
const availableWidth = safeContainerWidth * contentRatioAtMinZoom;
const zoomToFit =
- availableWidth / (safeDuration * TIMELINE_CONSTANTS.PIXELS_PER_SECOND);
+ availableWidth / (safeDuration * BASE_TIMELINE_PIXELS_PER_SECOND);
- return Math.min(TIMELINE_CONSTANTS.ZOOM_MAX, zoomToFit);
+ return Math.min(TIMELINE_ZOOM_MAX, zoomToFit);
}
export function getTimelinePaddingPx({
@@ -49,7 +52,7 @@ export function getZoomPercent({
zoomLevel: number;
minZoom: number;
}): number {
- return (zoomLevel - minZoom) / (TIMELINE_CONSTANTS.ZOOM_MAX - minZoom);
+ return (zoomLevel - minZoom) / (TIMELINE_ZOOM_MAX - minZoom);
}
/**
@@ -59,7 +62,7 @@ export function getZoomPercent({
export function sliderToZoom({
sliderPosition,
minZoom,
- maxZoom = TIMELINE_CONSTANTS.ZOOM_MAX,
+ maxZoom = TIMELINE_ZOOM_MAX,
}: {
sliderPosition: number;
minZoom: number;
@@ -75,7 +78,7 @@ export function sliderToZoom({
export function zoomToSlider({
zoomLevel,
minZoom,
- maxZoom = TIMELINE_CONSTANTS.ZOOM_MAX,
+ maxZoom = TIMELINE_ZOOM_MAX,
}: {
zoomLevel: number;
minZoom: number;