mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-15 22:28:10 +08:00
Refactor persistence to combine document handling and workspace layout (#4031)
* Unify editor state persistence * Review * Fix * Remove redundant DocumentDetails * LoadDocumentContent indirection
This commit is contained in:
@@ -379,13 +379,23 @@ impl EditorWrapper {
|
||||
}
|
||||
}
|
||||
|
||||
#[wasm_bindgen(js_name = loadWorkspaceLayout)]
|
||||
pub fn load_workspace_layout(&self, layout: JsValue) {
|
||||
let Ok(layout) = serde_wasm_bindgen::from_value(layout) else {
|
||||
log::error!("Failed to deserialize workspace layout");
|
||||
#[wasm_bindgen(js_name = loadPersistedState)]
|
||||
pub fn load_persisted_state(&self, state: JsValue) {
|
||||
let Ok(state) = serde_wasm_bindgen::from_value(state) else {
|
||||
log::error!("Failed to deserialize persisted state");
|
||||
return;
|
||||
};
|
||||
let message = PortfolioMessage::LoadWorkspaceLayout { layout };
|
||||
|
||||
let message = PersistentStateMessage::LoadState { state };
|
||||
self.dispatch(message);
|
||||
}
|
||||
|
||||
#[wasm_bindgen(js_name = loadDocumentContent)]
|
||||
pub fn load_document_content(&self, document_id: u64, document: String) {
|
||||
let message = PersistentStateMessage::LoadDocument {
|
||||
document_id: DocumentId(document_id),
|
||||
document: document,
|
||||
};
|
||||
self.dispatch(message);
|
||||
}
|
||||
|
||||
@@ -414,22 +424,6 @@ impl EditorWrapper {
|
||||
self.dispatch(message);
|
||||
}
|
||||
|
||||
#[wasm_bindgen(js_name = openAutoSavedDocument)]
|
||||
pub fn open_auto_saved_document(&self, document_id: u64, document_name: String, document_is_saved: bool, document_serialized_content: String, to_front: bool) {
|
||||
let document_id = DocumentId(document_id);
|
||||
let message = PortfolioMessage::OpenDocumentFileWithId {
|
||||
document_id,
|
||||
document_name: Some(document_name),
|
||||
document_path: None,
|
||||
document_is_auto_saved: true,
|
||||
document_is_saved,
|
||||
document_serialized_content,
|
||||
to_front,
|
||||
select_after_open: false,
|
||||
};
|
||||
self.dispatch(message);
|
||||
}
|
||||
|
||||
#[wasm_bindgen(js_name = triggerAutoSave)]
|
||||
pub fn trigger_auto_save(&self, document_id: u64) {
|
||||
let document_id = DocumentId(document_id);
|
||||
|
||||
Reference in New Issue
Block a user