Files
project-replica/resources/js/app.js
2026-03-23 00:51:38 +09:00

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);
},
});