feat: relation field and picker

This commit is contained in:
Florian Sylvain committed 2026-10-23 00:13:42 +02:00
1 parent b45c99be3b
commit 37a77c9c22
92 files changed
+6826 -80

No files matched your search

+14 -2
View File
@@ -6,6 +6,7 @@ import EntryField from '@/components/EntryField.vue'
import type { BuiltinField } from '@/lib/contentTypes'
import type { EntryIssues, EntryValues } from '@/lib/entryForm'
import type { MediaMap, MediaSummary } from '@/lib/mediaField'
import type { RelationSummaries, RelationSummary } from '@/lib/relationField'
import { groupFields } from '@/lib/entryLayout'
const FOCUSABLE =
@@ -15,6 +16,8 @@ const props = defineProps<{
fields: BuiltinField[]
values: EntryValues
images: MediaMap
relations: RelationSummaries
typeName: string
issues: EntryIssues
firstIssue: string | null
focusToken: number
@@ -28,7 +31,12 @@ const props = defineProps<{
}>()
const emit = defineEmits<{
update: [key: string, value: unknown, image?: MediaSummary | null]
update: [
key: string,
value: unknown,
image?: MediaSummary | null,
relations?: RelationSummary[],
]
submit: []
}>()
@@ -73,10 +81,14 @@ watch(() => props.focusToken, focusFirstIssue)
:field="field"
:value="values[field.key]"
:image="images[field.key] ?? null"
:relations="relations[field.key] ?? []"
:type-name="typeName"
:issue="issues[field.key]"
:is-default="isDefault(field)"
:disabled="locked"
@update="(key, value, image) => emit('update', key, value, image)"
@update="
(key, value, image, summaries) => emit('update', key, value, image, summaries)
"
/>
</div>