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