From fdef48b190903ae386572d8a14dbdfa8a1a3d074 Mon Sep 17 00:00:00 2001 From: Darshan Date: Wed, 10 Sep 2025 20:00:39 +0530 Subject: [PATCH] update: preliminary support for accordions. --- .../table-[table]/rows/editRelated.svelte | 54 +++++++++++++------ 1 file changed, 39 insertions(+), 15 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/editRelated.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/editRelated.svelte index 6802a381a..b4f5b8a2a 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/editRelated.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/editRelated.svelte @@ -11,8 +11,9 @@ import { type Columns, PROHIBITED_ROW_KEYS } from '../store'; import ColumnItem from './columns/columnItem.svelte'; import { buildWildcardColumnsQuery, isRelationship, isRelationshipToMany } from './store'; - import { Divider, Layout, Skeleton, Typography } from '@appwrite.io/pink-svelte'; + import { Accordion, Divider, Layout, Skeleton } from '@appwrite.io/pink-svelte'; import { deepClone } from '$lib/helpers/object'; + import { preferences } from '$lib/stores/preferences'; const databaseId = page.params.database; @@ -313,6 +314,20 @@ }; } + function getAccordionTitle(row: Models.Row): string { + const names = preferences.getDisplayNames(row.$tableId).filter((name) => name !== '$id'); + + const values = names + .map((name) => row?.[name]) + .filter((value) => value != null && typeof value === 'string' && value !== ''); + + if (!values.length) { + return row.$id; + } + + return `${values.join(' | ')} (...${row.$id.slice(-5)})`; + } + $effect(() => { if (rows && tableId) { loadRelatedRow().then(() => { @@ -323,7 +338,7 @@ {#if loading} -
+
{:else if relatedTable?.columns?.length && fetchedRows.length} @@ -350,21 +365,24 @@ {/if} {:else} - {relatedTable.name} - + {#each fetchedRows as row, index (row.$id)} {@const workStore = getStore(row.$id)} - {#if workStore} - {#each columnsToRender as column} - {@const label = column.key} - - {/each} - {/if} + + {#if workStore} + + {#each columnsToRender as column} + {@const label = column.key} + + {/each} + + {/if} + {#if index < fetchedRows.length - 1} @@ -375,3 +393,9 @@ {/if}
{/if} + +