From 9497c19447ed1f1884798460e2f953273782a4ae Mon Sep 17 00:00:00 2001 From: undefined Date: Thu, 16 Mar 2023 18:41:33 +0800 Subject: [PATCH] ui: problemconfig: patch autoconfigure --- .../components/problemconfig/ProblemConfigTree.tsx | 7 ++++++- .../ui-default/components/problemconfig/reducer/config.ts | 4 ++++ .../components/problemconfig/tree/SubtaskSettings.tsx | 2 ++ packages/ui-default/package.json | 2 +- packages/utils/lib/common.ts | 4 ++-- 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/packages/ui-default/components/problemconfig/ProblemConfigTree.tsx b/packages/ui-default/components/problemconfig/ProblemConfigTree.tsx index 5d39dc2a..34a75589 100644 --- a/packages/ui-default/components/problemconfig/ProblemConfigTree.tsx +++ b/packages/ui-default/components/problemconfig/ProblemConfigTree.tsx @@ -111,11 +111,16 @@ export function SubtaskConfigTree() { const store = useStore(); function autoConfigure() { const state = store.getState(); - const subtasks = readSubtasksFromFiles(state.testdata, state.config); + const subtasks = readSubtasksFromFiles(state.testdata.map((t) => t.name), state.config); + const cases = subtasks.reduce((a, b) => a.concat(b.cases), []); dispatch({ type: 'CONFIG_AUTOCASES_UPDATE', subtasks: normalizeSubtasks(subtasks, (i) => i, state.config.time, state.config.memory, true), }); + dispatch({ + type: 'problemconfig/delTestcases', + cases, + }); } return (
diff --git a/packages/ui-default/components/problemconfig/reducer/config.ts b/packages/ui-default/components/problemconfig/reducer/config.ts index 9849568e..5d42ad6c 100644 --- a/packages/ui-default/components/problemconfig/reducer/config.ts +++ b/packages/ui-default/components/problemconfig/reducer/config.ts @@ -161,6 +161,10 @@ export default function reducer(state = { } return { ...state, subtasks, __cases }; } + case 'problemconfig/delTestcases': { + const testcases = action.cases; + return { ...state, __cases: state.__cases.filter((i) => !testcases.find((j) => i.input === j.input && i.output === j.output)) }; + } case 'problemconfig/deleteSubtask': { const subtasks = state.subtasks.filter((i) => i.id !== action.id); return { ...state, subtasks }; diff --git a/packages/ui-default/components/problemconfig/tree/SubtaskSettings.tsx b/packages/ui-default/components/problemconfig/tree/SubtaskSettings.tsx index 0abc4a47..f5781a9a 100644 --- a/packages/ui-default/components/problemconfig/tree/SubtaskSettings.tsx +++ b/packages/ui-default/components/problemconfig/tree/SubtaskSettings.tsx @@ -124,6 +124,8 @@ export function SubtaskSettings(props: SubtaskSettingsProps) {
  • + +    {i18n('Scoring method')}