UNPKG

directus-extension-seo

Version:

Directus SEO Extension enhance Directus with powerful SEO scoring and validator and AI SEO from ChatGPT

44 lines (35 loc) 1.54 kB
import { Field, Relation, Collection } from '@directus/types'; import { useStores } from '@directus/extensions-sdk'; import { computed, Ref } from 'vue'; export type RelationM2O = { relation: Relation; relatedCollection: Collection; relatedPrimaryKeyField: Field; type: 'm2o'; }; /* One Many: relatedCollection ┌──────────┐ ┌───────────────────┐ │id │ ┌────┤id: relatedPKField │ │many_id │◄───┘ │ │ └──────────┘ └───────────────────┘ */ export function useRelationM2O(collection: Ref<string>, field: Ref<string>) { const stores = useStores() const { useCollectionsStore, useRelationsStore, useFieldsStore } = stores; const relationsStore = useRelationsStore(); const collectionsStore = useCollectionsStore(); const fieldsStore = useFieldsStore(); const relationInfo = computed<RelationM2O | undefined>(() => { const relations = relationsStore.getRelationsForField(collection.value, field.value); if (relations.length === 0) return undefined; const relation = relations[0]; return { relation: relation, relatedCollection: collectionsStore.getCollection(relation.related_collection as string), relatedPrimaryKeyField: fieldsStore.getPrimaryKeyFieldForCollection(relation.related_collection as string), type: 'm2o', } as RelationM2O; }); return { relationInfo }; }