@bitrix24/b24ui-nuxt
Version:
Bitrix24 UI-Kit for developing web applications REST API for NUXT & VUE
68 lines (67 loc) • 1.76 kB
JavaScript
import { ref, onScopeDispose } from "vue";
import { createHooks } from "hookable";
export { useHead } from "@unhead/vue";
export { useAppConfig } from "../composables/useAppConfig.js";
export { defineShortcuts } from "../../composables/defineShortcuts.js";
export { defineLocale } from "../../composables/defineLocale.js";
export { useLocale } from "../../composables/useLocale.js";
export { useConfetti } from "../../composables/useConfetti.js";
export { useOverlay } from "../../composables/useOverlay.js";
export { useColorMode } from "../../composables/color-mode/useColorMode.js";
export const clearError = () => {
};
export const useRequestHeader = () => {
return void 0;
};
export const useCookie = (_name, _options = {}) => {
const value = ref(_options?.default?.() ?? null);
return {
value: value.value,
get: () => value.value,
set: () => {
},
update: () => {
},
refresh: () => Promise.resolve(value.value),
remove: () => {
}
};
};
const state = {};
export const useState = (key, init) => {
if (state[key]) {
return state[key];
}
const value = ref(init());
state[key] = value;
return value;
};
const hooks = createHooks();
export function useNuxtApp() {
return {
isHydrating: true,
payload: { serverRendered: import.meta.env.SSR || false },
hooks,
hook: hooks.hook
};
}
export function useRuntimeHook(name, fn) {
const nuxtApp = useNuxtApp();
const unregister = nuxtApp.hook(name, fn);
onScopeDispose(unregister);
}
export const useRuntimeConfig = () => {
return {
app: {
baseURL: "/"
},
public: {}
};
};
export function defineNuxtPlugin(plugin) {
return {
install(app) {
app.runWithContext(() => plugin({ vueApp: app }));
}
};
}