fix #7077 file support

This commit is contained in:
Sebastian 2022-06-24 14:28:45 -03:00
parent 2f8fd783b6
commit 73551c83c4
No known key found for this signature in database
GPG Key ID: BE4FF68352439FC1
5 changed files with 34 additions and 21 deletions

View File

@ -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"}

View File

@ -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>

View File

@ -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>
);
}

View File

@ -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,
}

View File

@ -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,