-
No connections yet
-
- Choose “Link new provider” above to connect available providers.
-
-
+
{#each backendMetadata.state!.oAuthProviders as p (p)}
diff --git a/src/routes/(app)/shares/public/+page.svelte b/src/routes/(app)/shares/public/+page.svelte
index 039af1c6..1addd18e 100644
--- a/src/routes/(app)/shares/public/+page.svelte
+++ b/src/routes/(app)/shares/public/+page.svelte
@@ -11,6 +11,7 @@
import type { OwnPublicShareResponse } from '$lib/api';
import Container from '$lib/components/Container.svelte';
import CopyInput from '$lib/components/CopyInput.svelte';
+ import EmptyState from '$lib/components/EmptyState.svelte';
import { Spinner } from '$lib/components/ui/spinner';
import Button from '$lib/components/ui/button/button.svelte';
import { handleApiError } from '$lib/errorhandling/apiErrorHandling';
@@ -93,19 +94,16 @@
{:else if sortedShares.length === 0}
-
-
-
-
No public shares yet
-
Create a link that anyone can use to control your shockers.
-
-
+
{:else}
+
{@render children?.()}
diff --git a/src/routes/(app)/shares/user/incoming/+page.svelte b/src/routes/(app)/shares/user/incoming/+page.svelte
index a7d77a10..9d6bcc23 100644
--- a/src/routes/(app)/shares/user/incoming/+page.svelte
+++ b/src/routes/(app)/shares/user/incoming/+page.svelte
@@ -1,8 +1,10 @@
+ let invitesPromise = $state(Promise.all([refreshOutgoingInvites(), refreshIncomingInvites()]));
-
Outgoing
+ let bothEmpty = $derived(
+ userSharesState.outgoingInvites.length === 0 && userSharesState.incomingInvites.length === 0
+ );
+
-{#await outgoingInvitesPromise}
+{#await invitesPromise}
{:then}
-
-
-
- {#each userSharesState.outgoingInvites as invite (invite.id)}
-
- {/each}
-
-
-
-{:catch error}
-
Failed to load outgoing invites: {error.message}
-{/await}
-
-
Incoming
+ {#if bothEmpty}
+
+ {:else}
+
Outgoing
+ {#if userSharesState.outgoingInvites.length === 0}
+
+ {:else}
+
+
+
+ {#each userSharesState.outgoingInvites as invite (invite.id)}
+
+ {/each}
+
+
+
+ {/if}
-{#await incomingInvitesPromise}
-
-
-
-{:then}
-
-
-
- {#each userSharesState.incomingInvites as invite (invite.id)}
-
- {/each}
-
-
-
+
Incoming
+ {#if userSharesState.incomingInvites.length === 0}
+
+ {:else}
+
+
+
+ {#each userSharesState.incomingInvites as invite (invite.id)}
+
+ {/each}
+
+
+
+ {/if}
+ {/if}
{:catch error}
-
Failed to load incomding invites: {error.message}
+
Failed to load invites: {error.message}
{/await}
diff --git a/src/routes/(app)/shares/user/outgoing/+page.svelte b/src/routes/(app)/shares/user/outgoing/+page.svelte
index b98eaf0c..41efb4ec 100644
--- a/src/routes/(app)/shares/user/outgoing/+page.svelte
+++ b/src/routes/(app)/shares/user/outgoing/+page.svelte
@@ -1,8 +1,10 @@