import React from "react"; import { AppState, SidebarName, SidebarTabName } from "../../types"; export type SidebarTriggerProps = { name: SidebarName; tab?: SidebarTabName; icon?: JSX.Element; children?: React.ReactNode; title?: string; className?: string; onToggle?: (open: boolean) => void; style?: React.CSSProperties; }; export type SidebarProps

= { name: SidebarName; children: React.ReactNode; /** * Called on sidebar open/close or tab change. */ onStateChange?: (state: AppState["openSidebar"]) => void; /** * supply alongside `docked` prop in order to make the Sidebar user-dockable */ onDock?: (docked: boolean) => void; docked?: boolean; className?: string; // NOTE sidebars we use internally inside the editor must have this flag set. // It indicates that this sidebar should have lower precedence over host // sidebars, if both are open. /** @private internal */ __fallback?: boolean; } & P; export type SidebarPropsContextValue = Pick< SidebarProps, "onDock" | "docked" > & { onCloseRequest: () => void; shouldRenderDockButton: boolean }; export const SidebarPropsContext = React.createContext({} as SidebarPropsContextValue);