diff --git a/web/src/lib/types/index.ts b/web/src/lib/types/index.ts index 63edacde..cafbd316 100644 --- a/web/src/lib/types/index.ts +++ b/web/src/lib/types/index.ts @@ -1072,19 +1072,23 @@ export function parseFields(item: Item): Record { } } +const SCHEMA_DEFAULTS: CollectionSchema = { fields: [] }; + export function parseSchema(collection: Collection): CollectionSchema { try { - return JSON.parse(collection.schema); + return { ...SCHEMA_DEFAULTS, ...JSON.parse(collection.schema) }; } catch { - return { fields: [] }; + return { ...SCHEMA_DEFAULTS }; } } +const SETTINGS_DEFAULTS: CollectionSettings = { layout: 'balanced', default_view: 'list' }; + export function parseSettings(collection: Collection): CollectionSettings { try { - return JSON.parse(collection.settings); + return { ...SETTINGS_DEFAULTS, ...JSON.parse(collection.settings) }; } catch { - return { layout: 'balanced', default_view: 'list' }; + return { ...SETTINGS_DEFAULTS }; } }