mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-13 03:13:47 +00:00
feat: editor layout
This commit is contained in:
committed by
Carlos Valente
parent
967e92e2c8
commit
da02ecd113
@@ -0,0 +1,33 @@
|
||||
import { useSearchParams } from 'react-router';
|
||||
import { isValueOfEnum } from 'ontime-utils';
|
||||
|
||||
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 };
|
||||
}
|
||||
Reference in New Issue
Block a user