diff --git a/resources/js_vue3/router.js b/resources/js_vue3/router.js
index 4696d78f..0b159bbe 100644
--- a/resources/js_vue3/router.js
+++ b/resources/js_vue3/router.js
@@ -6,14 +6,9 @@ const router = createRouter({
history: createWebHistory('/'),
routes: [
{ path: '/accounts', name: 'accounts', component: Accounts, meta: { requiresAuth: true }, alias: '/', props: true },
- // {
- // path: '/about',
- // name: 'about',
- // // route level code-splitting
- // // this generates a separate chunk (About.[hash].js) for this route
- // // which is lazy-loaded when the route is visited.
- // component: () => import('../views/AboutView.vue')
- // }
+
+ // Lazy loaded view
+ { path: '/about', name: 'about', component: () => import('./views/About.vue') }
]
})
diff --git a/resources/js_vue3/services/apiFactory.js b/resources/js_vue3/services/apiFactory.js
new file mode 100644
index 00000000..d47159cc
--- /dev/null
+++ b/resources/js_vue3/services/apiFactory.js
@@ -0,0 +1,39 @@
+import axios from "axios"
+
+export const apiFactory = (endpoint = 'api') => {
+ let baseURL
+
+ if (endpoint === 'web') {
+ baseURL = '/'
+ } else {
+ baseURL = '/api'
+ }
+
+ const apiClient = axios.create({
+ baseURL,
+ headers: { 'X-Requested-With': 'XMLHttpRequest', 'Content-Type': 'application/json' },
+ withCredentials: true,
+ })
+
+ // see https://github.com/fsgreco/vue3-laravel-api/blob/main/src/api/middlewareCSRF.js
+ //apiClient.interceptors.request.use( middlewareCSRF, err => Promise.reject(err))
+
+ apiClient.interceptors.response.use(
+ (response) => {
+ return response;
+ },
+ function (error) {
+ if (
+ error.response &&
+ [401, 419].includes(error.response.status)
+ // && store.getters["auth/authUser"] &&
+ // !store.getters["auth/guest"]
+ ) {
+ // store.dispatch("auth/logout");
+ }
+ return Promise.reject(error);
+ }
+ )
+
+ return apiClient
+}
\ No newline at end of file
diff --git a/resources/js_vue3/services/systemService.js b/resources/js_vue3/services/systemService.js
new file mode 100644
index 00000000..f9552da8
--- /dev/null
+++ b/resources/js_vue3/services/systemService.js
@@ -0,0 +1,14 @@
+import { apiFactory } from '@/services/apiFactory'
+
+const web = apiFactory('web')
+
+export default {
+ /**
+ *
+ * @returns
+ */
+ getSystemInfos() {
+ return web.get('infos')
+ },
+
+}
\ No newline at end of file
diff --git a/resources/js_vue3/views/About.vue b/resources/js_vue3/views/About.vue
new file mode 100644
index 00000000..1b838274
--- /dev/null
+++ b/resources/js_vue3/views/About.vue
@@ -0,0 +1,43 @@
+
+
+
On About view
+
+ {{ infos }}
+
+
+
+ {{ toto }}
+
+
Go to About
+
+
+
+
\ No newline at end of file
diff --git a/resources/js_vue3/views/Accounts.vue b/resources/js_vue3/views/Accounts.vue
index b4f33cc0..ea504eaf 100644
--- a/resources/js_vue3/views/Accounts.vue
+++ b/resources/js_vue3/views/Accounts.vue
@@ -4,4 +4,5 @@
On Accounts view
+ Go to About