@zextras/carbonio-shell-ui
Version:
The Zextras Carbonio web client
41 lines (40 loc) • 2.02 kB
TypeScript
import type { ComponentType } from 'react';
import type { AppRoute, AppRouteDescriptor, AppView, BadgeInfo, BoardView, CarbonioModule, PrimaryAccessoryView, PrimaryBarView, SecondaryAccessoryView, SecondaryBarView, SettingsView, UtilityView } from '../../types/apps';
export type AppState = {
focusMode: false | string;
apps: Record<string, CarbonioModule>;
appContexts: Record<string, unknown>;
entryPoints: Record<string, ComponentType>;
routes: Record<string, AppRoute>;
views: {
primaryBar: Array<PrimaryBarView>;
secondaryBar: Array<SecondaryBarView>;
appView: Array<AppView>;
board: Array<BoardView>;
utilityBar: Array<UtilityView>;
settings: Array<SettingsView>;
primaryBarAccessories: Array<PrimaryAccessoryView>;
secondaryBarAccessories: Array<SecondaryAccessoryView>;
};
shell: CarbonioModule;
};
export type AppActions = {
setApps: (apps: Array<Partial<CarbonioModule>>) => void;
upsertApp: (app: Pick<CarbonioModule, 'name' | 'display'>) => void;
addRoute: (routeData: AppRouteDescriptor) => string;
setRouteVisibility: (id: string, visible: boolean) => void;
removeRoute: (id: string) => void;
updatePrimaryBadge: (badge: Partial<BadgeInfo>, id: string) => void;
addBoardView: (data: BoardView) => string;
removeBoardView: (id: string) => void;
addSettingsView: (data: SettingsView) => string;
removeSettingsView: (id: string) => void;
addUtilityView: (data: UtilityView) => string;
removeUtilityView: (id: string) => void;
addPrimaryAccessoryView: (data: PrimaryAccessoryView) => string;
removePrimaryAccessoryView: (id: string) => void;
addSecondaryAccessoryView: (data: SecondaryAccessoryView) => string;
removeSecondaryAccessoryView: (id: string) => void;
setAppContext: (app: string) => <T = unknown>(context: T) => void;
};
export declare const useAppStore: import("zustand").UseBoundStore<import("zustand").StoreApi<AppState & AppActions>>;