Implement IndexedDB document auto-save (#422)

* removed all use of document indicies

* -add u64 support for wasm bridge

* fixed rust formating

* Cleaned up FrontendDocumentState in js-messages

* Tiny tweaks from code review

* - moved more of closeDocumentWithConfirmation to rust
- updated serde_wasm_bindgen to add feature flag

* working initial auto save impl

* auto save is a lifetime file

* - cargo fmt
- fixc error message
- move document version constant

* code review round 1

* generate seed for uuid in js when wasm is initialized

* Resolve PR feedback

* Further address PR feedback

* Fix failing test

Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: otdavies <oliver@psyfer.io>
This commit is contained in:
mfish33
2021-12-27 04:56:47 -05:00
committed by Keavon Chambers
co-authored by Keavon Chambers otdavies
parent ff39ebfdbb
commit c9f140f458
17 changed files with 255 additions and 30 deletions
+20
View File
@@ -175,11 +175,26 @@ impl JsEditorHandle {
self.dispatch(message);
}
pub fn open_auto_saved_document(&self, document_id: u64, document_name: String, document_is_saved: bool, document: String) {
let message = DocumentsMessage::OpenDocumentFileWithId {
document_id,
document_name,
document_is_saved,
document,
};
self.dispatch(message);
}
pub fn save_document(&self) {
let message = DocumentMessage::SaveDocument;
self.dispatch(message);
}
pub fn trigger_auto_save(&self, document_id: u64) {
let message = DocumentsMessage::AutoSaveDocument(document_id);
self.dispatch(message);
}
pub fn close_document(&self, document_id: u64) {
let message = DocumentsMessage::CloseDocument(document_id);
self.dispatch(message);
@@ -509,3 +524,8 @@ pub fn i32_max() -> i32 {
pub fn i32_min() -> i32 {
i32::MIN
}
#[wasm_bindgen]
pub fn set_random_seed(seed: u64) {
editor::communication::set_uuid_seed(seed)
}