Files
ontime/apps/client/src/views/editor/useEditorLayout.ts
T
Carlos Valente 1849b4d39f Deps migration (#1988)
* chore: migrate eslint to oxlint

* chore: migrate prettier to oxfmt

* chore: migrate typescript

* chore: toThrow should have a expected value

* chore: cast test value as Day

* chore: small title fix

* chore: mocks should be hoisted

* chore: incorrect async useage

* chore: test should be inside description

* chore: test sohuld include an expeced

* chore: oxfmt

---------

Co-authored-by: alex-Arc <omnivox@LAPTOP-RC5SNBVV.localdomain>
2026-03-08 16:22:12 +01:00

34 lines
906 B
TypeScript

import { isValueOfEnum } from 'ontime-utils';
import { useSearchParams } from 'react-router';
const layoutParam = 'layout';
export enum EditorLayoutMode {
CONTROL = 'control',
PLANNING = 'planning',
TRACKING = 'tracking',
}
/**
* Resolves the current editor layout mode from a nullable string value
*/
function getEditorLayout(value: string | null): EditorLayoutMode {
if (isValueOfEnum(EditorLayoutMode, value)) {
return value;
}
return EditorLayoutMode.CONTROL;
}
export function useEditorLayout() {
const [searchParams, setSearchParams] = useSearchParams();
const layoutMode = getEditorLayout(searchParams.get(layoutParam));
const setLayoutMode = (mode: EditorLayoutMode) => {
const nextParams = new URLSearchParams(searchParams);
nextParams.set(layoutParam, mode);
setSearchParams(nextParams, { replace: true });
};
return { layoutMode, setLayoutMode };
}