From 096cca294dcd50cff1543abc4a12086ab3b3ad17 Mon Sep 17 00:00:00 2001 From: EnixCoda Date: Sun, 11 Aug 2019 10:55:02 +0800 Subject: [PATCH] feat: memorize sidebar width --- src/components/Resizable.tsx | 6 ++++++ src/driver/core/SideBar.ts | 2 ++ src/utils/configHelper.ts | 3 +++ 3 files changed, 11 insertions(+) diff --git a/src/components/Resizable.tsx b/src/components/Resizable.tsx index edf3eed..73d96b1 100644 --- a/src/components/Resizable.tsx +++ b/src/components/Resizable.tsx @@ -3,6 +3,7 @@ import HorizontalResizeHandler from 'components/ResizeHandler' import cx from 'utils/cx' import { useWindowSize, useMediaStyleSheet } from 'utils/hooks' import { bodySpacingClassName } from 'utils/DOMHelper' +import configHelper, { configKeys } from 'utils/configHelper' export type Size = number type Props = { @@ -20,6 +21,10 @@ export default function Resizable({ }: React.PropsWithChildren) { const [size, setSize] = React.useState(baseSize) + React.useEffect(() => { + setSize(baseSize) + }, [baseSize]) + useWindowSize( width => { if (size > width - MINIMAL_CONTENT_VIEWPORT_WIDTH) @@ -30,6 +35,7 @@ export default function Resizable({ React.useEffect(() => { document.documentElement.style.setProperty('--gitako-width', size + 'px') + configHelper.setOne(configKeys.sideBarWidth, size) }, [size]) useMediaStyleSheet( diff --git a/src/driver/core/SideBar.ts b/src/driver/core/SideBar.ts index 0be0ef5..70aed34 100644 --- a/src/driver/core/SideBar.ts +++ b/src/driver/core/SideBar.ts @@ -71,6 +71,7 @@ const init: MethodCreator = dispatch => async () => { metaData.branchName = detectedBranchName || 'master' dispatch.call(setMetaData, metaData) const { + sideBarWidth, access_token: accessToken, shortcut, compressSingletonFolder, @@ -79,6 +80,7 @@ const init: MethodCreator = dispatch => async () => { } = await configHelper.getAll() DOMHelper.decorateGitHubPageContent({ copyFileButton, copySnippetButton }) dispatch.set({ + baseSize: sideBarWidth, accessToken, toggleShowSideBarShortcut: shortcut, compressSingletonFolder, diff --git a/src/utils/configHelper.ts b/src/utils/configHelper.ts index 57a1091..0828188 100644 --- a/src/utils/configHelper.ts +++ b/src/utils/configHelper.ts @@ -2,6 +2,7 @@ import storageHelper from 'utils/storageHelper' import { pick } from 'utils/general' type Config = { + sideBarWidth: number shortcut: string | undefined access_token: string | undefined compressSingletonFolder: boolean @@ -10,6 +11,7 @@ type Config = { } export enum configKeys { + sideBarWidth = 'sideBarWidth', shortcut = 'shortcut', accessToken = 'access_token', compressSingletonFolder = 'compressSingletonFolder', @@ -18,6 +20,7 @@ export enum configKeys { } const defaultConfigs: Config = { + sideBarWidth: 260, shortcut: undefined, access_token: undefined, compressSingletonFolder: true,