UNPKG

@datalayer/core

Version:

[![Datalayer](https://assets.datalayer.tech/datalayer-25.svg)](https://datalayer.io)

63 lines (62 loc) 2.48 kB
import { ReactPortal } from 'react'; import { IAnyOrganization, IAnySpace, IAnyTeam, ISpaceItem } from '../../models'; export type BannerDisplayVariant = 'danger' | 'info' | 'success' | 'warning'; export type LeftSidebarVariant = 'codefeed' | 'course' | 'empty' | 'guess-account' | 'guess-space' | 'guess-spaces' | 'organization' | 'organization-space' | 'organization-spaces' | 'organizations' | 'public' | 'unchanged' | 'user' | 'user-space' | 'user-spaces'; export type BackdropDisplay = { open: boolean; message?: string | void; }; type BannerDisplay = { message: string; variant: BannerDisplayVariant; timestamp?: Date; }; type PortalDisplay = { portal: ReactPortal; pinned: boolean; }; export type ScreenshotDisplay = { open: boolean; message?: string | void; }; export type ILayoutState = { backdrop?: BackdropDisplay; banner?: BannerDisplay; bootstrapped: boolean; item?: ISpaceItem; itemsRefreshCount: number; leftPortal?: PortalDisplay; leftSidebarVariant: LeftSidebarVariant; organization?: IAnyOrganization; rightPortal?: PortalDisplay; screenCapture?: string; screenshot?: ScreenshotDisplay; space?: IAnySpace; team?: IAnyTeam; }; export type LayoutState = ILayoutState & { hideBackdrop: () => void; hideScreenshot: () => void; reset: () => void; resetForcedLeftPortal: () => void; resetForcedRightPortal: () => void; resetLeftPortal: () => void; resetRightPortal: () => void; setBanner: (bannerDisplay: BannerDisplay) => void; setBootstrapped: (bootstrapped: boolean) => void; setItem: (item?: ISpaceItem) => void; setLeftPortal: (leftPortal: PortalDisplay) => void; setLeftSidebarVariant: (leftSidebarVariant: LeftSidebarVariant) => void; setRightPortal: (rightPortal: PortalDisplay) => void; setScreenCapture: (screenCapture?: string) => void; showBackdrop: (message?: string) => void; showScreenshot: (message?: string) => void; triggerItemsRefresh: () => void; updateLayoutOrganization: (organization?: Partial<IAnyOrganization>) => void; updateLayoutSpace: (space?: Partial<IAnySpace>) => void; updateLayoutTeam: (team?: Partial<IAnyTeam>) => void; }; export declare const layoutStore: import("zustand").StoreApi<LayoutState>; export declare function useLayoutStore(): LayoutState; export declare function useLayoutStore<T>(selector: (state: LayoutState) => T): T; export default useLayoutStore;