chore(react): use different injection mechanism

This commit is contained in:
Elian Doran 2025-08-22 23:24:00 +03:00
parent 7fadf4c6e1
commit 4bd25a0d4a
No known key found for this signature in database

View File

@ -417,17 +417,27 @@ export function useNoteBlob(note: FNote | null | undefined): [ FBlob | null | un
export function useLegacyWidget(widgetFactory: () => BasicWidget, { noteContext }: {
noteContext?: NoteContext;
} = {}) {
const ref = useRef<HTMLDivElement>(null);
const widget = useMemo(widgetFactory, []);
const parentComponent = useContext(ParentComponent);
useEffect(() => {
if (!ref.current) return;
const $container = $(ref.current);
$container.empty();
widget.render().appendTo($container);
if (noteContext && widget instanceof NoteContextAwareWidget) {
console.log("Injecting note context", noteContext);
widget.setNoteContextEvent({ noteContext });
widget.activeContextChangedEvent({ noteContext });
}
}, [ widget ]);
if (parentComponent) {
parentComponent.child(widget);
}
}
if (noteContext && widget instanceof NoteContextAwareWidget) {
console.log("Inject!");
widget.setNoteContextEvent({ noteContext });
}
return <RawHtml html={widget.render()} />
return <div ref={ref} />
}