diff --git a/package-lock.json b/package-lock.json index fdd5487..1bf0f9c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,8 @@ "leaflet": "^1.9.4", "tailwindcss": "^4.0.7", "vite": "^8.0.0", - "vue": "^3.5.32" + "vue": "^3.5.32", + "vue-router": "^4.6.4" }, "optionalDependencies": { "@rollup/rollup-linux-x64-gnu": "4.9.5", @@ -811,6 +812,12 @@ "@vue/shared": "3.5.32" } }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, "node_modules/@vue/reactivity": { "version": "3.5.32", "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.32.tgz", @@ -2202,6 +2209,21 @@ } } }, + "node_modules/vue-router": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.6.4.tgz", + "integrity": "sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", diff --git a/package.json b/package.json index 4b8e4de..1487d07 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,8 @@ "leaflet": "^1.9.4", "tailwindcss": "^4.0.7", "vite": "^8.0.0", - "vue": "^3.5.32" + "vue": "^3.5.32", + "vue-router": "^4.6.4" }, "optionalDependencies": { "@rollup/rollup-linux-x64-gnu": "4.9.5", diff --git a/resources/js/App.vue b/resources/js/App.vue new file mode 100644 index 0000000..6a702d4 --- /dev/null +++ b/resources/js/App.vue @@ -0,0 +1,7 @@ + + + + + diff --git a/resources/js/app.js b/resources/js/app.js index 74266b0..6878abd 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -1,6 +1,5 @@ -import 'iconify-icon'; -import { stationMap } from './maps/station-map.js'; +import { createApp } from 'vue' +import App from './App.vue' +import router from './router/index.js' -document.addEventListener('alpine:init', () => { - Alpine.data('stationMap', stationMap); -}); +createApp(App).use(router).mount('#app') diff --git a/resources/js/axios.js b/resources/js/axios.js new file mode 100644 index 0000000..60ace9c --- /dev/null +++ b/resources/js/axios.js @@ -0,0 +1,13 @@ +import axios from 'axios' + +const api = axios.create({ + baseURL: '/api', + withCredentials: true, + withXSRFToken: true, + headers: { + 'Accept': 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + }, +}) + +export default api diff --git a/resources/js/router/index.js b/resources/js/router/index.js new file mode 100644 index 0000000..e48b729 --- /dev/null +++ b/resources/js/router/index.js @@ -0,0 +1,24 @@ +import { createRouter, createWebHistory } from 'vue-router' +import Home from '../views/Home.vue' +import DashboardLayout from '../views/dashboard/DashboardLayout.vue' +import Overview from '../views/dashboard/Overview.vue' +import SavedStations from '../views/dashboard/SavedStations.vue' +import Preferences from '../views/dashboard/Preferences.vue' + +const routes = [ + { path: '/', component: Home, name: 'home' }, + { + path: '/dashboard', + component: DashboardLayout, + children: [ + { path: '', component: Overview, name: 'dashboard' }, + { path: 'saved-stations', component: SavedStations, name: 'dashboard.saved-stations' }, + { path: 'preferences', component: Preferences, name: 'dashboard.preferences' }, + ], + }, +] + +export default createRouter({ + history: createWebHistory(), + routes, +}) diff --git a/resources/js/views/Home.vue b/resources/js/views/Home.vue new file mode 100644 index 0000000..e300910 --- /dev/null +++ b/resources/js/views/Home.vue @@ -0,0 +1,5 @@ + + + FuelAlert — Home (coming soon) + + diff --git a/resources/js/views/dashboard/DashboardLayout.vue b/resources/js/views/dashboard/DashboardLayout.vue new file mode 100644 index 0000000..927332f --- /dev/null +++ b/resources/js/views/dashboard/DashboardLayout.vue @@ -0,0 +1,8 @@ + + + + + + diff --git a/resources/js/views/dashboard/Overview.vue b/resources/js/views/dashboard/Overview.vue new file mode 100644 index 0000000..b6cf723 --- /dev/null +++ b/resources/js/views/dashboard/Overview.vue @@ -0,0 +1 @@ +Dashboard Overview (coming soon) diff --git a/resources/js/views/dashboard/Preferences.vue b/resources/js/views/dashboard/Preferences.vue new file mode 100644 index 0000000..25bed4b --- /dev/null +++ b/resources/js/views/dashboard/Preferences.vue @@ -0,0 +1 @@ +Preferences (coming soon) diff --git a/resources/js/views/dashboard/SavedStations.vue b/resources/js/views/dashboard/SavedStations.vue new file mode 100644 index 0000000..f84d4cc --- /dev/null +++ b/resources/js/views/dashboard/SavedStations.vue @@ -0,0 +1 @@ +Saved Stations (coming soon)
FuelAlert — Home (coming soon)