diff --git a/ui/src/components/base/CopyIcon.svelte b/ui/src/components/base/CopyIcon.svelte index 8734595a..dfd9be1a 100644 --- a/ui/src/components/base/CopyIcon.svelte +++ b/ui/src/components/base/CopyIcon.svelte @@ -1,9 +1,10 @@ + diff --git a/ui/src/components/collections/CollectionSidebarItem.svelte b/ui/src/components/collections/CollectionSidebarItem.svelte index ba229aeb..3bf35e3e 100644 --- a/ui/src/components/collections/CollectionSidebarItem.svelte +++ b/ui/src/components/collections/CollectionSidebarItem.svelte @@ -2,9 +2,7 @@ import { link } from "svelte-spa-router"; import CommonHelper from "@/utils/CommonHelper"; import tooltip from "@/actions/tooltip"; - import { hideControls } from "@/stores/app"; - import { collections, activeCollection, isCollectionsLoading } from "@/stores/collections"; - import CollectionUpsertPanel from "@/components/collections/CollectionUpsertPanel.svelte"; + import { activeCollection } from "@/stores/collections"; export let collection; export let pinnedIds; diff --git a/ui/src/components/records/RecordInfo.svelte b/ui/src/components/records/RecordInfo.svelte index da0c977a..84e7a712 100644 --- a/ui/src/components/records/RecordInfo.svelte +++ b/ui/src/components/records/RecordInfo.svelte @@ -6,13 +6,37 @@ export let record; + let fileDisplayFields = []; + let nonFileDisplayFields = []; + $: collection = $collections?.find((item) => item.id == record?.collectionId); - $: fileDisplayFields = - collection?.schema?.filter((f) => f.presentable && f.type == "file")?.map((f) => f.name) || []; + $: if (collection) { + loadDisplayFields(); + } - $: textDisplayFields = - collection?.schema?.filter((f) => f.presentable && f.type != "file")?.map((f) => f.name) || []; + function loadDisplayFields() { + const fields = collection?.schema || []; + + // reset + fileDisplayFields = fields.filter((f) => f.presentable && f.type == "file").map((f) => f.name); + nonFileDisplayFields = fields.filter((f) => f.presentable && f.type != "file").map((f) => f.name); + + // fallback to the first single file field that accept images + // if no presentable field is available + if (!fileDisplayFields.length && !nonFileDisplayFields.length) { + const fallbackFileField = fields.find((f) => { + return ( + f.type == "file" && + f.options?.maxSelect == 1 && + f.options?.mimeTypes?.find((t) => t.startsWith("image/")) + ); + }); + if (fallbackFileField) { + fileDisplayFields.push(fallbackFileField.name); + } + } + }