import './bootstrap'; import '../css/app.css'; import { createApp, h } from 'vue'; import { createInertiaApp } from '@inertiajs/vue3'; import { resolvePageComponent } from 'laravel-vite-plugin/inertia-helpers'; import { ZiggyVue } from '../../vendor/tightenco/ziggy'; /* Font Awesome imports */ import { library } from '@fortawesome/fontawesome-svg-core'; import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'; import { faPrint, faMagicWandSparkles, faXmark } from '@fortawesome/free-solid-svg-icons'; // Add icons to the library library.add(faPrint, faMagicWandSparkles, faXmark); const appName = import.meta.env.VITE_APP_NAME || 'Laravel'; createInertiaApp({ title: (title) => `${title} - ${appName}`, resolve: (name) => resolvePageComponent(`./Pages/${name}.vue`, import.meta.glob('./Pages/**/*.vue')), setup({ el, App, props, plugin }) { console.log('Inertia Page Props (app.js):', props.initialPage.props); return createApp({ render: () => h(App, props) }) .use(plugin) .use(ZiggyVue) .component('font-awesome-icon', FontAwesomeIcon) // Register Font Awesome component .mixin({ methods: { __: (key, replace = {}) => { let translation = props.initialPage.props.translations[key]; if (translation === undefined) { translation = key; // Fallback to key if translation not found } for (let placeholder in replace) { translation = translation.replace(`:${placeholder}`, replace[placeholder]); } return translation; }, }, }) .mount(el); }, progress: { color: '#4B5563', }, });