From c7d2545ec7bbcdba30b775453d53df5a359410bd Mon Sep 17 00:00:00 2001
From: crupest <crupest@outlook.com>
Date: Thu, 21 Sep 2023 15:35:27 +0800
Subject: Revert dialog.

---
 FrontEnd/src/components/dialog/DialogProvider.tsx | 95 -----------------------
 1 file changed, 95 deletions(-)
 delete mode 100644 FrontEnd/src/components/dialog/DialogProvider.tsx

(limited to 'FrontEnd/src/components/dialog/DialogProvider.tsx')

diff --git a/FrontEnd/src/components/dialog/DialogProvider.tsx b/FrontEnd/src/components/dialog/DialogProvider.tsx
deleted file mode 100644
index bb85e4cf..00000000
--- a/FrontEnd/src/components/dialog/DialogProvider.tsx
+++ /dev/null
@@ -1,95 +0,0 @@
-import { useState, useContext, createContext, ReactNode } from "react";
-
-import { UiLogicError } from "../common";
-
-type DialogMap<D extends string> = {
-  [K in D]: ReactNode;
-};
-
-interface DialogController<D extends string> {
-  currentDialog: D | null;
-  currentDialogReactNode: ReactNode;
-  canSwitchDialog: boolean;
-  switchDialog: (newDialog: D | null) => void;
-  setCanSwitchDialog: (enable: boolean) => void;
-  closeDialog: () => void;
-  forceSwitchDialog: (newDialog: D | null) => void;
-  forceCloseDialog: () => void;
-}
-
-export function useDialog<D extends string>(
-  dialogs: DialogMap<D>,
-  options?: {
-    initDialog?: D | null;
-    onClose?: {
-      [K in D]?: () => void;
-    };
-  },
-): {
-  controller: DialogController<D>;
-  switchDialog: (newDialog: D | null) => void;
-  forceSwitchDialog: (newDialog: D | null) => void;
-  createDialogSwitch: (newDialog: D | null) => () => void;
-} {
-  const [canSwitchDialog, setCanSwitchDialog] = useState<boolean>(true);
-  const [dialog, setDialog] = useState<D | null>(options?.initDialog ?? null);
-
-  const forceSwitchDialog = (newDialog: D | null) => {
-    if (dialog != null) {
-      options?.onClose?.[dialog]?.();
-    }
-    setDialog(newDialog);
-    setCanSwitchDialog(true);
-  };
-
-  const switchDialog = (newDialog: D | null) => {
-    if (canSwitchDialog) {
-      forceSwitchDialog(newDialog);
-    }
-  };
-
-  const controller: DialogController<D> = {
-    currentDialog: dialog,
-    currentDialogReactNode: dialog == null ? null : dialogs[dialog],
-    canSwitchDialog,
-    switchDialog,
-    setCanSwitchDialog,
-    closeDialog: () => switchDialog(null),
-    forceSwitchDialog,
-    forceCloseDialog: () => forceSwitchDialog(null),
-  };
-
-  return {
-    controller,
-    switchDialog,
-    forceSwitchDialog,
-    createDialogSwitch: (newDialog: D | null) => () => switchDialog(newDialog),
-  };
-}
-
-const DialogControllerContext = createContext<DialogController<string> | null>(
-  null,
-);
-
-export function useDialogController(): DialogController<string> {
-  const controller = useContext(DialogControllerContext);
-  if (controller == null) throw new UiLogicError("not in dialog provider");
-  return controller;
-}
-
-export function useCloseDialog(): () => void {
-  const controller = useDialogController();
-  return controller.closeDialog;
-}
-
-export function DialogProvider<D extends string>({
-  controller,
-}: {
-  controller: DialogController<D>;
-}) {
-  return (
-    <DialogControllerContext.Provider value={controller as never}>
-      {controller.currentDialogReactNode}
-    </DialogControllerContext.Provider>
-  );
-}
-- 
cgit v1.2.3

