@nuxtjs/sanity
Version:
Sanity integration for Nuxt
36 lines (35 loc) • 1.04 kB
JavaScript
import { computed, reactive } from "vue";
import { useState } from "#imports";
import { useSanityConfig } from "./useSanityConfig.js";
export const useSanityVisualEditingState = () => {
const { visualEditing } = useSanityConfig();
if (!visualEditing) {
return void 0;
}
const previewState = useState("sanity-preview", () => false);
const enabled = computed({
get() {
if (visualEditing.previewMode === false) return true;
return previewState.value;
},
set(enabled2) {
previewState.value = enabled2;
}
});
const isInFrame = () => {
if (import.meta.server) return void 0;
return !!(window.self !== window.top || window.opener);
};
return reactive({
enabled,
/**
* @deprecated Use the `useIsSanityLivePreview` and
* `useIsSanityPresentationTool` composables for conditional rendering
* instead
*/
inFrame: isInFrame(),
token: visualEditing.token,
previewMode: visualEditing.previewMode,
previewModeId: visualEditing.previewModeId
});
};