mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-06-24 21:38:09 +02:00
Revert "Merge pull request #1523 from CREDO23/fix/chat-citations"
This reverts commitcd2242147a, reversing changes made toa4bb0a5253.
This commit is contained in:
parent
fb955d3201
commit
a08de01cc7
53 changed files with 410 additions and 1788 deletions
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
import dynamic from "next/dynamic";
|
||||
import { useTheme } from "next-themes";
|
||||
import { useCallback, useEffect, useRef } from "react";
|
||||
import { useEffect, useRef } from "react";
|
||||
import { Spinner } from "@/components/ui/spinner";
|
||||
|
||||
const MonacoEditor = dynamic(() => import("@monaco-editor/react"), {
|
||||
|
|
@ -17,8 +17,6 @@ interface SourceCodeEditorProps {
|
|||
readOnly?: boolean;
|
||||
fontSize?: number;
|
||||
onSave?: () => Promise<void> | void;
|
||||
/** 1-based inclusive line range to reveal and highlight (e.g. a citation). */
|
||||
highlightLines?: { start: number; end: number } | null;
|
||||
}
|
||||
|
||||
export function SourceCodeEditor({
|
||||
|
|
@ -29,45 +27,10 @@ export function SourceCodeEditor({
|
|||
readOnly = false,
|
||||
fontSize = 12,
|
||||
onSave,
|
||||
highlightLines = null,
|
||||
}: SourceCodeEditorProps) {
|
||||
const { resolvedTheme } = useTheme();
|
||||
const onSaveRef = useRef(onSave);
|
||||
const monacoRef = useRef<any>(null);
|
||||
const editorRef = useRef<any>(null);
|
||||
const decorationsRef = useRef<any>(null);
|
||||
const highlightLinesRef = useRef(highlightLines);
|
||||
highlightLinesRef.current = highlightLines;
|
||||
|
||||
const applyHighlight = useCallback(() => {
|
||||
const editor = editorRef.current;
|
||||
const monaco = monacoRef.current;
|
||||
if (!editor || !monaco) return;
|
||||
if (decorationsRef.current) {
|
||||
decorationsRef.current.clear();
|
||||
decorationsRef.current = null;
|
||||
}
|
||||
const range = highlightLinesRef.current;
|
||||
if (!range) return;
|
||||
const lineCount = editor.getModel()?.getLineCount() ?? range.end;
|
||||
const start = Math.min(Math.max(1, Math.floor(range.start)), lineCount);
|
||||
const end = Math.min(Math.max(start, Math.floor(range.end)), lineCount);
|
||||
try {
|
||||
decorationsRef.current = editor.createDecorationsCollection([
|
||||
{
|
||||
range: new monaco.Range(start, 1, end, 1),
|
||||
options: { isWholeLine: true, className: "citation-line-highlight" },
|
||||
},
|
||||
]);
|
||||
} catch {
|
||||
// Decoration failure must not block the reveal below.
|
||||
}
|
||||
editor.revealLinesInCenter(start, end, monaco.editor.ScrollType.Immediate);
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
applyHighlight();
|
||||
}, [applyHighlight, highlightLines?.start, highlightLines?.end]);
|
||||
const normalizedModelPath = (() => {
|
||||
const raw = (path || "local-file.txt").trim();
|
||||
const withLeadingSlash = raw.startsWith("/") ? raw : `/${raw}`;
|
||||
|
|
@ -141,16 +104,7 @@ export function SourceCodeEditor({
|
|||
}}
|
||||
onMount={(editor, monaco) => {
|
||||
monacoRef.current = monaco;
|
||||
editorRef.current = editor;
|
||||
applySidebarTheme(monaco);
|
||||
// Reveal now, then once more after the first layout settles:
|
||||
// the panel slide-in animation means the editor often has no
|
||||
// usable viewport height on the initial frame.
|
||||
applyHighlight();
|
||||
const layoutSub = editor.onDidLayoutChange(() => {
|
||||
applyHighlight();
|
||||
layoutSub.dispose();
|
||||
});
|
||||
if (!isManualSaveEnabled) return;
|
||||
editor.addCommand(monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyS, () => {
|
||||
void onSaveRef.current?.();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue