diff --git a/src/lib/components/Dialog/CreateOrEditProfileModal.svelte b/src/lib/components/Dialog/CreateOrEditProfileModal.svelte index 09193d0..bac0bcb 100644 --- a/src/lib/components/Dialog/CreateOrEditProfileModal.svelte +++ b/src/lib/components/Dialog/CreateOrEditProfileModal.svelte @@ -27,6 +27,7 @@ export let modalId: symbol; export let user: ReiverrUser | undefined = undefined; + export let onComplete: () => void = () => {}; export let createNew = false; export let admin = createNew; @@ -127,6 +128,7 @@ errorMessage = error; } else { modalStack.closeTopmost(); + onComplete(); } } @@ -142,19 +144,21 @@ errorMessage = error; } else { modalStack.closeTopmost(); + onComplete(); } } async function handleDeleteAccount() { + const self = user?.id === get(userStore)?.id; const error = await reiverrApi.deleteUser(user?.id); if (error) { errorMessage = error; } else { modalStack.close(modalId); - if (!admin) { + if (self) { sessions.removeSession(); navigate('/'); - } + } else onComplete(); } } diff --git a/src/lib/pages/ManagePage.svelte b/src/lib/pages/ManagePage.svelte index 989955d..b4f8113 100644 --- a/src/lib/pages/ManagePage.svelte +++ b/src/lib/pages/ManagePage.svelte @@ -49,7 +49,11 @@ let lastKey = ''; let tizenMediaKey = ''; $: tmdbAccount = $user?.settings.tmdb.userId ? tmdbApi.getAccountDetails() : undefined; - $: users = $user?.isAdmin ? reiverrApi.getUsers() : undefined; + let users = getUsers(); + + function getUsers() { + return $user?.isAdmin ? reiverrApi.getUsers() : undefined; + } async function handleDisconnectTmdb() { return user.updateUser((prev) => ({ @@ -236,18 +240,19 @@ - {#await users then users} - {#if users?.length} + {#await users then usersR} + {#if usersR?.length}

Server Accounts

- {#each users as user} + {#each usersR.filter((u) => u.id !== $user?.id) as user} { createModal(EditProfileModal, { user, - admin: true + admin: true, + onComplete: () => (users = getUsers()) }); }} > @@ -265,7 +270,8 @@ value="New Account" on:clickOrSelect={() => { createModal(EditProfileModal, { - createNew: true + createNew: true, + onComplete: () => (users = getUsers()) }); }} >