UNPKG

@gamesberry/karmyc-core

Version:

A flexible and powerful layout management system for React applications

48 lines (47 loc) 1.53 kB
import React from 'react'; import { StateCreator } from 'zustand'; import { ContextMenuItem, IContextMenuPosition } from '../types/context-menu-types'; import { RootStateType } from '../store'; /** * État du menu contextuel. */ export interface ContextMenuState { isVisible: boolean; position: IContextMenuPosition; items: ContextMenuItem[]; errors: string[]; targetId?: string; metadata?: Record<string, any>; menuClassName?: string; customContextMenuContent?: React.ReactNode; menuType?: 'default' | 'switchType' | 'custom'; } /** * Actions du menu contextuel. */ export interface ContextMenuActions { openContextMenu: (payload: { position: IContextMenuPosition; items: ContextMenuItem[] | React.ReactNode; targetId?: string; metadata?: Record<string, any>; }) => void; openCustomContextMenu: (payload: { position: IContextMenuPosition; targetId?: string; metadata?: Record<string, any>; component: React.ReactNode; }) => void; closeContextMenu: () => void; updateContextMenuPosition: (position: IContextMenuPosition) => void; updateContextMenuItems: (items: ContextMenuItem[]) => void; clearErrors: () => void; } export type ContextMenuSlice = { contextMenu: ContextMenuState & ContextMenuActions; }; export declare const initialState: ContextMenuState; export declare const createContextMenuSlice: StateCreator<RootStateType, // le type global du store [ ], [ ], ContextMenuSlice>;