@gamesberry/karmyc-core
Version:
A flexible and powerful layout management system for React applications
34 lines (33 loc) • 953 B
TypeScript
import { StateCreator } from 'zustand';
import { RootStateType } from '../store';
import { AreasState } from "./areas-slice";
/**
* État des écrans (screens) dans le store.
*/
export interface ScreenState {
areas: AreasState;
isDetached?: boolean;
detachedFromAreaId?: string;
isLocked?: boolean;
}
/**
* Actions possibles sur les écrans (screens).
*/
export interface ScreensActions {
addScreen: () => void;
switchScreen: (screenId: string) => void;
removeScreen: (screenId: string) => void;
duplicateScreen: (screenId: string) => void;
detachArea: (areaId: string) => void;
}
export type ScreensState = {
screens: Record<string, ScreenState>;
activeScreenId: string;
nextScreenId: number;
lastUpdated: number;
};
export type ScreensSlice = ScreensState & ScreensActions;
export declare const createScreensSlice: StateCreator<RootStateType, // le type global du store
[
], [
], ScreensSlice>;