You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
2 years ago
|
import React from "react";
|
||
|
import tunnel from "tunnel-rat";
|
||
|
|
||
|
export type Tunnel = ReturnType<typeof tunnel>;
|
||
|
|
||
|
type TunnelsContextValue = {
|
||
|
MainMenuTunnel: Tunnel;
|
||
|
WelcomeScreenMenuHintTunnel: Tunnel;
|
||
|
WelcomeScreenToolbarHintTunnel: Tunnel;
|
||
|
WelcomeScreenHelpHintTunnel: Tunnel;
|
||
|
WelcomeScreenCenterTunnel: Tunnel;
|
||
|
FooterCenterTunnel: Tunnel;
|
||
|
DefaultSidebarTriggerTunnel: Tunnel;
|
||
|
DefaultSidebarTabTriggersTunnel: Tunnel;
|
||
2 years ago
|
OverwriteConfirmDialogTunnel: Tunnel;
|
||
1 year ago
|
TTDDialogTriggerTunnel: Tunnel;
|
||
2 years ago
|
jotaiScope: symbol;
|
||
|
};
|
||
|
|
||
|
export const TunnelsContext = React.createContext<TunnelsContextValue>(null!);
|
||
|
|
||
|
export const useTunnels = () => React.useContext(TunnelsContext);
|
||
|
|
||
|
export const useInitializeTunnels = () => {
|
||
|
return React.useMemo((): TunnelsContextValue => {
|
||
|
return {
|
||
|
MainMenuTunnel: tunnel(),
|
||
|
WelcomeScreenMenuHintTunnel: tunnel(),
|
||
|
WelcomeScreenToolbarHintTunnel: tunnel(),
|
||
|
WelcomeScreenHelpHintTunnel: tunnel(),
|
||
|
WelcomeScreenCenterTunnel: tunnel(),
|
||
|
FooterCenterTunnel: tunnel(),
|
||
|
DefaultSidebarTriggerTunnel: tunnel(),
|
||
|
DefaultSidebarTabTriggersTunnel: tunnel(),
|
||
2 years ago
|
OverwriteConfirmDialogTunnel: tunnel(),
|
||
1 year ago
|
TTDDialogTriggerTunnel: tunnel(),
|
||
2 years ago
|
jotaiScope: Symbol(),
|
||
|
};
|
||
|
}, []);
|
||
|
};
|