fix: Update account information after changes in manage page

This commit is contained in:
Aleksi Lassila
2024-06-17 20:45:56 +03:00
parent 421f0982d7
commit 1c2fbf74eb
2 changed files with 18 additions and 8 deletions

View File

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

View File

@@ -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 @@
<Container direction="horizontal" class="flex space-x-4">
<Button type="primary-dark" icon={Exit} on:clickOrSelect={handleLogOut}>Log Out</Button>
</Container>
{#await users then users}
{#if users?.length}
{#await users then usersR}
{#if usersR?.length}
<div class="mt-8">
<h1 class="header1 mb-4">Server Accounts</h1>
<Container class="grid grid-cols-2 gap-4" direction="grid" gridCols={2}>
{#each users as user}
{#each usersR.filter((u) => u.id !== $user?.id) as user}
<SelectField
value={user?.name || ''}
on:clickOrSelect={() => {
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())
});
}}
>