mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-12-20 09:20:16 +00:00
Move delete collection confirmation pane to react (#417)
This commit is contained in:
29
src/hooks/useSidePanel.ts
Normal file
29
src/hooks/useSidePanel.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import { useState } from "react";
|
||||
|
||||
export interface SidePanelHooks {
|
||||
isPanelOpen: boolean;
|
||||
panelContent: JSX.Element;
|
||||
headerText: string;
|
||||
openSidePanel: (headerText: string, panelContent: JSX.Element) => void;
|
||||
closeSidePanel: () => void;
|
||||
}
|
||||
|
||||
export const useSidePanel = (): SidePanelHooks => {
|
||||
const [isPanelOpen, setIsPanelOpen] = useState<boolean>(false);
|
||||
const [panelContent, setPanelContent] = useState<JSX.Element>();
|
||||
const [headerText, setHeaderText] = useState<string>();
|
||||
|
||||
const openSidePanel = (headerText: string, panelContent: JSX.Element): void => {
|
||||
setHeaderText(headerText);
|
||||
setPanelContent(panelContent);
|
||||
setIsPanelOpen(true);
|
||||
};
|
||||
|
||||
const closeSidePanel = (): void => {
|
||||
setHeaderText("");
|
||||
setPanelContent(undefined);
|
||||
setIsPanelOpen(false);
|
||||
};
|
||||
|
||||
return { isPanelOpen, panelContent, headerText, openSidePanel, closeSidePanel };
|
||||
};
|
||||
Reference in New Issue
Block a user