From 00f83d69f130257b84b357c5e8b87a9c20a7457b Mon Sep 17 00:00:00 2001 From: cfngc4594 Date: Thu, 20 Mar 2025 15:35:53 +0800 Subject: [PATCH] refactor(ResetButton): replace useCodeEditorStore with useProblemEditor --- .../editor/components/reset-button.tsx | 50 ++++++++----------- 1 file changed, 22 insertions(+), 28 deletions(-) diff --git a/src/components/features/playground/workspace/editor/components/reset-button.tsx b/src/components/features/playground/workspace/editor/components/reset-button.tsx index 823616a..8f67ae5 100644 --- a/src/components/features/playground/workspace/editor/components/reset-button.tsx +++ b/src/components/features/playground/workspace/editor/components/reset-button.tsx @@ -8,19 +8,28 @@ import { } from "@/components/ui/tooltip"; import { RotateCcw } from "lucide-react"; import { Button } from "@/components/ui/button"; -import { EditorLanguage } from "@prisma/client"; -import { useCodeEditorStore } from "@/store/useCodeEditorStore"; +import { useProblemEditor } from "@/hooks/use-problem-editor"; -interface ResetButtonProps { - templates: { language: EditorLanguage; template: string }[]; -} +export function ResetButton() { + const { editor, currentTemplate } = useProblemEditor(); -export default function ResetButton({ - templates, -}: ResetButtonProps) { - const { editor, language } = useCodeEditorStore(); - - const currentTemplate = templates.find((t) => t.language === language)?.template ?? ""; + const handleReset = () => { + if (editor) { + const model = editor.getModel(); + if (model) { + const fullRange = model.getFullModelRange(); + editor.pushUndoStop(); + editor.executeEdits("reset-code", [ + { + range: fullRange, + text: currentTemplate, + forceMoveMarkers: true, + }, + ]); + editor.pushUndoStop(); + } + } + }; return ( @@ -30,23 +39,8 @@ export default function ResetButton({ variant="outline" size="icon" aria-label="Reset Code" - onClick={() => { - if (editor) { - const model = editor.getModel(); - if (model) { - const fullRange = model.getFullModelRange(); - editor.pushUndoStop(); - editor.executeEdits("reset-code", [ - { - range: fullRange, - text: currentTemplate, - forceMoveMarkers: true, - }, - ]); - editor.pushUndoStop(); - } - } - }} + onClick={handleReset} + disabled={!editor} className="h-6 w-6 px-1.5 py-0.5 border-none shadow-none hover:bg-muted" >