mirror of
https://github.com/cfngc4594/monaco-editor-lsp-next.git
synced 2025-05-18 15:26:36 +00:00
refactor(header, reset-button, useCodeEditorStore): remove unnecessary value prop and refactor related components
This commit is contained in:
parent
3336a9f1d0
commit
353aff9b4d
@ -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 (
|
||||
<header
|
||||
{...props}
|
||||
@ -30,7 +24,7 @@ export default function WorkspaceEditorHeader({
|
||||
<LanguageSelector />
|
||||
</div>
|
||||
<div className="flex items-center gap-x-2">
|
||||
<ResetButton value={TEMP_DEFAULT_EDITOR_VALUE[language]} />
|
||||
<ResetButton />
|
||||
<UndoButton />
|
||||
<RedoButton />
|
||||
<FormatButton />
|
||||
|
@ -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 (
|
||||
<TooltipProvider delayDuration={0}>
|
||||
<Tooltip>
|
||||
@ -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();
|
||||
|
@ -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<CodeEditorState>()(
|
||||
|
Loading…
Reference in New Issue
Block a user