mirror of
https://github.com/directus/directus.git
synced 2026-02-15 23:05:02 -05:00
Add support for a package extension bundle type (#15672)
* Add bundle type to constants and types * Add support for API bundle extensions * Rename generateExtensionsEntry to generateExtensionsEntrypoint * Add support for App bundle extensions * Refactor App extension registration * Replace extensions inject with useExtensions() * Replace getInterfaces() with useExtensions() * Replace getDisplays() with useExtensions() * Replace getLayouts() with useExtensions() * Replace getModules() with useExtensions() * Replace getPanels() with useExtensions() * Replace getOperations() with useExtensions() * Add useExtension() composable * Replace useExtensions() with useExtension() where applicable * Remove interface getters * Remove display getters * Remove layout getters * Remove module getter * Remove panel getters * Remove operation getters * Rename extension register.ts files to index.ts * Perform module pre register check in parallel * Remove Refs from AppExtensionConfigs type * Remove old extension shims * Ensure registration of modules is awaited when hydrating * Add support for scaffolding package extensions * Add support for building bundle extensions * Add JsonValue type * Use json for complex command line flags * Load internal extensions if custom ones are not available * Fix extension manifest validation for pack extensions * Fix tests in shared * Add SplitEntrypoint type * Move command specific utils to helpers * Add SDK version getter * Move extension dev deps generation to helpers * Move template path to getter util * Move template copying to a helper * Only rename copied template files * Add directus-extension add command * Convert provided extension source path to url * Replace deprecated import.meta.globEager * Mock URL.createObjectURL to make App unit tests pass * Update rollup-plugin-typescript2 * indentation * sort vite glob imported modules * fix unintentional wrong commit * Simplify app extension import logic * reinstall @rollup/plugin-virtual * add test for getInterfaces() expected sort order Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com> Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
0859102a61
commit
7bf90efa62
@@ -29,7 +29,7 @@
|
||||
<script lang="ts">
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { defineComponent, computed, inject, ref } from 'vue';
|
||||
import { getInterface } from '@/interfaces';
|
||||
import { useExtension } from '@/composables/use-extension';
|
||||
|
||||
export default defineComponent({
|
||||
props: {
|
||||
@@ -65,15 +65,8 @@ export default defineComponent({
|
||||
|
||||
const values = inject('values', ref<Record<string, any>>({}));
|
||||
|
||||
const selectedInterface = computed(() => {
|
||||
if (props.interface) {
|
||||
return getInterface(props.interface);
|
||||
}
|
||||
|
||||
if (!values.value[props.interfaceField]) return;
|
||||
|
||||
return getInterface(values.value[props.interfaceField]);
|
||||
});
|
||||
const selectedInterfaceId = computed(() => props.interface ?? values.value[props.interfaceField] ?? null);
|
||||
const selectedInterface = useExtension('interface', selectedInterfaceId);
|
||||
|
||||
const usesCustomComponent = computed(() => {
|
||||
if (!selectedInterface.value) return false;
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
<script lang="ts">
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { defineComponent, computed, inject, ref, watch } from 'vue';
|
||||
import { getInterfaces } from '@/interfaces';
|
||||
import { InterfaceConfig } from '@directus/shared/types';
|
||||
import { useExtensions } from '@/extensions';
|
||||
|
||||
export default defineComponent({
|
||||
props: {
|
||||
@@ -32,7 +32,7 @@ export default defineComponent({
|
||||
setup(props, { emit }) {
|
||||
const { t } = useI18n();
|
||||
|
||||
const { interfaces } = getInterfaces();
|
||||
const { interfaces } = useExtensions();
|
||||
|
||||
const values = inject('values', ref<Record<string, any>>({}));
|
||||
|
||||
|
||||
@@ -60,7 +60,6 @@
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent, PropType, computed, ref } from 'vue';
|
||||
import { getModules } from '@/modules';
|
||||
import { Settings, SettingsModuleBarModule, SettingsModuleBarLink } from '@directus/shared/types';
|
||||
import { hideDragImage } from '@/utils/hide-drag-image';
|
||||
import Draggable from 'vuedraggable';
|
||||
@@ -69,6 +68,7 @@ import { useI18n } from 'vue-i18n';
|
||||
import { nanoid } from 'nanoid';
|
||||
import { Field, DeepPartial } from '@directus/shared/types';
|
||||
import { MODULE_BAR_DEFAULT } from '@/constants';
|
||||
import { useExtensions } from '@/extensions';
|
||||
|
||||
type PreviewExtra = {
|
||||
to: string;
|
||||
@@ -130,7 +130,7 @@ export default defineComponent({
|
||||
const values = ref<SettingsModuleBarLink | null>();
|
||||
const initialValues = ref<SettingsModuleBarLink | null>();
|
||||
|
||||
const { modules: registeredModules } = getModules();
|
||||
const { modules: registeredModules } = useExtensions();
|
||||
|
||||
const availableModulesAsBarModule = computed<SettingsModuleBarModule[]>(() => {
|
||||
return registeredModules.value
|
||||
|
||||
Reference in New Issue
Block a user