diff options
| author | kj_sh604 | 2026-03-15 16:19:35 -0400 |
|---|---|---|
| committer | kj_sh604 | 2026-03-15 16:19:35 -0400 |
| commit | 6ec259a0e71174651bae95d4628138bf6fd68742 (patch) | |
| tree | 5e33c6a5ec091ecabfcb257fdc7b6a88ed8754ac /packages/excalidraw/context | |
| parent | 16c8578b15c727f22921f8a80a56ee4d4e7f2272 (diff) | |
refactor: packages/
Diffstat (limited to 'packages/excalidraw/context')
| -rw-r--r-- | packages/excalidraw/context/tunnels.ts | 45 | ||||
| -rw-r--r-- | packages/excalidraw/context/ui-appState.ts | 5 |
2 files changed, 50 insertions, 0 deletions
diff --git a/packages/excalidraw/context/tunnels.ts b/packages/excalidraw/context/tunnels.ts new file mode 100644 index 0000000..73b85ba --- /dev/null +++ b/packages/excalidraw/context/tunnels.ts @@ -0,0 +1,45 @@ +import React from "react"; +import tunnel from "tunnel-rat"; +import { createIsolation } from "jotai-scope"; + +export type Tunnel = ReturnType<typeof tunnel>; + +type TunnelsContextValue = { + MainMenuTunnel: Tunnel; + WelcomeScreenMenuHintTunnel: Tunnel; + WelcomeScreenToolbarHintTunnel: Tunnel; + WelcomeScreenHelpHintTunnel: Tunnel; + WelcomeScreenCenterTunnel: Tunnel; + FooterCenterTunnel: Tunnel; + DefaultSidebarTriggerTunnel: Tunnel; + DefaultSidebarTabTriggersTunnel: Tunnel; + OverwriteConfirmDialogTunnel: Tunnel; + TTDDialogTriggerTunnel: Tunnel; + // this can be removed once we create jotai stores per each editor + // instance + tunnelsJotai: ReturnType<typeof createIsolation>; +}; + +export const TunnelsContext = React.createContext<TunnelsContextValue>(null!); + +export const useTunnels = () => React.useContext(TunnelsContext); + +const tunnelsJotai = createIsolation(); + +export const useInitializeTunnels = () => { + return React.useMemo((): TunnelsContextValue => { + return { + MainMenuTunnel: tunnel(), + WelcomeScreenMenuHintTunnel: tunnel(), + WelcomeScreenToolbarHintTunnel: tunnel(), + WelcomeScreenHelpHintTunnel: tunnel(), + WelcomeScreenCenterTunnel: tunnel(), + FooterCenterTunnel: tunnel(), + DefaultSidebarTriggerTunnel: tunnel(), + DefaultSidebarTabTriggersTunnel: tunnel(), + OverwriteConfirmDialogTunnel: tunnel(), + TTDDialogTriggerTunnel: tunnel(), + tunnelsJotai, + }; + }, []); +}; diff --git a/packages/excalidraw/context/ui-appState.ts b/packages/excalidraw/context/ui-appState.ts new file mode 100644 index 0000000..f94ce28 --- /dev/null +++ b/packages/excalidraw/context/ui-appState.ts @@ -0,0 +1,5 @@ +import React from "react"; +import type { UIAppState } from "../types"; + +export const UIAppStateContext = React.createContext<UIAppState>(null!); +export const useUIAppState = () => React.useContext(UIAppStateContext); |
