nuxt-directus-sdk 3.0.7 → 3.0.9
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.d.mts +6 -0
- package/dist/module.d.ts +6 -0
- package/dist/module.mjs +2 -1
- package/dist/runtime/components/directus-visual-editor.vue +6 -30
- package/dist/runtime/composables/directus.d.ts +2 -0
- package/dist/runtime/composables/directus.js +3 -0
- package/dist/runtime/plugin.js +25 -9
- package/package.json +1 -1
package/dist/module.d.mts
CHANGED
package/dist/module.d.ts
CHANGED
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.9";
|
|
8
8
|
|
|
9
9
|
const configKey = "directus";
|
|
10
10
|
const logger = useLogger("nuxt-directus-sdk");
|
|
@@ -22,6 +22,7 @@ const module = defineNuxtModule({
|
|
|
22
22
|
url: import.meta.env.DIRECTUS_URL ?? "",
|
|
23
23
|
adminToken: import.meta.env.DIRECTUS_ADMIN_TOKEN ?? "",
|
|
24
24
|
devtools: true,
|
|
25
|
+
visualEditor: true,
|
|
25
26
|
types: {
|
|
26
27
|
enabled: true,
|
|
27
28
|
prefix: ""
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
<script setup lang="ts" generic="T extends keyof DirectusSchema">
|
|
2
2
|
import type { PrimaryKey } from '@directus/types'
|
|
3
|
-
import { computed
|
|
4
|
-
import {
|
|
3
|
+
import { computed } from '#imports'
|
|
4
|
+
import { setAttr } from '@directus/visual-editing'
|
|
5
|
+
import { useDirectusPreview } from '../composables/directus'
|
|
5
6
|
import { Slot } from '../utils'
|
|
6
7
|
|
|
7
8
|
type SingleDirectusCollection = DirectusSchema[T] extends Array<any> ? DirectusSchema[T][0] : DirectusSchema[T]
|
|
@@ -14,14 +15,7 @@ const props = defineProps<{
|
|
|
14
15
|
mode?: 'drawer' | 'modal' | 'popover'
|
|
15
16
|
}>()
|
|
16
17
|
|
|
17
|
-
const
|
|
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
|
-
})
|
|
18
|
+
const directusPreview = useDirectusPreview()
|
|
25
19
|
|
|
26
20
|
const directusAttr = computed(() => {
|
|
27
21
|
const data: Record<any, any> = {}
|
|
@@ -36,7 +30,7 @@ const directusAttr = computed(() => {
|
|
|
36
30
|
})
|
|
37
31
|
|
|
38
32
|
const attributes = computed(() => {
|
|
39
|
-
if (!
|
|
33
|
+
if (!directusPreview.value) {
|
|
40
34
|
return null
|
|
41
35
|
}
|
|
42
36
|
|
|
@@ -44,28 +38,10 @@ const attributes = computed(() => {
|
|
|
44
38
|
'data-directus': directusAttr.value,
|
|
45
39
|
}
|
|
46
40
|
})
|
|
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
|
-
})
|
|
65
41
|
</script>
|
|
66
42
|
|
|
67
43
|
<template>
|
|
68
|
-
<Slot
|
|
44
|
+
<Slot v-bind="attributes">
|
|
69
45
|
<slot />
|
|
70
46
|
</Slot>
|
|
71
47
|
</template>
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
+
import type { Ref } from '#imports';
|
|
2
|
+
export declare function useDirectusPreview(): Ref<boolean>;
|
|
1
3
|
export declare function useDirectusUrl(path?: string): string;
|
|
2
4
|
export declare function useDirectus(token?: string): import("@directus/sdk").DirectusClient<DirectusSchema> & import("@directus/sdk").AuthenticationClient<DirectusSchema> & import("@directus/sdk").RestClient<DirectusSchema> & import("@directus/sdk").WebSocketClient<DirectusSchema>;
|
|
@@ -2,6 +2,9 @@ import { useRuntimeConfig } from "#app";
|
|
|
2
2
|
import { authentication, createDirectus, realtime, rest } from "@directus/sdk";
|
|
3
3
|
import { useUrl } from "../utils/index.js";
|
|
4
4
|
import { useDirectusTokens } from "./tokens.js";
|
|
5
|
+
export function useDirectusPreview() {
|
|
6
|
+
return useState("directus.preview", () => false);
|
|
7
|
+
}
|
|
5
8
|
export function useDirectusUrl(path = "") {
|
|
6
9
|
return useUrl(useRuntimeConfig().public.directus.url, path);
|
|
7
10
|
}
|
package/dist/runtime/plugin.js
CHANGED
|
@@ -1,14 +1,36 @@
|
|
|
1
1
|
import { defineNuxtPlugin, refreshNuxtData, useCookie, useRoute, useRuntimeConfig } from "#app";
|
|
2
|
+
import { apply, remove } from "@directus/visual-editing";
|
|
2
3
|
import { useDirectusAuth } from "./composables/auth.js";
|
|
3
|
-
import { useDirectus } from "./composables/directus.js";
|
|
4
|
+
import { useDirectus, useDirectusPreview } from "./composables/directus.js";
|
|
4
5
|
import { useDirectusTokens } from "./composables/tokens.js";
|
|
5
6
|
export default defineNuxtPlugin(async (nuxtApp) => {
|
|
6
7
|
const route = useRoute();
|
|
7
8
|
const config = useRuntimeConfig();
|
|
8
9
|
const tokens = useDirectusTokens();
|
|
9
10
|
const directusAuth = useDirectusAuth();
|
|
10
|
-
const
|
|
11
|
-
|
|
11
|
+
const directusPreview = useDirectusPreview();
|
|
12
|
+
directusPreview.value = !!(route.query.preview === "true" || route.query.preview === "1") || !!(route.query["visual-editor"] === "true" || route.query["visual-editor"] === "1");
|
|
13
|
+
if (directusPreview.value) {
|
|
14
|
+
if (config.public.directus.visualEditor) {
|
|
15
|
+
nuxtApp.hook("page:start", async () => {
|
|
16
|
+
if (import.meta.client) {
|
|
17
|
+
remove();
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
nuxtApp.hook("page:finish", () => {
|
|
21
|
+
if (import.meta.client) {
|
|
22
|
+
apply({ directusUrl: config.public.directus.url });
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
const token = route.query.token;
|
|
27
|
+
if (token) {
|
|
28
|
+
useDirectus().setToken(token);
|
|
29
|
+
nuxtApp.hook("page:finish", () => {
|
|
30
|
+
refreshNuxtData();
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
12
34
|
if (!tokens.directusUrl.value || tokens.directusUrl.value !== config.public.directus.url) {
|
|
13
35
|
tokens.directusUrl.value = config.public.directus.url;
|
|
14
36
|
if (tokens.accessToken.value || tokens.refreshToken.value) {
|
|
@@ -18,12 +40,6 @@ export default defineNuxtPlugin(async (nuxtApp) => {
|
|
|
18
40
|
});
|
|
19
41
|
}
|
|
20
42
|
}
|
|
21
|
-
if (preview && token) {
|
|
22
|
-
useDirectus().setToken(token);
|
|
23
|
-
nuxtApp.hook("page:finish", () => {
|
|
24
|
-
refreshNuxtData();
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
43
|
async function fetchUser() {
|
|
28
44
|
if (config.public.directus.auth?.enabled ?? true)
|
|
29
45
|
await directusAuth.readMe();
|