diff --git a/frontend/.env b/frontend/.env
new file mode 100644
index 0000000..b704691
--- /dev/null
+++ b/frontend/.env
@@ -0,0 +1 @@
+export const BASE_URL = "http://localhost:5173";
\ No newline at end of file
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 64f7fea..21952a2 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -15,6 +15,7 @@
"vuetify": "^3.6.14"
},
"devDependencies": {
+ "@types/node": "^22.1.0",
"@vitejs/plugin-vue": "^5.0.5",
"typescript": "^5.2.2",
"vite": "^5.3.4",
@@ -656,6 +657,16 @@
"integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
"dev": true
},
+ "node_modules/@types/node": {
+ "version": "22.1.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.1.0.tgz",
+ "integrity": "sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~6.13.0"
+ }
+ },
"node_modules/@vitejs/plugin-vue": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.1.2.tgz",
@@ -1184,6 +1195,13 @@
"node": ">=14.17"
}
},
+ "node_modules/undici-types": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.13.0.tgz",
+ "integrity": "sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/vite": {
"version": "5.3.5",
"resolved": "https://registry.npmjs.org/vite/-/vite-5.3.5.tgz",
diff --git a/frontend/package.json b/frontend/package.json
index 58baefa..78ad030 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -16,6 +16,7 @@
"vuetify": "^3.6.14"
},
"devDependencies": {
+ "@types/node": "^22.1.0",
"@vitejs/plugin-vue": "^5.0.5",
"typescript": "^5.2.2",
"vite": "^5.3.4",
diff --git a/frontend/src/App.vue b/frontend/src/App.vue
index 1527365..1b55b75 100644
--- a/frontend/src/App.vue
+++ b/frontend/src/App.vue
@@ -1,11 +1,10 @@
-
+
-
\ No newline at end of file
diff --git a/frontend/src/config.ts b/frontend/src/config.ts
new file mode 100644
index 0000000..e01e304
--- /dev/null
+++ b/frontend/src/config.ts
@@ -0,0 +1 @@
+export const BASE_URL = "http://localhost:5173";
diff --git a/frontend/src/main.ts b/frontend/src/main.ts
index ea6042f..42ab230 100644
--- a/frontend/src/main.ts
+++ b/frontend/src/main.ts
@@ -4,10 +4,11 @@ import { createVuetify } from "vuetify";
import * as components from "vuetify/components";
import * as directives from "vuetify/directives";
import App from "./App.vue";
+import router from "./router/index";
const vuetify = createVuetify({
components,
directives,
});
-createApp(App).use(vuetify).mount("#app");
+createApp(App).use(router).use(vuetify).mount("#app");
diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts
new file mode 100644
index 0000000..b8aabe8
--- /dev/null
+++ b/frontend/src/router/index.ts
@@ -0,0 +1,39 @@
+import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router";
+import Login from "../components/Login.vue";
+import CreateFlist from "../components/CreateFlist.vue";
+import ViewFlists from "../components/ViewFlists.vue";
+
+const routes: Array = [
+ {
+ path: "/login",
+ name: "Login",
+ component: Login,
+ },
+ {
+ path: "/flists",
+ name: "Flists",
+ component: ViewFlists,
+ },
+ {
+ path: "/create",
+ name: "Create",
+ component: CreateFlist,
+ meta: { requiresAuth: true },
+ },
+];
+
+const router = createRouter({
+ history: createWebHistory(import.meta.env.BASE_URL),
+ routes,
+});
+
+router.beforeEach((to, _, next) => {
+ const token: string | null = sessionStorage.getItem("token");
+ if (to.meta.requiresAuth && token === null) {
+ next({ name: "Login" });
+ } else {
+ next();
+ }
+});
+
+export default router;
diff --git a/frontend/src/router/router.ts b/frontend/src/router/router.ts
deleted file mode 100644
index c5f83e3..0000000
--- a/frontend/src/router/router.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router";
-import { Login } from "../components/Login.vue"
-
-
-const routes: Array = [
- {path:"/login",
- name:"Login",
- component:Login,
- meta:{requiresAuth:true},}
-
-];
-
-const router = createRouter({
- history: createWebHistory(process.env.BASE_URL),
- routes,
-});
-
-router.beforeEach((to, from, next) => {
- const token: string | null = sessionStorage.getItem("token")
- if (to.meta.requiresAuth && token === null){
- next({name:"Login"})
- }else{
- next()
- }
-});
-
-export default router;
\ No newline at end of file