From f49df12b441a2bd06520df42ddd41fc42f639147 Mon Sep 17 00:00:00 2001
From: Sebastian <sebasjm@gmail.com>
Date: Wed, 24 Nov 2021 17:38:39 -0300
Subject: restore and save session

---
 .../src/components/menu/SideBar.tsx                | 28 ++++++++++++++++++++++
 1 file changed, 28 insertions(+)

(limited to 'packages/anastasis-webui/src/components/menu/SideBar.tsx')

diff --git a/packages/anastasis-webui/src/components/menu/SideBar.tsx b/packages/anastasis-webui/src/components/menu/SideBar.tsx
index c73369dd6..6c8189fb9 100644
--- a/packages/anastasis-webui/src/components/menu/SideBar.tsx
+++ b/packages/anastasis-webui/src/components/menu/SideBar.tsx
@@ -36,6 +36,14 @@ export function Sidebar({ mobile }: Props): VNode {
   const process = { env: { __VERSION__: "0.0.0" } };
   const reducer = useAnastasisContext()!;
 
+  function saveSession(): void {
+    const state = reducer.exportState();
+    const link = document.createElement("a");
+    link.download = "anastasis.json";
+    link.href = `data:text/plain,${state}`;
+    link.click();
+  }
+
   return (
     <aside class="aside is-placed-left is-expanded">
       {/* {mobile && <div class="footer" onClick={(e) => { return e.stopImmediatePropagation() }}>
@@ -171,6 +179,16 @@ export function Sidebar({ mobile }: Props): VNode {
                 <span class="menu-item-label"><Translate>Truth Paying</Translate></span>
               </div>
             </li> */}
+              <li>
+                <div class="buttons ml-4">
+                  <button
+                    class="button is-primary is-right"
+                    onClick={saveSession}
+                  >
+                    Save backup session
+                  </button>
+                </div>
+              </li>
             </Fragment>
           ) : (
             reducer.currentReducerState &&
@@ -250,6 +268,16 @@ export function Sidebar({ mobile }: Props): VNode {
                     </span>
                   </div>
                 </li>
+                <li>
+                  <div class="buttons ml-4">
+                    <button
+                      class="button is-primary is-right"
+                      onClick={saveSession}
+                    >
+                      Save recovery session
+                    </button>
+                  </div>
+                </li>
               </Fragment>
             )
           )}
-- 
cgit v1.2.3

