Actually, then the two could share this state-saving code: I think saveAll() could just call `handleFileSave({doc: doc})` inside the `if (doc)` block.