@bitrix24/b24ui-nuxt
Version:
Bitrix24 UI-Kit for developing web applications REST API for NUXT & VUE
39 lines (38 loc) • 1.05 kB
JavaScript
import { computed } from "vue";
import { defineNuxtPlugin, injectHead, useNuxtApp, useHead } from "#imports";
function removeTemporaryColorsStyle() {
document.querySelector("[data-bitrix24-ui-colors]")?.remove();
}
export default defineNuxtPlugin(() => {
const nuxtApp = useNuxtApp();
const root = computed(() => {
return `@layer theme {
:root, :host {
${[].join("\n ")}
}
:root, :host, .light {
${[].join("\n ")}
}
.dark {
${[].join("\n ")}
}
}`;
});
const headData = {
style: [{
innerHTML: root,
tagPriority: "critical",
id: "bitrix24-ui-colors"
}]
};
if (import.meta.client && nuxtApp.isHydrating && !nuxtApp.payload.serverRendered) {
if (typeof document !== "undefined") {
const style = document.createElement("style");
style.innerHTML = root.value;
style.setAttribute("data-bitrix24-ui-colors", "");
document.head.appendChild(style);
injectHead().hooks.hookOnce("dom:rendered", removeTemporaryColorsStyle);
}
}
useHead(headData);
});