From f75e76c4475286654819a8d271192fea90a471f6 Mon Sep 17 00:00:00 2001 From: EnixCoda Date: Sun, 16 May 2021 23:14:13 +0800 Subject: [PATCH] chore: update hooks file ext --- src/components/SideBar.tsx | 29 ++----------------- .../{useCSSVariable.tsx => useCSSVariable.ts} | 0 ...tworkError.tsx => useCatchNetworkError.ts} | 0 ....tsx => useEffectOnSerializableUpdates.ts} | 0 ...eLoadedContext.tsx => useLoadedContext.ts} | 0 .../hooks/useToggleSideBarWithKeyboard.ts | 27 +++++++++++++++++ 6 files changed, 30 insertions(+), 26 deletions(-) rename src/utils/hooks/{useCSSVariable.tsx => useCSSVariable.ts} (100%) rename src/utils/hooks/{useCatchNetworkError.tsx => useCatchNetworkError.ts} (100%) rename src/utils/hooks/{useEffectOnSerializableUpdates.tsx => useEffectOnSerializableUpdates.ts} (100%) rename src/utils/hooks/{useLoadedContext.tsx => useLoadedContext.ts} (100%) create mode 100644 src/utils/hooks/useToggleSideBarWithKeyboard.ts diff --git a/src/components/SideBar.tsx b/src/components/SideBar.tsx index 95d3e9d..8967889 100644 --- a/src/components/SideBar.tsx +++ b/src/components/SideBar.tsx @@ -5,7 +5,7 @@ import { Portal } from 'components/Portal' import { Resizable } from 'components/Resizable' import { SettingsBar } from 'components/settings/SettingsBar' import { ToggleShowButton } from 'components/ToggleShowButton' -import { ConfigsContextShape, useConfigs } from 'containers/ConfigsContext' +import { useConfigs } from 'containers/ConfigsContext' import { platform } from 'platforms' import { useGitHubAttachCopyFileButton, useGitHubAttachCopySnippetButton } from 'platforms/GitHub' import * as React from 'react' @@ -17,13 +17,13 @@ import { useLoadedContext } from 'utils/hooks/useLoadedContext' import { loadWithPJAX, useOnPJAXDone, usePJAX } from 'utils/hooks/usePJAX' import { useProgressBar } from 'utils/hooks/useProgressBar' import { useStateIO } from 'utils/hooks/useStateIO' -import * as keyHelper from 'utils/keyHelper' +import { useToggleSideBarWithKeyboard } from '../utils/hooks/useToggleSideBarWithKeyboard' import { SideBarErrorContext } from './ErrorContext' import { Icon } from './Icon' import { IIFC } from './IIFC' import { LoadingIndicator } from './LoadingIndicator' import { RepoContext } from './RepoContext' -import { SideBarState, SideBarStateContext } from './SideBarState' +import { SideBarStateContext } from './SideBarState' import { Theme } from './Theme' export function SideBar() { @@ -175,26 +175,3 @@ export function SideBar() { ) } - -function useToggleSideBarWithKeyboard( - state: SideBarState, - configContext: ConfigsContextShape, - toggleShowSideBar: () => void, -) { - const isDisabled = state === 'disabled' - React.useEffect( - function attachKeyDown() { - if (isDisabled || !configContext.value.shortcut) return - - function onKeyDown(e: KeyboardEvent) { - const keys = keyHelper.parseEvent(e) - if (keys === configContext.value.shortcut) { - toggleShowSideBar() - } - } - window.addEventListener('keydown', onKeyDown) - return () => window.removeEventListener('keydown', onKeyDown) - }, - [toggleShowSideBar, isDisabled, configContext.value.shortcut], - ) -} diff --git a/src/utils/hooks/useCSSVariable.tsx b/src/utils/hooks/useCSSVariable.ts similarity index 100% rename from src/utils/hooks/useCSSVariable.tsx rename to src/utils/hooks/useCSSVariable.ts diff --git a/src/utils/hooks/useCatchNetworkError.tsx b/src/utils/hooks/useCatchNetworkError.ts similarity index 100% rename from src/utils/hooks/useCatchNetworkError.tsx rename to src/utils/hooks/useCatchNetworkError.ts diff --git a/src/utils/hooks/useEffectOnSerializableUpdates.tsx b/src/utils/hooks/useEffectOnSerializableUpdates.ts similarity index 100% rename from src/utils/hooks/useEffectOnSerializableUpdates.tsx rename to src/utils/hooks/useEffectOnSerializableUpdates.ts diff --git a/src/utils/hooks/useLoadedContext.tsx b/src/utils/hooks/useLoadedContext.ts similarity index 100% rename from src/utils/hooks/useLoadedContext.tsx rename to src/utils/hooks/useLoadedContext.ts diff --git a/src/utils/hooks/useToggleSideBarWithKeyboard.ts b/src/utils/hooks/useToggleSideBarWithKeyboard.ts new file mode 100644 index 0000000..821d4d3 --- /dev/null +++ b/src/utils/hooks/useToggleSideBarWithKeyboard.ts @@ -0,0 +1,27 @@ +import { ConfigsContextShape } from 'containers/ConfigsContext' +import * as React from 'react' +import * as keyHelper from 'utils/keyHelper' +import { SideBarState } from '../../components/SideBarState' + +export function useToggleSideBarWithKeyboard( + state: SideBarState, + configContext: ConfigsContextShape, + toggleShowSideBar: () => void, +) { + const isDisabled = state === 'disabled' + React.useEffect( + function attachKeyDown() { + if (isDisabled || !configContext.value.shortcut) return + + function onKeyDown(e: KeyboardEvent) { + const keys = keyHelper.parseEvent(e) + if (keys === configContext.value.shortcut) { + toggleShowSideBar() + } + } + window.addEventListener('keydown', onKeyDown) + return () => window.removeEventListener('keydown', onKeyDown) + }, + [toggleShowSideBar, isDisabled, configContext.value.shortcut], + ) +}