nuxt-directus-sdk 3.0.3 → 3.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/module.mjs +1 -1
- package/dist/runtime/components/directus-visual-editor.vue +30 -4
- package/dist/runtime/plugin.js +5 -17
- package/dist/runtime/types/generate.js +1 -1
- package/package.json +1 -1
- package/dist/runtime/composables/preview.d.ts +0 -1
- package/dist/runtime/composables/preview.js +0 -3
package/dist/module.mjs
CHANGED
|
@@ -4,7 +4,7 @@ import { generateTypes } from '../dist/runtime/types/index.js';
|
|
|
4
4
|
import { useUrl } from '../dist/runtime/utils/index.js';
|
|
5
5
|
|
|
6
6
|
const name = "nuxt-directus-sdk";
|
|
7
|
-
const version = "3.0.
|
|
7
|
+
const version = "3.0.5";
|
|
8
8
|
|
|
9
9
|
const configKey = "directus";
|
|
10
10
|
const logger = useLogger("nuxt-directus-sdk");
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts" generic="T extends keyof DirectusSchema">
|
|
2
2
|
import type { PrimaryKey } from '@directus/types'
|
|
3
3
|
import { computed, useRoute } from '#imports'
|
|
4
|
-
import { setAttr } from '@directus/visual-editing'
|
|
5
|
-
import { isVisualEditorPage } from '../composables/preview'
|
|
4
|
+
import { apply, setAttr } from '@directus/visual-editing'
|
|
6
5
|
import { Slot } from '../utils'
|
|
7
6
|
|
|
8
7
|
type SingleDirectusCollection = DirectusSchema[T][0]
|
|
@@ -15,6 +14,15 @@ const props = defineProps<{
|
|
|
15
14
|
mode?: 'drawer' | 'modal' | 'popover'
|
|
16
15
|
}>()
|
|
17
16
|
|
|
17
|
+
const route = useRoute()
|
|
18
|
+
const config = useRuntimeConfig()
|
|
19
|
+
|
|
20
|
+
const element = ref()
|
|
21
|
+
|
|
22
|
+
const livePreview = computed(() => {
|
|
23
|
+
return route.query['visual-editor'] === 'true' || route.query['visual-editor'] === '1'
|
|
24
|
+
})
|
|
25
|
+
|
|
18
26
|
const directusAttr = computed(() => {
|
|
19
27
|
const data: Record<any, any> = {}
|
|
20
28
|
|
|
@@ -28,7 +36,7 @@ const directusAttr = computed(() => {
|
|
|
28
36
|
})
|
|
29
37
|
|
|
30
38
|
const attributes = computed(() => {
|
|
31
|
-
if (!
|
|
39
|
+
if (!livePreview.value) {
|
|
32
40
|
return null
|
|
33
41
|
}
|
|
34
42
|
|
|
@@ -36,10 +44,28 @@ const attributes = computed(() => {
|
|
|
36
44
|
'data-directus': directusAttr.value,
|
|
37
45
|
}
|
|
38
46
|
})
|
|
47
|
+
|
|
48
|
+
onMounted(async () => {
|
|
49
|
+
await nextTick()
|
|
50
|
+
|
|
51
|
+
if (!livePreview.value || import.meta.server || !element.value) {
|
|
52
|
+
return
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const applied = await apply({ directusUrl: config.public.directus.url })
|
|
56
|
+
|
|
57
|
+
if (!applied) {
|
|
58
|
+
return
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
applied.enable()
|
|
62
|
+
|
|
63
|
+
onBeforeUnmount(applied.remove)
|
|
64
|
+
})
|
|
39
65
|
</script>
|
|
40
66
|
|
|
41
67
|
<template>
|
|
42
|
-
<Slot v-bind="attributes">
|
|
68
|
+
<Slot ref="element" v-bind="attributes">
|
|
43
69
|
<slot />
|
|
44
70
|
</Slot>
|
|
45
71
|
</template>
|
package/dist/runtime/plugin.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { defineNuxtPlugin, refreshNuxtData, useRoute, useRuntimeConfig } from "#app";
|
|
2
|
-
import { apply, remove } from "@directus/visual-editing";
|
|
1
|
+
import { defineNuxtPlugin, refreshNuxtData, useCookie, useRoute, useRuntimeConfig } from "#app";
|
|
3
2
|
import { useDirectusAuth } from "./composables/auth.js";
|
|
4
3
|
import { useDirectus } from "./composables/directus.js";
|
|
5
|
-
import { isVisualEditorPage } from "./composables/preview.js";
|
|
6
4
|
import { useDirectusTokens } from "./composables/tokens.js";
|
|
7
5
|
export default defineNuxtPlugin(async (nuxtApp) => {
|
|
8
6
|
const route = useRoute();
|
|
@@ -11,11 +9,13 @@ export default defineNuxtPlugin(async (nuxtApp) => {
|
|
|
11
9
|
const directusAuth = useDirectusAuth();
|
|
12
10
|
const preview = route.query.preview && route.query.preview === "true";
|
|
13
11
|
const token = route.query.token;
|
|
14
|
-
const livePreview = isVisualEditorPage(route);
|
|
15
12
|
if (!tokens.directusUrl.value || tokens.directusUrl.value !== config.public.directus.url) {
|
|
16
13
|
tokens.directusUrl.value = config.public.directus.url;
|
|
17
14
|
if (tokens.accessToken.value || tokens.refreshToken.value) {
|
|
18
|
-
await nuxtApp.runWithContext(async () =>
|
|
15
|
+
await nuxtApp.runWithContext(async () => {
|
|
16
|
+
useCookie(config.public.directus.auth.cookies.accessToken).value = null;
|
|
17
|
+
useCookie(config.public.directus.auth.cookies.refreshToken).value = null;
|
|
18
|
+
});
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
if (preview && token) {
|
|
@@ -24,18 +24,6 @@ export default defineNuxtPlugin(async (nuxtApp) => {
|
|
|
24
24
|
refreshNuxtData();
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
|
-
if (livePreview) {
|
|
28
|
-
nuxtApp.hook("page:start", async () => {
|
|
29
|
-
if (import.meta.client) {
|
|
30
|
-
remove();
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
nuxtApp.hook("page:finish", () => {
|
|
34
|
-
if (import.meta.client) {
|
|
35
|
-
apply({ directusUrl: config.public.directus.url });
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
27
|
async function fetchUser() {
|
|
40
28
|
if (config.public.directus.auth?.enabled ?? true)
|
|
41
29
|
await directusAuth.readMe();
|
|
@@ -22,7 +22,7 @@ export async function generateTypes(options) {
|
|
|
22
22
|
return;
|
|
23
23
|
types += " ";
|
|
24
24
|
types += field.field.includes("-") ? `"${field.field}"` : field.field;
|
|
25
|
-
if (field.schema?.is_nullable)
|
|
25
|
+
if (field.schema?.is_nullable && field.meta?.required !== true)
|
|
26
26
|
types += "?";
|
|
27
27
|
types += ": ";
|
|
28
28
|
types += getType(field);
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function isVisualEditorPage(route: any): boolean;
|