Expand description
Leptos-side bindings for the editor IPC (ED.5 / M-EDIT).
app-ui is a WASM crate and can’t depend on screen-app (Tauri-
native), but it can depend on the pure edit crate — so the
open_in_editor command’s payload deserializes straight into
[edit::EditProject] with no hand-mirrored type.
The flow mirrors the player IPC: a fire-and-forget invoke wrapper
(screen_open_in_editor, bound to the __screenOpenInEditor helper
in index.html) plus an editor-project CustomEvent listener that
pushes the loaded project into a Leptos signal.
Structs§
- Editor
Status - IPC-stable mirror of
screen_app::editor_session::EditorStatusView(plain-text reference —app-uican’t depend on the Tauri-native crate). Field names must match the Rust-sideSerializeshape. - Export
Progress - Progress payload from the backend
editor-export-progressevent. - Recording
Entry - Library mirror of the backend
RecordingEntry(deserialize side).
Enums§
- Export
UiState - UI-facing export state, driven by the export event bridge.
- Transport
Action - Mirror of the backend
TransportAction(serialize side). The JS bridge forwards this object to theeditor_transportcommand, which re-deserializes it on the Rust side.
Functions§
- editor_
export - Start exporting
projecttoformat(e.g."mp4"). Progress + result arrive as events (seeinstall_editor_export_listeners). - editor_
export_ cancel - Request cancellation of the in-flight export.
- editor_
preview_ open - Open / update the live editor preview for
project(AUT-510). Call on the initial load and whenever an edit mutates the project, so the next composed frame reflects it. The composed frames themselves come from the canvas poll (__screenEditorPreviewFrame). - editor_
save_ project - Save
projectto its.screenproj. The written path arrives as aneditor-savedevent (seeinstall_editor_saved_listener). - editor_
transport - Send a transport action. The resulting status arrives asynchronously as
an
editor-statusevent (seeinstall_editor_status_listener). - export_
percent - Progress as a whole percent
0..=100(0 whentotalis 0). - install_
drag_ active_ listeners - Install
file-drag-enter/file-drag-leavelisteners that driveactive— the editor drop zone reads it to show a drag-over highlight. App-lifetime; closures leaked viaforget. - install_
editor_ export_ listeners - Install the export event listeners (progress / done / error), each
pushing into
state. App-lifetime; closures leaked viaforget. - install_
editor_ project_ listener - Install an
editor-projectCustomEventlistener that deserializes the loaded [EditProject] and pushes it intoproject. - install_
editor_ saved_ listener - Install an
editor-savedlistener pushing the written path intosaved. - install_
editor_ status_ listener - Install an
editor-statusCustomEventlistener pushing the parsedEditorStatusintostatus. App-lifetime; leaked viaforget. - install_
file_ drop_ to_ editor_ listener - Install a
file-droppedlistener that opens a dropped video in the editor: it callsscreen_open_in_editor, whoseeditor-projectreply loads the project and (via the app-root effect) switches to the Editor tab. Dropping a video anywhere in the app surface opens it for editing. App-lifetime; the closure is leaked viaforget. - install_
recordings_ listener - Install a
recordings-listedlistener pushing the entries intoentries. - list_
recordings - Ask the shell to list recordings (results via
recordings-listed). - looks_
like_ 🔒video - Whether
pathhas a recognized video extension. The editor drop listener ignores non-video drops so dropping an unrelated file is a no-op rather than a failedgst-discovererprobe. - on_
custom_ 🔒event - screen_
editor_ 🔒export_ cancel_ js - Request cancellation of the in-flight export.
- screen_
editor_ 🔒export_ js - Start an edited export. Resolves to the output path (re-dispatched as
editor-export-done); rejects aseditor-export-error. - screen_
editor_ 🔒preview_ open_ js - Open / update the live editor preview (AUT-510) for
project— builds the compose pipeline (and re-applies edits) soeditor_preview_framecomposes the current edit. Fire-and-forget. - screen_
editor_ 🔒save_ project_ js - Save the current project to its
.screenproj(ED.23). The written path is re-dispatched as aneditor-savedevent. - screen_
editor_ 🔒transport_ js - Send a transport action to the backend editor session.
catchso it degrades to a no-op outside Tauri. - screen_
list_ 🔒recordings_ js - List recordings; results arrive as a
recordings-listedevent. - screen_
open_ in_ editor - Ask the shell to open
pathin the editor. Fire-and-forget: the loaded project arrives asynchronously as aneditor-projectbrowserCustomEvent(seeinstall_editor_project_listener).catchso it degrades to a no-op outside Tauri.