From 17b6c2f6af30c4522c6b82a948a780dc6c0b423a Mon Sep 17 00:00:00 2001 From: undefined Date: Sun, 14 Nov 2021 16:33:27 +0800 Subject: [PATCH] ui: scratchpad: seperate code store --- .../ui-default/components/scratchpad/reducers/editor.js | 7 +++++-- packages/ui-default/package.json | 2 +- packages/utils/lib/utils.ts | 2 +- packages/utils/package.json | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/ui-default/components/scratchpad/reducers/editor.js b/packages/ui-default/components/scratchpad/reducers/editor.js index c11fbaf9c..6d8acecc6 100644 --- a/packages/ui-default/components/scratchpad/reducers/editor.js +++ b/packages/ui-default/components/scratchpad/reducers/editor.js @@ -1,10 +1,13 @@ +let cacheKey = `${UserContext._id}/${UiContext.pdoc.domainId}/${UiContext.pdoc.docId}`; +if (UiContext.tdoc?._id && UiContext.tdoc.rule !== 'homework') cacheKey += `@${UiContext.tdoc._id}`; + export default function reducer(state = { lang: UiContext.codeLang, - code: localStorage.getItem(`${UserContext._id}/${UiContext.pdoc.domainId}/${UiContext.pdoc.docId}`) || UiContext.codeTemplate, + code: localStorage.getItem(cacheKey) || UiContext.codeTemplate, }, action) { switch (action.type) { case 'SCRATCHPAD_EDITOR_UPDATE_CODE': { - localStorage.setItem(`${UserContext._id}/${UiContext.pdoc.domainId}/${UiContext.pdoc.docId}`, action.payload); + localStorage.setItem(cacheKey, action.payload); return { ...state, code: action.payload, diff --git a/packages/ui-default/package.json b/packages/ui-default/package.json index a2d0586dd..bc72f7ce7 100644 --- a/packages/ui-default/package.json +++ b/packages/ui-default/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/ui-default", - "version": "4.26.16", + "version": "4.26.17", "author": "undefined ", "license": "AGPL-3.0", "main": "hydro.js", diff --git a/packages/utils/lib/utils.ts b/packages/utils/lib/utils.ts index ccb1223d4..b68728bc0 100644 --- a/packages/utils/lib/utils.ts +++ b/packages/utils/lib/utils.ts @@ -269,7 +269,7 @@ export namespace Time { else if (isMoment(timestamp)) _timestamp = timestamp.toDate().getTime(); else _timestamp = timestamp.getTime(); const hexSeconds = Math.floor(_timestamp / 1000).toString(16); - return new ObjectID(`${hexSeconds}${allZero ? '0000000000000000' : new ObjectID().toHexString().substr(8, 12)}`); + return new ObjectID(`${hexSeconds}${allZero ? '0000000000000000' : new ObjectID().toHexString().substr(8)}`); } } diff --git a/packages/utils/package.json b/packages/utils/package.json index 6aa28baa6..70d37380e 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/utils", - "version": "1.1.6", + "version": "1.1.7", "description": "hydrooj utils", "main": "package.json", "repository": "https://github.com/hydro-dev/Hydro.git",