refactor: narrow graph editor api
Amp-Thread-ID: https://ampcode.com/threads/T-019f9d91-77c1-7206-a60f-ed6554ce92ab Co-authored-by: Heaust Azure <heaust.azure@gmail.com>
This commit is contained in:
@@ -135,34 +135,17 @@ export async function createRenderGraphEditor(canvas) {
|
||||
menu = createAddNodeMenu(canvas.ownerDocument);
|
||||
host.attach(root, view);
|
||||
await view.whenRendered();
|
||||
return createEditorFacade(root, view, { requestAddNode, destroy });
|
||||
const editorRoot = root,
|
||||
editorView = view;
|
||||
return {
|
||||
getState: () => editorRoot.getState(),
|
||||
onSnapshots: (fn) =>
|
||||
editorRoot.onSnapshots((event) => fn(event.snapshot, event.version)),
|
||||
whenRendered: () => editorView.whenRendered(),
|
||||
destroy,
|
||||
};
|
||||
} catch (e) {
|
||||
await destroy().catch(() => {});
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
/** Creates the small application-facing wrapper around an fxnode root and view. */
|
||||
export function createEditorFacade(
|
||||
root,
|
||||
view,
|
||||
{ requestAddNode = () => null, destroy = async () => {} } = {},
|
||||
) {
|
||||
return {
|
||||
getState: () => root.getState(),
|
||||
getSaveData: () => root.getSaveData(),
|
||||
load: async (data) => {
|
||||
await root.load(data);
|
||||
await view.whenRendered();
|
||||
},
|
||||
loadComposition: async (data) => {
|
||||
await root.loadComposition(data);
|
||||
await view.whenRendered();
|
||||
},
|
||||
onSnapshots: (fn) =>
|
||||
root.onSnapshots((event) => fn(event.snapshot, event.version)),
|
||||
requestAddNode,
|
||||
whenRendered: () => view.whenRendered(),
|
||||
destroy,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user