UNPKG

@kinvolk/headlamp-plugin

Version:

The needed infrastructure for building Headlamp plugins.

42 lines (41 loc) 1.93 kB
import { PayloadAction } from '@reduxjs/toolkit'; import { ReactElement } from 'react'; import { ClusterChooserType } from '../components/cluster/ClusterChooser'; export type FunctionsToOverride = { setToken?: (cluster: string, token: string | null) => void; getToken?: (cluster: string) => string | undefined; }; export interface UIPanel { /** Unique ID for this panel */ id: string; /** Panel location */ side: 'top' | 'right' | 'bottom' | 'left'; /** React component that will be rendered inside the panel */ component: (props: any) => ReactElement; } export interface UIState { isVersionDialogOpen: boolean; clusterChooserButtonComponent?: ClusterChooserType; hideAppBar?: boolean; isFullWidth?: boolean; functionsToOverride: FunctionsToOverride; panels: Array<UIPanel>; } export declare const INITIAL_UI_STATE: UIState; export declare const uiSlice: import("@reduxjs/toolkit").Slice<UIState, { setHideAppBar(state: import("immer").WritableDraft<UIState>, action: PayloadAction<boolean | undefined>): void; setClusterChooserButton(state: import("immer").WritableDraft<UIState>, action: PayloadAction<ClusterChooserType | undefined>): void; setVersionDialogOpen(state: import("immer").WritableDraft<UIState>, action: PayloadAction<boolean>): void; setFunctionsToOverride(state: import("immer").WritableDraft<UIState>, action: PayloadAction<FunctionsToOverride>): void; setIsFullWidth(state: import("immer").WritableDraft<UIState>, action: PayloadAction<boolean | undefined>): void; addUIPanel(state: import("immer").WritableDraft<UIState>, action: PayloadAction<UIPanel>): void; }, "ui", "ui", import("@reduxjs/toolkit").SliceSelectors<UIState>>; /** * @returns UI panels grouped by their location */ export declare const useUIPanelsGroupedBySide: () => { top: UIPanel[]; right: UIPanel[]; left: UIPanel[]; bottom: UIPanel[]; };