From 353aff9b4d33ec309680caebb4a34ce4585ae3e0 Mon Sep 17 00:00:00 2001 From: cfngc4594 Date: Wed, 5 Mar 2025 10:18:06 +0800 Subject: [PATCH] refactor(header, reset-button, useCodeEditorStore): remove unnecessary value prop and refactor related components --- .../@workspace/@editor/components/header.tsx | 8 +------- .../@workspace/@editor/components/reset-button.tsx | 11 +++-------- src/store/useCodeEditorStore.ts | 6 +++--- 3 files changed, 7 insertions(+), 18 deletions(-) diff --git a/src/app/(app)/playground/@workspace/@editor/components/header.tsx b/src/app/(app)/playground/@workspace/@editor/components/header.tsx index d4b9723..9cd4e03 100644 --- a/src/app/(app)/playground/@workspace/@editor/components/header.tsx +++ b/src/app/(app)/playground/@workspace/@editor/components/header.tsx @@ -1,5 +1,3 @@ -"use client"; - import { cn } from "@/lib/utils"; import CopyButton from "./copy-button"; import RedoButton from "./redo-button"; @@ -7,8 +5,6 @@ import UndoButton from "./undo-button"; import ResetButton from "./reset-button"; import FormatButton from "./format-button"; import LanguageSelector from "./language-selector"; -import { useCodeEditorStore } from "@/store/useCodeEditorStore"; -import { TEMP_DEFAULT_EDITOR_VALUE } from "@/config/problem/value"; interface WorkspaceEditorHeaderProps { className?: string; @@ -18,8 +14,6 @@ export default function WorkspaceEditorHeader({ className, ...props }: WorkspaceEditorHeaderProps) { - const { language } = useCodeEditorStore(); - return (
- + diff --git a/src/app/(app)/playground/@workspace/@editor/components/reset-button.tsx b/src/app/(app)/playground/@workspace/@editor/components/reset-button.tsx index cbf00cc..9c09037 100644 --- a/src/app/(app)/playground/@workspace/@editor/components/reset-button.tsx +++ b/src/app/(app)/playground/@workspace/@editor/components/reset-button.tsx @@ -9,16 +9,10 @@ import { import { RotateCcw } from "lucide-react"; import { Button } from "@/components/ui/button"; import { useCodeEditorStore } from "@/store/useCodeEditorStore"; +import { TEMP_DEFAULT_EDITOR_VALUE } from "@/config/problem/value"; -interface ResetButtonProps { - value: string; -} - -export default function ResetButton({ - value -}: ResetButtonProps) { +export default function ResetButton() { const { editor, language } = useCodeEditorStore(); - return ( @@ -29,6 +23,7 @@ export default function ResetButton({ aria-label="Reset Code" onClick={() => { if (editor) { + const value = TEMP_DEFAULT_EDITOR_VALUE[language]; const model = editor.getModel(); if (model) { const fullRange = model.getFullModelRange(); diff --git a/src/store/useCodeEditorStore.ts b/src/store/useCodeEditorStore.ts index 8309a2a..3da9f0d 100644 --- a/src/store/useCodeEditorStore.ts +++ b/src/store/useCodeEditorStore.ts @@ -1,7 +1,7 @@ import { create } from "zustand"; import { getPath } from "@/lib/utils"; import type { editor } from "monaco-editor"; -import { JudgeResult } from "@/config/judge"; +import { JudgeResultMetadata } from "@/types/judge"; import { EditorLanguage } from "@/types/editor-language"; import LanguageServerConfig from "@/config/language-server"; import { createJSONStorage, persist } from "zustand/middleware"; @@ -18,7 +18,7 @@ interface CodeEditorState { isLspEnabled: boolean; editorConfig: editor.IEditorConstructionOptions; editor: editor.IStandaloneCodeEditor | null; - result: JudgeResult | null; + result: JudgeResultMetadata | null; setHydrated: (value: boolean) => void; setLanguage: (language: EditorLanguage) => void; setPath: (path: string) => void; @@ -27,7 +27,7 @@ interface CodeEditorState { setIsLspEnabled: (enabled: boolean) => void; setEditorConfig: (editorConfig: editor.IEditorConstructionOptions) => void; setEditor: (editor: editor.IStandaloneCodeEditor) => void; - setResult: (result: JudgeResult) => void; + setResult: (result: JudgeResultMetadata) => void; } export const useCodeEditorStore = create()(