diff options
author | Sebastian <sebasjm@gmail.com> | 2022-06-24 14:28:45 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2022-06-24 14:28:45 -0300 |
commit | 73551c83c45b591464e8588a9f6a94ba3e9238f6 (patch) | |
tree | 7f0c2369f24cf779af91303ff3627adc83eb70f4 | |
parent | 2f8fd783b60af610353119689bb8df05ca7b35ac (diff) |
fix #7077 file support
5 files changed, 34 insertions, 21 deletions
diff --git a/packages/anastasis-webui/src/pages/home/BackupFinishedScreen.tsx b/packages/anastasis-webui/src/pages/home/BackupFinishedScreen.tsx index f774d3890..d69a0af38 100644 --- a/packages/anastasis-webui/src/pages/home/BackupFinishedScreen.tsx +++ b/packages/anastasis-webui/src/pages/home/BackupFinishedScreen.tsx @@ -49,7 +49,7 @@ export function BackupFinishedScreen(): VNode { version {sd.policy_version} {sd.policy_expiration.t_s !== "never" ? ` expires at: ${format( - new Date(sd.policy_expiration.t_s), + new Date(sd.policy_expiration.t_s * 1000), "dd-MM-yyyy", )}` : " without expiration date"} diff --git a/packages/anastasis-webui/src/pages/home/ContinentSelectionScreen.tsx b/packages/anastasis-webui/src/pages/home/ContinentSelectionScreen.tsx index 534f9136d..fc9c0f097 100644 --- a/packages/anastasis-webui/src/pages/home/ContinentSelectionScreen.tsx +++ b/packages/anastasis-webui/src/pages/home/ContinentSelectionScreen.tsx @@ -135,7 +135,7 @@ export function ContinentSelectionScreen(): VNode { Choose the country that issued most of your long-term legal documents or personal identifiers. </p> - <div + {/* <div style={{ border: "1px solid gray", borderRadius: "0.5em", @@ -149,7 +149,7 @@ export function ContinentSelectionScreen(): VNode { country, you will be asked for a simple number and not real, personal identifiable information. </p> - </div> + </div> */} </div> </div> </AnastasisClientFrame> diff --git a/packages/anastasis-webui/src/pages/home/RecoveryFinishedScreen.tsx b/packages/anastasis-webui/src/pages/home/RecoveryFinishedScreen.tsx index fae53d8dc..c8615da14 100644 --- a/packages/anastasis-webui/src/pages/home/RecoveryFinishedScreen.tsx +++ b/packages/anastasis-webui/src/pages/home/RecoveryFinishedScreen.tsx @@ -56,9 +56,11 @@ export function RecoveryFinishedScreen(): VNode { ); } const secret = bytesToString(decodeCrock(encodedSecret.value)); - const contentURI = `data:${encodedSecret.mime},${secret}`; - // const fileName = encodedSecret['filename'] - // data:plain/text;base64,asdasd + const plainText = + encodedSecret.value.length < 1000 && encodedSecret.mime === "text/plain"; + const contentURI = !plainText + ? secret + : `data:${encodedSecret.mime},${secret}`; return ( <AnastasisClientFrame title="Recovery Success" hideNav> <h2 class="subtitle">Your secret was recovered</h2> @@ -68,25 +70,36 @@ export function RecoveryFinishedScreen(): VNode { </p> )} <div class="block buttons" disabled={copied}> - <button - class="button" - onClick={() => { - navigator.clipboard.writeText(secret); - setCopied(true); - }} + {plainText ? ( + <button + class="button" + onClick={() => { + navigator.clipboard.writeText(secret); + setCopied(true); + }} + > + {!copied ? "Copy" : "Copied"} + </button> + ) : undefined} + + <a + class="button is-info" + download={ + encodedSecret.filename ? encodedSecret.filename : "secret.file" + } + href={contentURI} > - {!copied ? "Copy" : "Copied"} - </button> - <a class="button is-info" download="secret.txt" href={contentURI}> <div class="icon is-small "> <i class="mdi mdi-download" /> </div> - <span>Save as</span> + <span>Download content</span> </a> </div> - <div class="block"> - <QR text={secret} /> - </div> + {plainText ? ( + <div class="block"> + <QR text={secret} /> + </div> + ) : undefined} </AnastasisClientFrame> ); } diff --git a/packages/anastasis-webui/src/pages/home/SecretEditorScreen.tsx b/packages/anastasis-webui/src/pages/home/SecretEditorScreen.tsx index 329a96d74..93a27837c 100644 --- a/packages/anastasis-webui/src/pages/home/SecretEditorScreen.tsx +++ b/packages/anastasis-webui/src/pages/home/SecretEditorScreen.tsx @@ -52,7 +52,7 @@ export function SecretEditorScreen(): VNode { const secretNext = async (): Promise<void> => { const secret = secretFile ? { - value: encodeCrock(stringToBytes(secretValue)), + value: encodeCrock(stringToBytes(secretFile.content)), filename: secretFile.name, mime: secretFile.type, } diff --git a/packages/anastasis-webui/src/pages/home/authMethod/AuthMethodEmailSetup.tsx b/packages/anastasis-webui/src/pages/home/authMethod/AuthMethodEmailSetup.tsx index a11d855aa..b3af0f080 100644 --- a/packages/anastasis-webui/src/pages/home/authMethod/AuthMethodEmailSetup.tsx +++ b/packages/anastasis-webui/src/pages/home/authMethod/AuthMethodEmailSetup.tsx @@ -21,7 +21,7 @@ import { AnastasisClientFrame } from "../index.js"; import { AuthMethodSetupProps } from "./index.js"; const EMAIL_PATTERN = - /^(([^<>()[]\\.,;:\s@"]+(\.[^<>()[]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; export function AuthMethodEmailSetup({ cancel, |