42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
import './bootstrap';
|
|
import { createApp, h, ref, watch } from 'vue';
|
|
import { createInertiaApp } from '@inertiajs/vue3';
|
|
import PrimeVue from 'primevue/config';
|
|
import Aura from '@primevue/themes/aura';
|
|
import 'primeicons/primeicons.css';
|
|
import { route as routeHelper } from 'ziggy-js';
|
|
|
|
createInertiaApp({
|
|
resolve: name => {
|
|
const pages = import.meta.glob('./Pages/**/*.vue', { eager: true });
|
|
return pages[`./Pages/${name}.vue`];
|
|
},
|
|
setup({ el, App, props, plugin }) {
|
|
const isDark = ref(localStorage.getItem('theme') === 'dark');
|
|
|
|
watch(isDark, (newVal) => {
|
|
if (newVal) {
|
|
document.documentElement.classList.add('p-dark');
|
|
localStorage.setItem('theme', 'dark');
|
|
} else {
|
|
document.documentElement.classList.remove('p-dark');
|
|
localStorage.setItem('theme', 'light');
|
|
}
|
|
}, { immediate: true });
|
|
|
|
createApp({ render: () => h(App, props) })
|
|
.use(plugin)
|
|
.use(PrimeVue, {
|
|
theme: {
|
|
preset: Aura,
|
|
options: {
|
|
darkModeSelector: '.p-dark',
|
|
},
|
|
},
|
|
})
|
|
.provide('theme', { isDark, toggle: () => isDark.value = !isDark.value })
|
|
.mixin({ methods: { route: routeHelper } })
|
|
.mount(el);
|
|
},
|
|
});
|