diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/row-[row]/+page.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/row-[row]/+page.svelte index ed399037b..6b83869b2 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/row-[row]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/row-[row]/+page.svelte @@ -11,12 +11,14 @@ import type { Models } from '@appwrite.io/console'; import { Dependencies } from '$lib/constants'; import { invalidate } from '$app/navigation'; - import { row } from './store'; import { table, type Columns } from '../store'; import ColumnItem from './columnItem.svelte'; import { isRelationship, isRelationshipToMany } from './columns/store'; import { deepClone } from '$lib/helpers/object'; + export let data; + + const row = data.row; const databaseId = page.params.database; const tableId = page.params.table; const rowId = page.params.row; @@ -31,12 +33,12 @@ '$updatedAt' ]; - const filteredKeys = Object.keys($row).filter((key) => { + const filteredKeys = Object.keys(row).filter((key) => { return !prohibitedKeys.includes(key); }); const result = filteredKeys.reduce((obj, key) => { - obj[key] = $row[key]; + obj[key] = row[key]; return obj; }, {}); @@ -66,36 +68,42 @@ } } - function compareColumns(column: Columns, $work: Models.Row, $row: Models.Row) { + function compareColumns(column: Columns, related: Models.Row, row: Models.Row) { if (!column) { return false; } - const workColumn = $work?.[column.key]; - const docColumn = $row?.[column.key]; + const rowColumn = row?.[column.key]; + const relatedColumn = related?.[column.key]; + + // undefined for a second, not sure why! + if (rowColumn === undefined || relatedColumn === undefined) { + return false; + } if (column.array) { - return !symmetricDifference(Array.from(workColumn), Array.from(docColumn)).length; + return !symmetricDifference(Array.from(relatedColumn), Array.from(rowColumn)).length; } if (isRelationship(column)) { if (isRelationshipToMany(column as Models.ColumnRelationship)) { - const workIds = workColumn.map((doc: string | Record) => + const workIds = relatedColumn.map((doc: string | Record) => typeof doc === 'string' ? doc : doc.$id ); - const relatedIds = docColumn.map((doc: string | Record) => + const relatedIds = rowColumn.map((doc: string | Record) => typeof doc === 'string' ? doc : doc.$id ); return !symmetricDifference(workIds, relatedIds).length; } else { - const workId = typeof workColumn === 'string' ? workColumn : workColumn?.$id; - const relatedId = typeof docColumn === 'string' ? docColumn : docColumn?.$id; + const workId = + typeof relatedColumn === 'string' ? relatedColumn : relatedColumn?.$id; + const relatedId = typeof rowColumn === 'string' ? rowColumn : rowColumn?.$id; return workId === relatedId; } } - return workColumn === docColumn; + return relatedColumn === rowColumn; } @@ -116,7 +124,7 @@ diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/row-[row]/columnItem.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/row-[row]/columnItem.svelte index 2cde17ec2..9b4f67756 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/row-[row]/columnItem.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/row-[row]/columnItem.svelte @@ -61,7 +61,7 @@ {:else} - {#each [...formValues[column.key].keys()] as index} + {#each [...(formValues[column.key]?.keys() ?? [])] as index}