mirror of
https://github.com/EnixCoda/Gitako.git
synced 2026-03-11 08:54:44 +00:00
feat: memorize sidebar width
This commit is contained in:
parent
fd8ea597ca
commit
096cca294d
3 changed files with 11 additions and 0 deletions
|
|
@ -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<Props>) {
|
||||
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(
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@ const init: MethodCreator<Props, ConnectorState> = dispatch => async () => {
|
|||
metaData.branchName = detectedBranchName || 'master'
|
||||
dispatch.call(setMetaData, metaData)
|
||||
const {
|
||||
sideBarWidth,
|
||||
access_token: accessToken,
|
||||
shortcut,
|
||||
compressSingletonFolder,
|
||||
|
|
@ -79,6 +80,7 @@ const init: MethodCreator<Props, ConnectorState> = dispatch => async () => {
|
|||
} = await configHelper.getAll()
|
||||
DOMHelper.decorateGitHubPageContent({ copyFileButton, copySnippetButton })
|
||||
dispatch.set({
|
||||
baseSize: sideBarWidth,
|
||||
accessToken,
|
||||
toggleShowSideBarShortcut: shortcut,
|
||||
compressSingletonFolder,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in a new issue