diff --git a/packages/frontend-core/src/components/grid/cells/RelationshipCell.svelte b/packages/frontend-core/src/components/grid/cells/RelationshipCell.svelte index 1b3b24ff2e..44ced243f0 100644 --- a/packages/frontend-core/src/components/grid/cells/RelationshipCell.svelte +++ b/packages/frontend-core/src/components/grid/cells/RelationshipCell.svelte @@ -29,6 +29,7 @@ let searching = false let container let anchor + let relationshipFields $: fieldValue = parseValue(value) $: oneRowOnly = schema?.relationshipType === "one-to-many" @@ -221,6 +222,19 @@ return value } + const displayRelationshipFields = relationship => { + { + const { _id, primaryDisplay, ...fields } = relationship + if (Object.keys(fields).length) { + relationshipFields = fields + } + } + } + + const hideRelationshipFields = () => { + relationshipFields = undefined + } + onMount(() => { api = { focus: open, @@ -248,7 +262,12 @@ > {#each fieldValue || [] as relationship} {#if relationship[primaryDisplay] || relationship.primaryDisplay} -
+
displayRelationshipFields(relationship)} + on:focus={() => {}} + on:mouseleave={() => hideRelationshipFields()} + > {readable( relationship[primaryDisplay] || relationship.primaryDisplay @@ -322,6 +341,21 @@ {/if} +{#if relationshipFields && !isOpen} + +
+ {#each Object.entries(relationshipFields) as [fieldName, fieldValue]} +
+ {fieldName} +
+
+ {fieldValue} +
+ {/each} +
+
+{/if} +