chore(react/type_widgets): get LLM note to load

This commit is contained in:
Elian Doran 2025-10-05 12:40:55 +03:00
parent 22f8929da6
commit cebb54ddf6
No known key found for this signature in database

View file

@ -4,14 +4,30 @@ import { type TypeWidgetProps } from "./type_widget";
import LlmChatPanel from "../llm_chat";
export default function AiChat({ note, noteContext }: TypeWidgetProps) {
const dataRef = useRef<string>();
const dataRef = useRef<object>();
const spacedUpdate = useEditorSpacedUpdate({
note,
getData: async () => dataRef.current,
onContentChange: (newContent) => dataRef.current = newContent
getData: async () => ({
content: JSON.stringify(dataRef.current)
}),
onContentChange: (newContent) => {
try {
dataRef.current = JSON.parse(newContent);
} catch (e) {
dataRef.current = {};
}
}
});
const [ ChatWidget, llmChatPanel ] = useLegacyWidget(() => {
return new LlmChatPanel();
const llmChatPanel = new LlmChatPanel();
llmChatPanel.setDataCallbacks(
async (data) => {
dataRef.current = data;
spacedUpdate.scheduleUpdate();
},
async () => dataRef.current
);
return llmChatPanel;
}, {
noteContext,
containerClassName: "ai-chat-widget-container",
@ -21,17 +37,9 @@ export default function AiChat({ note, noteContext }: TypeWidgetProps) {
});
useEffect(() => {
llmChatPanel.setDataCallbacks(
async (data) => {
dataRef.current = data;
spacedUpdate.scheduleUpdate();
},
async () => dataRef.current
);
}, []);
useEffect(() => {
llmChatPanel.setNoteId(note.noteId);
llmChatPanel.setCurrentNoteId(note.noteId);
llmChatPanel.refresh();
}, [ note ]);
return ChatWidget;