From c9cde25d3b0ae2451774134edd8c755d0c2aebf7 Mon Sep 17 00:00:00 2001 From: Filip Borum Poulsen Date: Tue, 18 Apr 2023 14:26:31 +0200 Subject: [PATCH] Added login and register view and removed vue boilerplate --- client/.env | 1 + client/index.html | 2 +- client/package-lock.json | 82 +++++++++- client/package.json | 2 + client/src/App.vue | 13 +- client/src/assets/elevio-noto-sans-400.woff | Bin 0 -> 13976 bytes client/src/components/HelloWorld.vue | 40 ----- client/src/components/NavBar.vue | 40 ++++- client/src/components/WelcomeItem.vue | 86 ----------- client/src/main.ts | 7 + client/src/router/index.ts | 18 ++- client/src/stores/login.ts | 12 ++ client/src/views/AboutView.vue | 15 -- client/src/views/Home.vue | 3 + client/src/views/HomeView.vue | 9 -- client/src/views/Login.vue | 141 +++++++++++++++++ client/src/views/Register.vue | 163 ++++++++++++++++++++ 17 files changed, 467 insertions(+), 167 deletions(-) create mode 100644 client/.env create mode 100644 client/src/assets/elevio-noto-sans-400.woff delete mode 100644 client/src/components/HelloWorld.vue delete mode 100644 client/src/components/WelcomeItem.vue create mode 100644 client/src/stores/login.ts delete mode 100644 client/src/views/AboutView.vue create mode 100644 client/src/views/Home.vue delete mode 100644 client/src/views/HomeView.vue create mode 100644 client/src/views/Login.vue create mode 100644 client/src/views/Register.vue diff --git a/client/.env b/client/.env new file mode 100644 index 0000000..8c0f674 --- /dev/null +++ b/client/.env @@ -0,0 +1 @@ +VITE_BASE_API_URL=/api \ No newline at end of file diff --git a/client/index.html b/client/index.html index 96bd73b..17fffc0 100644 --- a/client/index.html +++ b/client/index.html @@ -3,7 +3,7 @@ - + Fitness World diff --git a/client/package-lock.json b/client/package-lock.json index 10ff058..c67cd12 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -8,6 +8,8 @@ "name": "merit-opgave-client", "version": "0.0.0", "dependencies": { + "bootstrap": "^5.2.3", + "pinia": "^2.0.34", "vue": "^3.2.47", "vue-router": "^4.1.6" }, @@ -384,6 +386,16 @@ "node": ">=12" } }, + "node_modules/@popperjs/core": { + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.7.tgz", + "integrity": "sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw==", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, "node_modules/@types/node": { "version": "18.15.11", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", @@ -645,6 +657,24 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "node_modules/bootstrap": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.3.tgz", + "integrity": "sha512-cEKPM+fwb3cT8NzQZYEu4HilJ3anCrWqh3CHAok1p9jXqMPsPTBhU25fBckEJHJ/p+tTxTFTsFQGM+gaHpi3QQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "peerDependencies": { + "@popperjs/core": "^2.11.6" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1541,6 +1571,56 @@ "node": ">=4" } }, + "node_modules/pinia": { + "version": "2.0.34", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.34.tgz", + "integrity": "sha512-cgOoGUiyqX0SSgX8XelK9+Ri4XA2/YyNtgjogwfzIx1g7iZTaZPxm7/bZYMCLU2qHRiHhxG7SuQO0eBacFNc2Q==", + "dependencies": { + "@vue/devtools-api": "^6.5.0", + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "@vue/composition-api": "^1.4.0", + "typescript": ">=4.4.4", + "vue": "^2.6.14 || ^3.2.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/pinia/node_modules/vue-demi": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.0.tgz", + "integrity": "sha512-gt58r2ogsNQeVoQ3EhoUAvUsH9xviydl0dWJj7dabBC/2L4uBId7ujtCwDRD0JhkGsV1i0CtfLAeyYKBht9oWg==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, "node_modules/postcss": { "version": "8.4.22", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.22.tgz", @@ -1866,7 +1946,7 @@ "version": "4.8.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", - "dev": true, + "devOptional": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/client/package.json b/client/package.json index 88c964b..41cb51d 100644 --- a/client/package.json +++ b/client/package.json @@ -10,6 +10,8 @@ "type-check": "vue-tsc --noEmit" }, "dependencies": { + "bootstrap": "^5.2.3", + "pinia": "^2.0.34", "vue": "^3.2.47", "vue-router": "^4.1.6" }, diff --git a/client/src/App.vue b/client/src/App.vue index 1276bf6..108f65f 100644 --- a/client/src/App.vue +++ b/client/src/App.vue @@ -1,15 +1,22 @@ - diff --git a/client/src/assets/elevio-noto-sans-400.woff b/client/src/assets/elevio-noto-sans-400.woff new file mode 100644 index 0000000000000000000000000000000000000000..05c871cc18edb2cccc079329bc67d5123c64ac93 GIT binary patch literal 13976 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 eLybA -defineProps<{ - msg: string -}>() - - - - - diff --git a/client/src/components/NavBar.vue b/client/src/components/NavBar.vue index ff62107..14e1046 100644 --- a/client/src/components/NavBar.vue +++ b/client/src/components/NavBar.vue @@ -1,24 +1,50 @@ diff --git a/client/src/components/WelcomeItem.vue b/client/src/components/WelcomeItem.vue deleted file mode 100644 index ba0def3..0000000 --- a/client/src/components/WelcomeItem.vue +++ /dev/null @@ -1,86 +0,0 @@ - - - diff --git a/client/src/main.ts b/client/src/main.ts index c8e37b0..fe7d946 100644 --- a/client/src/main.ts +++ b/client/src/main.ts @@ -1,9 +1,16 @@ import { createApp } from 'vue' +import { createPinia } from 'pinia' import App from './App.vue' import router from './router' +import 'bootstrap/dist/css/bootstrap.css'; + +const pinia = createPinia() const app = createApp(App) app.use(router) +app.use(pinia) app.mount('#app') + +import "bootstrap/dist/js/bootstrap.js"; \ No newline at end of file diff --git a/client/src/router/index.ts b/client/src/router/index.ts index a49ae50..464495e 100644 --- a/client/src/router/index.ts +++ b/client/src/router/index.ts @@ -1,5 +1,5 @@ import { createRouter, createWebHistory } from 'vue-router' -import HomeView from '../views/HomeView.vue' +import Home from '../views/Home.vue' const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), @@ -7,15 +7,23 @@ const router = createRouter({ { path: '/', name: 'home', - component: HomeView + component: Home }, { - path: '/about', - name: 'about', + path: '/login', + name: 'login', // 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') + component: () => import('../views/Login.vue') + }, + { + path: '/register', + name: 'register', + // 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/Register.vue') } ] }) diff --git a/client/src/stores/login.ts b/client/src/stores/login.ts new file mode 100644 index 0000000..455a3f0 --- /dev/null +++ b/client/src/stores/login.ts @@ -0,0 +1,12 @@ +import { defineStore } from 'pinia' + +export const useLoginStore = defineStore('login', { + state: () => { + return { loggedIn: false } + }, + actions: { + setLoginState(login: boolean) { + this.loggedIn = login; + } + }, +}) \ No newline at end of file diff --git a/client/src/views/AboutView.vue b/client/src/views/AboutView.vue deleted file mode 100644 index 756ad2a..0000000 --- a/client/src/views/AboutView.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/client/src/views/Home.vue b/client/src/views/Home.vue new file mode 100644 index 0000000..27e0f69 --- /dev/null +++ b/client/src/views/Home.vue @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/client/src/views/HomeView.vue b/client/src/views/HomeView.vue deleted file mode 100644 index c98b583..0000000 --- a/client/src/views/HomeView.vue +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/client/src/views/Login.vue b/client/src/views/Login.vue new file mode 100644 index 0000000..6009b27 --- /dev/null +++ b/client/src/views/Login.vue @@ -0,0 +1,141 @@ + + + + + diff --git a/client/src/views/Register.vue b/client/src/views/Register.vue new file mode 100644 index 0000000..e04d76b --- /dev/null +++ b/client/src/views/Register.vue @@ -0,0 +1,163 @@ + + + + +