From 055a6af0551302ebfd482183eb3d682baaf9ebdd Mon Sep 17 00:00:00 2001 From: Maze Winther Date: Thu, 10 Jul 2025 20:35:15 +0200 Subject: refactor: move constants to src/constants --- apps/web/src/constants/timeline-constants.ts | 78 ++++++++++++++++++++++++++++ apps/web/src/lib/timeline-constants.ts | 78 ---------------------------- 2 files changed, 78 insertions(+), 78 deletions(-) create mode 100644 apps/web/src/constants/timeline-constants.ts delete mode 100644 apps/web/src/lib/timeline-constants.ts diff --git a/apps/web/src/constants/timeline-constants.ts b/apps/web/src/constants/timeline-constants.ts new file mode 100644 index 00000000..26cd865c --- /dev/null +++ b/apps/web/src/constants/timeline-constants.ts @@ -0,0 +1,78 @@ +import type { TrackType } from "@/types/timeline"; + +// Track color definitions +export const TRACK_COLORS: Record< + TrackType, + { solid: string; background: string; border: string } +> = { + media: { + solid: "bg-blue-500", + background: "bg-blue-500/20", + border: "border-white/80", + }, + text: { + solid: "bg-[#9C4937]", + background: "bg-[#9C4937]", + border: "border-white/80", + }, + audio: { + solid: "bg-green-500", + background: "bg-green-500/20", + border: "border-white/80", + }, +} as const; + +// Utility functions +export function getTrackColors(type: TrackType) { + return TRACK_COLORS[type]; +} + +export function getTrackElementClasses(type: TrackType) { + const colors = getTrackColors(type); + return `${colors.background} ${colors.border}`; +} + +// Track height definitions +export const TRACK_HEIGHTS: Record = { + media: 65, + text: 25, + audio: 50, +} as const; + +// Utility function for track heights +export function getTrackHeight(type: TrackType): number { + return TRACK_HEIGHTS[type]; +} + +// Calculate cumulative height up to (but not including) a track index +export function getCumulativeHeightBefore( + tracks: Array<{ type: TrackType }>, + trackIndex: number +): number { + const GAP = 4; // 4px gap between tracks (equivalent to Tailwind's gap-1) + return tracks + .slice(0, trackIndex) + .reduce((sum, track) => sum + getTrackHeight(track.type) + GAP, 0); +} + +// Calculate total height of all tracks +export function getTotalTracksHeight( + tracks: Array<{ type: TrackType }> +): number { + const GAP = 4; // 4px gap between tracks (equivalent to Tailwind's gap-1) + const tracksHeight = tracks.reduce( + (sum, track) => sum + getTrackHeight(track.type), + 0 + ); + const gapsHeight = Math.max(0, tracks.length - 1) * GAP; // n-1 gaps for n tracks + return tracksHeight + gapsHeight; +} + +// Other timeline constants +export const TIMELINE_CONSTANTS = { + ELEMENT_MIN_WIDTH: 80, + PIXELS_PER_SECOND: 50, + TRACK_HEIGHT: 60, // Default fallback + DEFAULT_TEXT_DURATION: 5, + ZOOM_LEVELS: [0.25, 0.5, 1, 1.5, 2, 3, 4], +} as const; diff --git a/apps/web/src/lib/timeline-constants.ts b/apps/web/src/lib/timeline-constants.ts deleted file mode 100644 index 26cd865c..00000000 --- a/apps/web/src/lib/timeline-constants.ts +++ /dev/null @@ -1,78 +0,0 @@ -import type { TrackType } from "@/types/timeline"; - -// Track color definitions -export const TRACK_COLORS: Record< - TrackType, - { solid: string; background: string; border: string } -> = { - media: { - solid: "bg-blue-500", - background: "bg-blue-500/20", - border: "border-white/80", - }, - text: { - solid: "bg-[#9C4937]", - background: "bg-[#9C4937]", - border: "border-white/80", - }, - audio: { - solid: "bg-green-500", - background: "bg-green-500/20", - border: "border-white/80", - }, -} as const; - -// Utility functions -export function getTrackColors(type: TrackType) { - return TRACK_COLORS[type]; -} - -export function getTrackElementClasses(type: TrackType) { - const colors = getTrackColors(type); - return `${colors.background} ${colors.border}`; -} - -// Track height definitions -export const TRACK_HEIGHTS: Record = { - media: 65, - text: 25, - audio: 50, -} as const; - -// Utility function for track heights -export function getTrackHeight(type: TrackType): number { - return TRACK_HEIGHTS[type]; -} - -// Calculate cumulative height up to (but not including) a track index -export function getCumulativeHeightBefore( - tracks: Array<{ type: TrackType }>, - trackIndex: number -): number { - const GAP = 4; // 4px gap between tracks (equivalent to Tailwind's gap-1) - return tracks - .slice(0, trackIndex) - .reduce((sum, track) => sum + getTrackHeight(track.type) + GAP, 0); -} - -// Calculate total height of all tracks -export function getTotalTracksHeight( - tracks: Array<{ type: TrackType }> -): number { - const GAP = 4; // 4px gap between tracks (equivalent to Tailwind's gap-1) - const tracksHeight = tracks.reduce( - (sum, track) => sum + getTrackHeight(track.type), - 0 - ); - const gapsHeight = Math.max(0, tracks.length - 1) * GAP; // n-1 gaps for n tracks - return tracksHeight + gapsHeight; -} - -// Other timeline constants -export const TIMELINE_CONSTANTS = { - ELEMENT_MIN_WIDTH: 80, - PIXELS_PER_SECOND: 50, - TRACK_HEIGHT: 60, // Default fallback - DEFAULT_TEXT_DURATION: 5, - ZOOM_LEVELS: [0.25, 0.5, 1, 1.5, 2, 3, 4], -} as const; -- cgit v1.3.1