diff --git a/packages/ui-default/components/scratchpad/index.jsx b/packages/ui-default/components/scratchpad/index.jsx index b2f7cb5a2..c87fba7ab 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 b3a77d196..9b86c4bf6 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: