From ac289ae955bfacbe2e5b7fb12ad8f84f88415cae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=A0=E9=99=90UCW?= <45730483+wuxianucw@users.noreply.github.com> Date: Fri, 12 Aug 2022 23:43:55 +0800 Subject: [PATCH] ui: scratchpad: allow close left main pane (#405) --- .../ui-default/components/scratchpad/index.jsx | 6 ++++-- .../components/scratchpad/reducers/ui.ts | 16 +++++++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/packages/ui-default/components/scratchpad/index.jsx b/packages/ui-default/components/scratchpad/index.jsx index b2f7cb5a..c87fba7a 100644 --- a/packages/ui-default/components/scratchpad/index.jsx +++ b/packages/ui-default/components/scratchpad/index.jsx @@ -97,10 +97,12 @@ export default function ScratchpadContainer() { handleChangeSize('main', size)} + allowResize={ui.activePage !== null} >
{Object.keys(pages).map((key) => { diff --git a/packages/ui-default/components/scratchpad/reducers/ui.ts b/packages/ui-default/components/scratchpad/reducers/ui.ts index b3a77d19..9b86c4bf 100644 --- a/packages/ui-default/components/scratchpad/reducers/ui.ts +++ b/packages/ui-default/components/scratchpad/reducers/ui.ts @@ -4,6 +4,7 @@ import i18n from 'vj/utils/i18n'; export default function reducer(state = { main: { size: '50%', + savedSize: '50%', }, pretest: { visible: ['default', 'fileio'].includes(UiContext.pdoc.config?.type) @@ -120,9 +121,22 @@ export default function reducer(state = { }; } case 'SCRATCHPAD_SWITCH_TO_PAGE': { + let newPage = action.payload; + let { size } = state.main; + if (newPage === state.activePage) { + newPage = null; + (size as any) = 0; + } else if (state.activePage === null) { + size = state.main.savedSize; + } return { ...state, - activePage: action.payload, + main: { + ...state.main, + size, + savedSize: state.main.size, + }, + activePage: newPage, }; } default: