From d36135f5b7851281c2bd69cf81cc45abe7cb64e3 Mon Sep 17 00:00:00 2001
From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com>
Date: Wed, 5 Nov 2025 12:51:37 +0530
Subject: [PATCH 1/7] auto-remove stale user/team roles
---
.../components/permissions/permissions.svelte | 2 +-
src/lib/components/permissions/row.svelte | 17 ++++++++++++++++-
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/src/lib/components/permissions/permissions.svelte b/src/lib/components/permissions/permissions.svelte
index 46b6a9bb32..a96094231e 100644
--- a/src/lib/components/permissions/permissions.svelte
+++ b/src/lib/components/permissions/permissions.svelte
@@ -139,7 +139,7 @@
{#each [...$groups] as [role, permission] (role)}
-
+ deleteRole(role)} />
- import { type ComponentProps, type Snippet } from 'svelte';
+ import { type ComponentProps, type Snippet, createEventDispatcher, onMount } from 'svelte';
import { sdk } from '$lib/stores/sdk';
import type { Models } from '@appwrite.io/console';
import { AvatarInitials } from '../';
@@ -38,6 +38,8 @@
let { role, placement = 'bottom-start', children }: Props = $props();
+ const dispatch = createEventDispatcher<{ notFound: string }>();
+
type ParsedPermission = {
type: 'user' | 'team' | 'other';
id: string;
@@ -111,6 +113,19 @@
return fetchPromise;
}
+ async function verifyExistence() {
+ try {
+ const data = await getData(role);
+ if (data?.notFound) {
+ dispatch('notFound', role);
+ }
+ } catch {}
+ }
+
+ onMount(() => {
+ verifyExistence();
+ });
+
let isMouseOverTooltip = $state(false);
function hidePopover(hideTooltip: () => void, timeout = true) {
if (!timeout) {
From 4d14048506d36c0cef10f8f32f23af17f6f853aa Mon Sep 17 00:00:00 2001
From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com>
Date: Wed, 5 Nov 2025 13:40:00 +0530
Subject: [PATCH 2/7] format
---
src/lib/components/permissions/row.svelte | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/lib/components/permissions/row.svelte b/src/lib/components/permissions/row.svelte
index 5703b6bb39..39467b17b5 100644
--- a/src/lib/components/permissions/row.svelte
+++ b/src/lib/components/permissions/row.svelte
@@ -177,7 +177,7 @@
{:then data}
{formatName(
data.name ?? data?.email ?? data?.phone ?? '-',
- $isSmallViewport ? 16 : 18
+ $isSmallViewport ? 16 : 20
)}
{/await}
@@ -300,7 +300,7 @@
size="xs"
variant="m-400"
color="--fgcolor-neutral-secondary">
- Email: {data.email}
+ Email: {formatName(data.email, $isSmallViewport ? 24 : 32)}
{/if}
{#if data.phone}
From fa128aef6eebd68316d442e375420fa1117d1867 Mon Sep 17 00:00:00 2001
From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com>
Date: Wed, 5 Nov 2025 13:48:23 +0530
Subject: [PATCH 3/7] make it mobile responsive
---
.../components/permissions/permissions.svelte | 16 +++-------------
src/lib/components/permissions/row.svelte | 5 ++++-
2 files changed, 7 insertions(+), 14 deletions(-)
diff --git a/src/lib/components/permissions/permissions.svelte b/src/lib/components/permissions/permissions.svelte
index a96094231e..9fb392d4df 100644
--- a/src/lib/components/permissions/permissions.svelte
+++ b/src/lib/components/permissions/permissions.svelte
@@ -20,6 +20,7 @@
import { IconPlus, IconX } from '@appwrite.io/pink-icons-svelte';
import type { PinkColumn } from '$lib/helpers/types';
import { Card } from '$lib/components';
+ import TableScroll from '$lib/elements/table/tableScroll.svelte';
export let withCreate = false;
export let permissions: string[] = [];
@@ -124,7 +125,7 @@
{#if [...$groups]?.length}
-
+
Role
@@ -174,7 +175,7 @@
{/each}
-
+
{/if}
-
-
diff --git a/src/lib/components/permissions/row.svelte b/src/lib/components/permissions/row.svelte
index 39467b17b5..b0dad2478c 100644
--- a/src/lib/components/permissions/row.svelte
+++ b/src/lib/components/permissions/row.svelte
@@ -300,7 +300,10 @@
size="xs"
variant="m-400"
color="--fgcolor-neutral-secondary">
- Email: {formatName(data.email, $isSmallViewport ? 24 : 32)}
+ Email: {formatName(
+ data.email,
+ $isSmallViewport ? 24 : 32
+ )}
{/if}
{#if data.phone}
From d17092eb0f2b732f71fe5724168aa666cca0d9e4 Mon Sep 17 00:00:00 2001
From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com>
Date: Wed, 5 Nov 2025 13:54:26 +0530
Subject: [PATCH 4/7] used caption
---
src/lib/components/permissions/row.svelte | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/src/lib/components/permissions/row.svelte b/src/lib/components/permissions/row.svelte
index b0dad2478c..4a63db4fe7 100644
--- a/src/lib/components/permissions/row.svelte
+++ b/src/lib/components/permissions/row.svelte
@@ -296,23 +296,21 @@
{#if data.email}
-
Email: {formatName(
data.email,
$isSmallViewport ? 24 : 32
)}
-
+
{/if}
{#if data.phone}
-
Phone: {data.phone}
-
+
{/if}
{/if}
From dd1d49cc37155935119264b441c7435e9477a5ab Mon Sep 17 00:00:00 2001
From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com>
Date: Wed, 5 Nov 2025 13:59:34 +0530
Subject: [PATCH 5/7] Update src/lib/components/permissions/permissions.svelte
Co-authored-by: Darshan
---
src/lib/components/permissions/permissions.svelte | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/lib/components/permissions/permissions.svelte b/src/lib/components/permissions/permissions.svelte
index 9fb392d4df..bc557f7649 100644
--- a/src/lib/components/permissions/permissions.svelte
+++ b/src/lib/components/permissions/permissions.svelte
@@ -20,7 +20,7 @@
import { IconPlus, IconX } from '@appwrite.io/pink-icons-svelte';
import type { PinkColumn } from '$lib/helpers/types';
import { Card } from '$lib/components';
- import TableScroll from '$lib/elements/table/tableScroll.svelte';
+ import { TableScroll } from '$lib/elements/table';
export let withCreate = false;
export let permissions: string[] = [];
From cfde744f39287da2c7408ada4f4994373c20436b Mon Sep 17 00:00:00 2001
From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com>
Date: Wed, 5 Nov 2025 16:06:03 +0530
Subject: [PATCH 6/7] use callbak
---
src/lib/components/permissions/permissions.svelte | 2 +-
src/lib/components/permissions/row.svelte | 9 ++++-----
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/src/lib/components/permissions/permissions.svelte b/src/lib/components/permissions/permissions.svelte
index 9fb392d4df..e240db367b 100644
--- a/src/lib/components/permissions/permissions.svelte
+++ b/src/lib/components/permissions/permissions.svelte
@@ -140,7 +140,7 @@
{#each [...$groups] as [role, permission] (role)}
- deleteRole(role)} />
+ deleteRole(role)} />
- import { type ComponentProps, type Snippet, createEventDispatcher, onMount } from 'svelte';
+ import { type ComponentProps, type Snippet, onMount } from 'svelte';
import { sdk } from '$lib/stores/sdk';
import type { Models } from '@appwrite.io/console';
import { AvatarInitials } from '../';
@@ -34,11 +34,10 @@
role: string;
placement?: ComponentProps['placement'];
children?: Snippet;
+ onNotFound?: (role: string) => void;
}
- let { role, placement = 'bottom-start', children }: Props = $props();
-
- const dispatch = createEventDispatcher<{ notFound: string }>();
+ let { role, placement = 'bottom-start', children, onNotFound }: Props = $props();
type ParsedPermission = {
type: 'user' | 'team' | 'other';
@@ -117,7 +116,7 @@
try {
const data = await getData(role);
if (data?.notFound) {
- dispatch('notFound', role);
+ onNotFound?.(role);
}
} catch {}
}
From 754ea7d917f3c26fd4044bc8b6bddf5b3383bdb1 Mon Sep 17 00:00:00 2001
From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com>
Date: Wed, 5 Nov 2025 18:11:20 +0530
Subject: [PATCH 7/7] libt errror
---
src/lib/components/permissions/row.svelte | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/lib/components/permissions/row.svelte b/src/lib/components/permissions/row.svelte
index eed2e01270..c70fd5f66f 100644
--- a/src/lib/components/permissions/row.svelte
+++ b/src/lib/components/permissions/row.svelte
@@ -118,7 +118,9 @@
if (data?.notFound) {
onNotFound?.(role);
}
- } catch {}
+ } catch {
+ // Intentionally ignore fetch/parse errors; UI handles missing data state
+ }
}
onMount(() => {