From a9d7d53d90c7ada5c256f8a22e0fc636a0b709e3 Mon Sep 17 00:00:00 2001 From: Raito Bezarius Date: Thu, 12 Sep 2024 17:23:19 +0200 Subject: [PATCH] feat(write-docs): write them encrypted Signed-off-by: Raito Bezarius --- .../docs/doc-editor/hook/useSaveDoc.tsx | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/frontend/apps/impress/src/features/docs/doc-editor/hook/useSaveDoc.tsx b/src/frontend/apps/impress/src/features/docs/doc-editor/hook/useSaveDoc.tsx index 2a76f422f..ebc8cb3a2 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-editor/hook/useSaveDoc.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-editor/hook/useSaveDoc.tsx @@ -20,11 +20,11 @@ const useSaveDoc = ( }); const e2eClient = useE2ESDKClient(); const [initialDoc, setInitialDoc] = useState( - toBase64(Y.encodeStateAsUpdate(doc)), + JSON.stringify(editor.document) ); useEffect(() => { - setInitialDoc(toBase64(Y.encodeStateAsUpdate(doc))); + setInitialDoc(JSON.stringify(editor.document)); }, [doc]); /** @@ -40,7 +40,7 @@ const useSaveDoc = ( transaction: Y.Transaction, ) => { if (!transaction.local) { - setInitialDoc(toBase64(Y.encodeStateAsUpdate(updatedDoc))); + setInitialDoc(JSON.stringify(editor.document)); } }; @@ -55,11 +55,11 @@ const useSaveDoc = ( * Check if the doc has been updated and can be saved. */ const hasChanged = useCallback(() => { - const newDoc = toBase64(Y.encodeStateAsUpdate(doc)); - return initialDoc !== newDoc; + return initialDoc !== JSON.stringify(editor.document); }, [doc, initialDoc]); const shouldSave = useCallback(() => { + console.log('hasChanged', hasChanged(), 'canSave', canSave); return hasChanged() && canSave; }, [canSave, hasChanged]); @@ -69,9 +69,9 @@ const useSaveDoc = ( // TODO encode the content - const docId = 'uuid-du-doc'; - const purpose = `doc:${docId}`; + const purpose = `docs:${docId}`; const key = e2eClient.findKeyByPurpose(purpose); + console.log("purpose", purpose, "key", key); if (!key) { alert('probleme de key'); return; @@ -87,7 +87,7 @@ const useSaveDoc = ( updateDoc({ id: docId, - content: newDoc, + content: encrypted, }); }, [docId, editor?.document, updateDoc]); @@ -100,10 +100,12 @@ const useSaveDoc = ( } const onSave = (e?: Event) => { + console.log('entered onSave'); if (!shouldSave()) { return; } + console.log('will save'); saveDoc(); /** @@ -122,7 +124,7 @@ const useSaveDoc = ( }; // Save every minute - timeout.current = setInterval(onSave, 60000); + timeout.current = setInterval(onSave, 1000); // Save when the user leaves the page addEventListener('beforeunload', onSave); // Save when the user navigates to another page