From 5d4c882cc48bbee005ba65f082ad7bd771070b3d Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Sat, 3 May 2025 08:43:35 -0700 Subject: settings re-org --- src/components/Payments.svelte | 11 +- src/locales/en.json | 6 +- src/routes/(app)/settings/+layout.svelte | 25 +- src/routes/(app)/settings/account/+page.server.ts | 6 + src/routes/(app)/settings/account/+page.svelte | 387 +++++++++++++-------- .../(app)/settings/preferences/+page.server.ts | 11 - src/routes/(app)/settings/preferences/+page.svelte | 291 ---------------- src/routes/(app)/settings/profile/+page.server.ts | 5 + src/routes/(app)/settings/profile/+page.svelte | 169 +++++++++ 9 files changed, 456 insertions(+), 455 deletions(-) delete mode 100644 src/routes/(app)/settings/preferences/+page.server.ts delete mode 100644 src/routes/(app)/settings/preferences/+page.svelte create mode 100644 src/routes/(app)/settings/profile/+page.server.ts create mode 100644 src/routes/(app)/settings/profile/+page.svelte diff --git a/src/components/Payments.svelte b/src/components/Payments.svelte index 814a5b4e..36633089 100644 --- a/src/components/Payments.svelte +++ b/src/components/Payments.svelte @@ -6,6 +6,7 @@ import { t } from "$lib/translations"; import locales from "$lib/locales"; const { fund, locale, user, payments } = $props(); + const language = $derived(user?.language || "en");
@@ -106,7 +107,11 @@ {#if p.type === types.ecash} {amount > 0 ? $t("payments.redeemed") : $t("payments.minted")} {:else} - {amount > 0 ? (p.confirmed ? $t("payments.received") : $t("payments.pending")) : $t("payments.sent")} + {amount > 0 + ? p.confirmed + ? $t("payments.received") + : $t("payments.pending") + : $t("payments.sent")} {/if}
@@ -116,12 +121,12 @@
{format(new Date(p.created), "h:mm aaa", { - locale: locales[user.language], + locale: locales[language], })}
{format(new Date(p.created), "MMM d, yy", { - locale: locales[user.language], + locale: locales[language], })}
diff --git a/src/locales/en.json b/src/locales/en.json index ca580e41..d6d9ca89 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -294,6 +294,7 @@ "placeholder": "Enter an address, invoice or username" }, "settings": { + "nostr": "Nostr", "name": "Name", "integrations": "Integrations", "syncWithExtension": "Sync with extension", @@ -325,7 +326,7 @@ "nwc": "Nostr wallet connect (NWC)", "nwcDescription": "Enable nostr apps to send payments from your account", "seedDescription": "This 12 word seed phrase is used to derive your nostr private key and your self-custodial wallet keys which determine your auto-withdrawal addresses. Back it up and don't let anyone see it.", - "emailDescription": "For password resets and payment notifications only", + "emailDescription": "For password resets and payment notifications", "hideNsec": "Hide nostr secret key", "saved": "Settings saved!", "verifying": "Verification email sent", @@ -340,7 +341,8 @@ "accountId": "Account Secret", "header": "Settings", "ACCOUNT": "PROFILE", - "POINT_OF_SALE": "SETTINGS", + "POINT_OF_SALE": "ACCOUNT", + "NOSTR": "NOSTR", "SECURITY": "SECURITY", "locale": "Language", "username": "Username", diff --git a/src/routes/(app)/settings/+layout.svelte b/src/routes/(app)/settings/+layout.svelte index 2fe95813..33398ed5 100644 --- a/src/routes/(app)/settings/+layout.svelte +++ b/src/routes/(app)/settings/+layout.svelte @@ -36,8 +36,9 @@ }; let tabs = [ - { name: "account", key: "ACCOUNT" }, - { name: "preferences", key: "POINT_OF_SALE" }, + { name: "profile", key: "ACCOUNT" }, + { name: "account", key: "POINT_OF_SALE" }, + { name: "nostr", key: "NOSTR" }, { name: "security", key: "SECURITY" }, ]; @@ -208,16 +209,16 @@ {$t("user.settings.header")} -
- {#each tabs.filter((t) => t.name !== "shopify") as { name, key }} - - + diff --git a/src/routes/(app)/settings/account/+page.server.ts b/src/routes/(app)/settings/account/+page.server.ts index 4145935e..f0cc700e 100644 --- a/src/routes/(app)/settings/account/+page.server.ts +++ b/src/routes/(app)/settings/account/+page.server.ts @@ -1,5 +1,11 @@ +import getRates from "$lib/rates"; import updateUser from "$lib/settings"; +export async function load() { + const rates = await getRates(); + return { rates }; +} + export const actions = { default: updateUser, }; diff --git a/src/routes/(app)/settings/account/+page.svelte b/src/routes/(app)/settings/account/+page.svelte index d4178fd1..c5c75d88 100644 --- a/src/routes/(app)/settings/account/+page.svelte +++ b/src/routes/(app)/settings/account/+page.svelte @@ -1,58 +1,98 @@
- {$t("user.settings.locale")} -
- -
+
- {$t("user.settings.localCurrency")} - +
@@ -86,108 +128,181 @@ > {#if verified} - {:else if email} - {/if}
-
- {$t("user.settings.profileImage")} +
+
+ {$t("user.settings.notifications")} + +
+

+ {$t("user.settings.notificationsDesc")} +

+
-
- {#if $avatar || picture} -
- {username} -
- {:else} -
+
+
+ {$t("user.settings.pushNotifications")} + {#if permission !== "denied"} + {/if} -
- - - handleFile(e, "picture")} - /> -
+

+ {#if permission === "denied"} + {$t("user.settings.pushNotificationsDisabled")} + {:else} + {$t("user.settings.pushNotificationsDesc")} + {/if} +

+
- {#if tooLarge["avatar"]} -
Max file size 10MB
- {/if} +
+
+ {$t("user.settings.tipPrompt")} + +
+

+ {$t("user.settings.tipPromptDescription")} +

-
+
- {$t("user.settings.bannerImage")} + {$t("user.settings.autoWithdraw")} +
+

+ {$t("user.settings.autoWithdrawDescription")} +

+
- {#if $bannerStore || banner} - Banner - {:else} -
- {/if} - - + + +
+ +
+ + +

+ {$t("user.settings.thresholdDesc")} +

+
+ +
+ + +

+ {$t("user.settings.reserveDesc")} +

+
+{/if} + +{#if editingThreshold} +
- handleFile(e, "banner")} - /> - - {#if tooLarge["banner"]} -
Max file size 10MB
- {/if} -
+
+

+ {$t("user.settings.threshold")} +

+ -
- Ok +
+
+{/if} + +{#if editingReserve} +
- -
+
+

+ {$t("user.settings.reserve")} +

+ + +
+
+{/if} diff --git a/src/routes/(app)/settings/preferences/+page.server.ts b/src/routes/(app)/settings/preferences/+page.server.ts deleted file mode 100644 index f0cc700e..00000000 --- a/src/routes/(app)/settings/preferences/+page.server.ts +++ /dev/null @@ -1,11 +0,0 @@ -import getRates from "$lib/rates"; -import updateUser from "$lib/settings"; - -export async function load() { - const rates = await getRates(); - return { rates }; -} - -export const actions = { - default: updateUser, -}; diff --git a/src/routes/(app)/settings/preferences/+page.svelte b/src/routes/(app)/settings/preferences/+page.svelte deleted file mode 100644 index 0f30c61b..00000000 --- a/src/routes/(app)/settings/preferences/+page.svelte +++ /dev/null @@ -1,291 +0,0 @@ - - -
- - -
- -
- - -
- -
- - -
- -
-
- {$t("user.settings.notifications")} - -
-

- {$t("user.settings.notificationsDesc")} -

-
- -
-
- {$t("user.settings.pushNotifications")} - {#if permission !== "denied"} - - {/if} -
-

- {#if permission === "denied"} - {$t("user.settings.pushNotificationsDisabled")} - {:else} - {$t("user.settings.pushNotificationsDesc")} - {/if} -

-
- -
-
- {$t("user.settings.tipPrompt")} - -
-

- {$t("user.settings.tipPromptDescription")} -

-
- -
-
- {$t("user.settings.autoWithdraw")} - -
-

- {$t("user.settings.autoWithdrawDescription")} -

-
- -{#if user.autowithdraw} -
- - -
- -
- - -

- {$t("user.settings.thresholdDesc")} -

-
- -
- - -

- {$t("user.settings.reserveDesc")} -

-
-{/if} - -{#if editingThreshold} -
-
-

- {$t("user.settings.threshold")} -

- - - -
-
-{/if} - -{#if editingReserve} -
-
-

- {$t("user.settings.reserve")} -

- - -
-
-{/if} diff --git a/src/routes/(app)/settings/profile/+page.server.ts b/src/routes/(app)/settings/profile/+page.server.ts new file mode 100644 index 00000000..4145935e --- /dev/null +++ b/src/routes/(app)/settings/profile/+page.server.ts @@ -0,0 +1,5 @@ +import updateUser from "$lib/settings"; + +export const actions = { + default: updateUser, +}; diff --git a/src/routes/(app)/settings/profile/+page.svelte b/src/routes/(app)/settings/profile/+page.svelte new file mode 100644 index 00000000..bee50d39 --- /dev/null +++ b/src/routes/(app)/settings/profile/+page.svelte @@ -0,0 +1,169 @@ + + +
+ +
+ +
+
+ +
+ + +
+ +
+ {$t("user.settings.profileImage")} + +
+ {#if $avatar || picture} +
+ {username} +
+ {:else} +
+ {/if} +
+ + + handleFile(e, "picture")} + /> +
+
+ + {#if tooLarge["avatar"]} +
Max file size 10MB
+ {/if} +
+ +
+
+ {$t("user.settings.bannerImage")} +
+ + {#if $bannerStore || banner} + Banner + {:else} +
+ {/if} + + + handleFile(e, "banner")} + /> + + {#if tooLarge["banner"]} +
Max file size 10MB
+ {/if} +
+ +
+ + +
-- cgit v1.2.3