From 4058231d6b9220a38fb0867ac4165e23cdfac92e Mon Sep 17 00:00:00 2001 From: Carlos Valente Date: Mon, 22 Sep 2025 07:54:56 +0200 Subject: [PATCH] refactor: remove unused code --- .../view-params-editor/ViewParamPresets.tsx | 0 apps/client/src/common/models/Util.type.ts | 1 - .../common/stores/useCuesheetLinksStore.ts | 89 ------------------- .../src/common/utils/safeParseNumber.ts | 8 -- apps/client/src/features/PresetWrapper.tsx | 29 ------ .../cuesheet-table-elements/rowObserver.ts | 51 ----------- .../visibleRowsStore.ts | 18 ---- 7 files changed, 196 deletions(-) delete mode 100644 apps/client/src/common/components/view-params-editor/ViewParamPresets.tsx delete mode 100644 apps/client/src/common/models/Util.type.ts delete mode 100644 apps/client/src/common/stores/useCuesheetLinksStore.ts delete mode 100644 apps/client/src/common/utils/safeParseNumber.ts delete mode 100644 apps/client/src/features/PresetWrapper.tsx delete mode 100644 apps/client/src/views/cuesheet/cuesheet-table/cuesheet-table-elements/rowObserver.ts delete mode 100644 apps/client/src/views/cuesheet/cuesheet-table/cuesheet-table-elements/visibleRowsStore.ts diff --git a/apps/client/src/common/components/view-params-editor/ViewParamPresets.tsx b/apps/client/src/common/components/view-params-editor/ViewParamPresets.tsx deleted file mode 100644 index e69de29bb..000000000 diff --git a/apps/client/src/common/models/Util.type.ts b/apps/client/src/common/models/Util.type.ts deleted file mode 100644 index 52c5b3164..000000000 --- a/apps/client/src/common/models/Util.type.ts +++ /dev/null @@ -1 +0,0 @@ -export type Size = 'xs' | 'sm' | 'md' | 'lg'; diff --git a/apps/client/src/common/stores/useCuesheetLinksStore.ts b/apps/client/src/common/stores/useCuesheetLinksStore.ts deleted file mode 100644 index 56473c229..000000000 --- a/apps/client/src/common/stores/useCuesheetLinksStore.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { create } from 'zustand'; - -type Target = 'cuesheet' | 'timer' | 'clock' | 'countdown' | 'backstage' | 'studio'; - -interface SelectionState { - [key: string]: boolean; -} - -interface ColumnPermissions { - read: string[]; - write: string[]; -} - -interface CuesheetLinksState { - target: Target | null; - readSelected: SelectionState; - writeSelected: SelectionState; - setTarget: (target: Target | null) => void; - setField: (field: 'read' | 'write', key: string, value: boolean) => void; - toggleField: (field: 'read' | 'write', key: string) => void; - selectAll: (field: 'read' | 'write', keys: string[]) => void; - clearAll: (field: 'read' | 'write', keys: string[]) => void; - // Returns arrays of column keys that have read/write permissions if target is 'cuesheet' - getSelections: () => ColumnPermissions | null; -} - -export const useCuesheetLinksStore = create((set, get) => ({ - target: null, - readSelected: {}, - writeSelected: {}, - setTarget: (target) => set({ target }), - setField: (field, key, value) => - set((state) => ({ - ...(field === 'read' - ? { readSelected: { ...state.readSelected, [key]: value } } - : { writeSelected: { ...state.writeSelected, [key]: value } }), - })), - toggleField: (field, key) => - set((state) => ({ - ...(field === 'read' - ? { readSelected: { ...state.readSelected, [key]: !state.readSelected[key] } } - : { writeSelected: { ...state.writeSelected, [key]: !state.writeSelected[key] } }), - })), - selectAll: (field, keys) => - set((_state) => ({ - ...(field === 'read' - ? { - readSelected: keys.reduce((acc, key) => { - acc[key] = true; - return acc; - }, {} as SelectionState), - } - : { - writeSelected: keys.reduce((acc, key) => { - acc[key] = true; - return acc; - }, {} as SelectionState), - }), - })), - clearAll: (field, keys) => - set((_state) => ({ - ...(field === 'read' - ? { - readSelected: keys.reduce((acc, key) => { - acc[key] = false; - return acc; - }, {} as SelectionState), - } - : { - writeSelected: keys.reduce((acc, key) => { - acc[key] = false; - return acc; - }, {} as SelectionState), - }), - })), - getSelections: () => { - const state = get(); - if (state.target !== 'cuesheet') return null; - - return { - read: Object.entries(state.readSelected) - .filter(([_, selected]) => selected) - .map(([key]) => key), - write: Object.entries(state.writeSelected) - .filter(([_, selected]) => selected) - .map(([key]) => key), - }; - }, -})); diff --git a/apps/client/src/common/utils/safeParseNumber.ts b/apps/client/src/common/utils/safeParseNumber.ts deleted file mode 100644 index c59958cee..000000000 --- a/apps/client/src/common/utils/safeParseNumber.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { MaybeString } from 'ontime-types'; - -export default function safeParseNumber(value: MaybeString, defaultValue: number = 0): number { - if (!value) return defaultValue; - const number = Number(value); - if (isNaN(number)) return defaultValue; - return number; -} diff --git a/apps/client/src/features/PresetWrapper.tsx b/apps/client/src/features/PresetWrapper.tsx deleted file mode 100644 index 6f63e336e..000000000 --- a/apps/client/src/features/PresetWrapper.tsx +++ /dev/null @@ -1,29 +0,0 @@ -/* eslint-disable react/display-name */ -import { ComponentType, useEffect } from 'react'; -import { useLocation, useNavigate } from 'react-router'; - -import useUrlPresets from '../common/hooks-query/useUrlPresets'; -import { getRouteFromPreset } from '../common/utils/urlPresets'; - -const withPreset =

(Component: ComponentType

) => { - return (props: Partial

) => { - const { data } = useUrlPresets(); - const navigate = useNavigate(); - const location = useLocation(); - - // navigate if is alias route - useEffect(() => { - if (!data) return; - const destination = getRouteFromPreset(location, data); - - // navigate to this destination if its not null - if (destination) { - navigate(destination); - } - }, [data, navigate, location]); - - return ; - }; -}; - -export default withPreset; diff --git a/apps/client/src/views/cuesheet/cuesheet-table/cuesheet-table-elements/rowObserver.ts b/apps/client/src/views/cuesheet/cuesheet-table/cuesheet-table-elements/rowObserver.ts deleted file mode 100644 index 9ecd71538..000000000 --- a/apps/client/src/views/cuesheet/cuesheet-table/cuesheet-table-elements/rowObserver.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { useVisibleRowsStore } from './visibleRowsStore'; - -let observer: IntersectionObserver | null = null; - -function getObserver(): IntersectionObserver { - if (!observer) { - const options: IntersectionObserverInit = { - root: null, - rootMargin: '400px 0px', // prevent unmounting rows too early - threshold: 0.25, - }; - - const handleOnIntersect: IntersectionObserverCallback = (entries) => { - const visibleRows = useVisibleRowsStore.getState(); - entries.forEach((entry) => { - const targetId = entry.target.id; - if (entry.isIntersecting) { - visibleRows.addVisibleRow(targetId); - } else { - visibleRows.removeVisibleRow(targetId); - } - }); - }; - - observer = new IntersectionObserver(handleOnIntersect, options); - } - - return observer; -} - -/** - * register a row element in the observer - */ -export function observeRow(element: HTMLElement) { - getObserver().observe(element); -} - -/** - * unregister a row element in the observer - */ -export function unobserveRow(element: HTMLElement) { - getObserver().unobserve(element); -} - -/** - * cleanup observer, should be called when the table component unmounts - */ -export function cleanup() { - observer?.disconnect(); - observer = null; -} diff --git a/apps/client/src/views/cuesheet/cuesheet-table/cuesheet-table-elements/visibleRowsStore.ts b/apps/client/src/views/cuesheet/cuesheet-table/cuesheet-table-elements/visibleRowsStore.ts deleted file mode 100644 index fc20bf3a2..000000000 --- a/apps/client/src/views/cuesheet/cuesheet-table/cuesheet-table-elements/visibleRowsStore.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { create } from 'zustand'; - -interface VisibleRowsStore { - visibleRows: Set; - addVisibleRow: (id: string) => void; - removeVisibleRow: (id: string) => void; -} - -export const useVisibleRowsStore = create((set) => ({ - visibleRows: new Set(), - addVisibleRow: (id) => set((state) => ({ visibleRows: new Set(state.visibleRows).add(id) })), - removeVisibleRow: (id) => - set((state) => { - const newSet = new Set(state.visibleRows); - newSet.delete(id); - return { visibleRows: newSet }; - }), -}));