mirror of
https://github.com/cfngc4594/monaco-editor-lsp-next.git
synced 2025-07-05 02:00:52 +00:00
47 lines
1.0 KiB
TypeScript
47 lines
1.0 KiB
TypeScript
"use client";
|
|
|
|
import { useEffect } from "react";
|
|
import { CoreEditor } from "@/components/core-editor";
|
|
import { useProblemEditorStore } from "@/stores/problem-editor";
|
|
import type { LanguageServerConfig, Template } from "@/generated/client";
|
|
|
|
interface ProblemEditorProps {
|
|
problemId: string;
|
|
templates: Template[];
|
|
languageServerConfigs?: LanguageServerConfig[];
|
|
}
|
|
|
|
export const ProblemEditor = ({
|
|
problemId,
|
|
templates,
|
|
languageServerConfigs,
|
|
}: ProblemEditorProps) => {
|
|
const {
|
|
language,
|
|
value,
|
|
path,
|
|
setProblem,
|
|
setValue,
|
|
setEditor,
|
|
setLspWebSocket,
|
|
setMarkers,
|
|
} = useProblemEditorStore();
|
|
|
|
useEffect(() => {
|
|
setProblem(problemId, templates);
|
|
}, [problemId, setProblem, templates]);
|
|
|
|
return (
|
|
<CoreEditor
|
|
language={language}
|
|
value={value}
|
|
path={path}
|
|
languageServerConfigs={languageServerConfigs}
|
|
onEditorReady={setEditor}
|
|
onLspWebSocketReady={setLspWebSocket}
|
|
onMarkersReady={setMarkers}
|
|
onChange={setValue}
|
|
/>
|
|
);
|
|
};
|