From 0ecfa48df034ce999f626361eb3fcb2a876866b7 Mon Sep 17 00:00:00 2001 From: Arman Date: Tue, 31 May 2022 17:45:52 +0200 Subject: [PATCH] feat: WIP created logic for user preferences --- .../[project]/users/user/[user]/index.svelte | 93 +++++++++++++++++-- 1 file changed, 86 insertions(+), 7 deletions(-) diff --git a/src/routes/console/[project]/users/user/[user]/index.svelte b/src/routes/console/[project]/users/user/[user]/index.svelte index 5b2f691ee..8ee289d37 100644 --- a/src/routes/console/[project]/users/user/[user]/index.svelte +++ b/src/routes/console/[project]/users/user/[user]/index.svelte @@ -18,6 +18,9 @@ let userEmail = null; let repeatPassword = null; let newPassword = null; + let newPref = false; + let newKey = null; + let newValue = null; const getAvatar = (name: string) => sdkForProject.avatars.getInitials(name, 128, 128).toString(); @@ -101,6 +104,38 @@ } else addError('password', "Passwords don't match", 'error'); } + + async function updatePrefs() { + try { + let tmp = $user.prefs; + tmp[newKey] = newValue; + await sdkForProject.users.updatePrefs($user.$id, tmp); + $user.prefs = tmp; + newKey = null; + newValue = null; + addNotification({ + message: 'Preferences have been updated', + type: 'success' + }); + } catch (error) { + addError('password', error.message, 'error'); + } + } + + async function deletePref(selectedKey: string) { + try { + let tmp = $user.prefs; + delete tmp[selectedKey]; + await sdkForProject.users.updatePrefs($user.$id, tmp); + $user.prefs = tmp; + addNotification({ + message: 'Preferences have been updated', + type: 'success' + }); + } catch (error) { + addError('password', error.message, 'error'); + } + } @@ -116,20 +151,24 @@
{#if !$user.status} Blocked + {:else} + {$user.emailVerification ? 'Verified' : 'Unverified'} {/if} - {$user.emailVerification ? 'Verified' : 'Unverified'}

Joined on {toLocaleDate($user.registration)}

- + {#if $user.status} + + {/if}
+ newKey = null; newValue = null;
Update Name
    @@ -209,14 +248,54 @@
{#each Object.entries($user.prefs) as [key, value]} -

{key}: {value}

+
    + + + +
{:else} - No user preferences found. +
    + + + +
{/each} + {#if newPref} +
    + + + +
+ {/if} +
- +