fix error messages, switch to state overview data instead of importing

it
This commit is contained in:
Soph :3 2026-01-16 20:48:12 +02:00
parent f47d113a01
commit 578edf32d4
3 changed files with 33 additions and 26 deletions

View file

@ -14,7 +14,7 @@
import Button, { buttonVariants } from './ui/button/button.svelte'; import Button, { buttonVariants } from './ui/button/button.svelte';
import User from './extra/User.svelte'; import User from './extra/User.svelte';
import type { SessionValidationResult } from '$lib/server/auth'; import type { SessionValidationResult } from '$lib/server/auth';
import { Status, type OverviewData, type OverviewUser } from '$lib'; import { Status, type OverviewUser } from '$lib';
import Label from './ui/label/label.svelte'; import Label from './ui/label/label.svelte';
import { toast } from 'svelte-sonner'; import { toast } from 'svelte-sonner';
import { enhance } from '$app/forms'; import { enhance } from '$app/forms';
@ -22,10 +22,11 @@
import { fill_overview_data } from '$lib/state.svelte'; import { fill_overview_data } from '$lib/state.svelte';
import type { PageServerLoad } from '../../routes/app/$types'; import type { PageServerLoad } from '../../routes/app/$types';
import { overview_data } from '$lib/state.svelte';
let { let {
currentPage = $bindable<string | null>(), currentPage = $bindable<string | null>(),
subPage = $bindable<string | null>(), subPage = $bindable<string | null>(),
data,
psd, psd,
user, user,
...restProps ...restProps
@ -33,7 +34,6 @@
currentPage: string | null; currentPage: string | null;
subPage: string | null; subPage: string | null;
psd: PageServerLoad; psd: PageServerLoad;
data: OverviewData;
user: SessionValidationResult['user']; user: SessionValidationResult['user'];
} = $props(); } = $props();
</script> </script>
@ -84,7 +84,8 @@
if (result.type == 'error' || result.type == 'failure') { if (result.type == 'error' || result.type == 'failure') {
toast.error( toast.error(
'Could not send friend request: ' + (result.error || result.data?.error) 'Could not send friend request: ' +
(result.type === 'error' ? result.error : result.data?.error)
); );
} }
@ -132,7 +133,7 @@
if (result.type == 'error' || result.type == 'failure') { if (result.type == 'error' || result.type == 'failure') {
toast.error( toast.error(
'Could not cancel friend request: ' + 'Could not cancel friend request: ' +
(result.error || result.data?.error) (result.type === 'error' ? result.error : result.data?.error)
); );
} }
@ -175,7 +176,7 @@
if (result.type == 'error' || result.type == 'failure') { if (result.type == 'error' || result.type == 'failure') {
toast.error( toast.error(
'Could not accept friend request: ' + 'Could not accept friend request: ' +
(result.error || result.data?.error) (result.type === 'error' ? result.error : result.data?.error)
); );
} }
@ -200,7 +201,7 @@
if (result.type == 'error' || result.type == 'failure') { if (result.type == 'error' || result.type == 'failure') {
toast.error( toast.error(
'Could not cancel friend request: ' + 'Could not cancel friend request: ' +
(result.error || result.data?.error) (result.type === 'error' ? result.error : result.data?.error)
); );
} }
@ -240,7 +241,7 @@
if (result.type == 'error' || result.type == 'failure') { if (result.type == 'error' || result.type == 'failure') {
toast.error( toast.error(
'Could not remove friend: ' + 'Could not remove friend: ' +
(result.error || result.data?.error) (result.type === 'error' ? result.error : result.data?.error)
); );
} }
@ -282,7 +283,8 @@
if (result.type == 'error' || result.type == 'failure') { if (result.type == 'error' || result.type == 'failure') {
toast.error( toast.error(
'Could not create group: ' + (result.error || result.data?.error) 'Could not create group: ' +
(result.type === 'error' ? result.error : result.data?.error)
); );
} }
@ -296,7 +298,7 @@
<Dialog.Description>Add friends into your group!</Dialog.Description> <Dialog.Description>Add friends into your group!</Dialog.Description>
</Dialog.Header> </Dialog.Header>
{#each data.friends as friend (friend.id)} {#each overview_data.friends as friend (friend.id)}
<label class="flex items-center gap-2"> <label class="flex items-center gap-2">
<input type="checkbox" name="member" value={friend.id} /> <input type="checkbox" name="member" value={friend.id} />
<User crown={false} user={friend} /> <User crown={false} user={friend} />
@ -330,7 +332,10 @@
} }
if (result.type == 'error' || result.type == 'failure') { if (result.type == 'error' || result.type == 'failure') {
toast.error('Could not join server: ' + (result.error || result.data?.error)); toast.error(
'Could not join server: ' +
(result.type === 'error' ? result.error : result.data?.error)
);
} }
await invalidateAll(); await invalidateAll();
@ -372,7 +377,8 @@
if (result.type == 'error' || result.type == 'failure') { if (result.type == 'error' || result.type == 'failure') {
toast.error( toast.error(
'Could not create server: ' + (result.error || result.data?.error) 'Could not create server: ' +
(result.type === 'error' ? result.error : result.data?.error)
); );
} }
@ -413,7 +419,7 @@
</Collapsible.Trigger> </Collapsible.Trigger>
<Collapsible.Content> <Collapsible.Content>
<Sidebar.MenuSub> <Sidebar.MenuSub>
{#each data.friends as friend (friend.id)} {#each overview_data.friends as friend (friend.id)}
<Sidebar.MenuSubItem> <Sidebar.MenuSubItem>
<Sidebar.MenuSubButton> <Sidebar.MenuSubButton>
<User <User
@ -444,7 +450,7 @@
</Collapsible.Trigger> </Collapsible.Trigger>
<Collapsible.Content> <Collapsible.Content>
<Sidebar.MenuSub> <Sidebar.MenuSub>
{#each data.groups as group (group.id)} {#each overview_data.groups as group (group.id)}
<Sidebar.MenuSubItem> <Sidebar.MenuSubItem>
<Sidebar.MenuSubButton> <Sidebar.MenuSubButton>
<a <a
@ -476,7 +482,7 @@
</Collapsible.Trigger> </Collapsible.Trigger>
<Collapsible.Content> <Collapsible.Content>
<Sidebar.MenuSub> <Sidebar.MenuSub>
{#each data.servers as server (server.id)} {#each overview_data.servers as server (server.id)}
<Sidebar.MenuSubItem> <Sidebar.MenuSubItem>
<Sidebar.MenuSubButton <Sidebar.MenuSubButton
onclick={(e) => { onclick={(e) => {
@ -531,7 +537,10 @@
} }
if (result.type == 'error' || result.type == 'failure') { if (result.type == 'error' || result.type == 'failure') {
toast.error('Could not edit profile: ' + (result.error || result.data?.error)); toast.error(
'Could not edit profile: ' +
(result.type === 'error' ? result.error : result.data?.error)
);
} }
await invalidateAll(); await invalidateAll();

View file

@ -21,19 +21,19 @@
import { toast } from 'svelte-sonner'; import { toast } from 'svelte-sonner';
import type { PageServerLoad } from '../../routes/app/$types'; import type { PageServerLoad } from '../../routes/app/$types';
import { overview_data } from '$lib/state.svelte';
// Props for the member sidebar. // Props for the member sidebar.
let { let {
open = $bindable(true), open = $bindable(true),
members = $bindable<OverviewUser[]>([]), members = $bindable<OverviewUser[]>([]),
user, user,
data,
psd, psd,
currentEntity, currentEntity,
currentEntityId = $bindable<string | null>(null) currentEntityId = $bindable<string | null>(null)
}: { }: {
open: boolean; open: boolean;
members: OverviewUser[]; members: OverviewUser[];
data: OverviewData;
psd: PageServerLoad; psd: PageServerLoad;
user: SessionValidationResult['user']; user: SessionValidationResult['user'];
currentEntity: OverviewGroup | OverviewServer; currentEntity: OverviewGroup | OverviewServer;
@ -84,7 +84,7 @@
if (result.type == 'error' || result.type == 'failure') { if (result.type == 'error' || result.type == 'failure') {
toast.error( toast.error(
'Could not configure group successfully: ' + 'Could not configure group successfully: ' +
(result.error || result.data?.error) (result.type === 'error' ? result.error : result.data?.error)
); );
} }
@ -145,7 +145,7 @@
if (result.type == 'error' || result.type == 'failure') { if (result.type == 'error' || result.type == 'failure') {
toast.error( toast.error(
'Could not delete group successfully: ' + 'Could not delete group successfully: ' +
(result.error || result.data?.error) (result.type === 'error' ? result.error : result.data?.error)
); );
} }
@ -166,7 +166,7 @@
<Tabs.Content value="users"> <Tabs.Content value="users">
<div class="space-y-6 p-2"> <div class="space-y-6 p-2">
{#if (currentEntity as OverviewGroup).permissions.addMembers || user.id == currentEntity.ownerId} {#if (currentEntity as OverviewGroup).permissions.addMembers || user.id == currentEntity.ownerId}
{@const addableMembers = data.friends.filter( {@const addableMembers = overview_data.friends.filter(
(z) => !members.find((h) => h.id == z.id) (z) => !members.find((h) => h.id == z.id)
)} )}
@ -184,7 +184,7 @@
if (result.type == 'error' || result.type == 'failure') { if (result.type == 'error' || result.type == 'failure') {
toast.error( toast.error(
'Could not add users successfully: ' + 'Could not add users successfully: ' +
(result.error || result.data?.error) (result.type === 'error' ? result.error : result.data?.error)
); );
} }
@ -224,7 +224,7 @@
if (result.type == 'error' || result.type == 'failure') { if (result.type == 'error' || result.type == 'failure') {
toast.error( toast.error(
'Could not change title successfully: ' + 'Could not change title successfully: ' +
(result.error || result.data?.error) (result.type === 'error' ? result.error : result.data?.error)
); );
} }
@ -258,7 +258,7 @@
if (result.type == 'error' || result.type == 'failure') { if (result.type == 'error' || result.type == 'failure') {
toast.error( toast.error(
'Could not remove users successfully: ' + 'Could not remove users successfully: ' +
(result.error || result.data?.error) (result.type === 'error' ? result.error : result.data?.error)
); );
} }

View file

@ -301,7 +301,6 @@
bind:subPage={currentSubPageID} bind:subPage={currentSubPageID}
bind:currentPage={currentPageID} bind:currentPage={currentPageID}
user={data.user} user={data.user}
data={overview_data}
/> />
<Sidebar.Inset class="h-svh"> <Sidebar.Inset class="h-svh">
<header class="flex h-16 shrink-0 items-center gap-2 border-b px-4"> <header class="flex h-16 shrink-0 items-center gap-2 border-b px-4">
@ -639,7 +638,6 @@
bind:open={isMembersTabOpen} bind:open={isMembersTabOpen}
psd={data} psd={data}
user={data.user} user={data.user}
data={overview_data}
{members} {members}
currentEntity={currentPage as OverviewGroup | OverviewServer} currentEntity={currentPage as OverviewGroup | OverviewServer}
currentEntityId={currentPageID} currentEntityId={currentPageID}