diff --git a/package-lock.json b/package-lock.json index 61c01dc..596ebfe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,6 +21,8 @@ "jspdf-autotable": "^3.5.28", "libphonenumber-js": "^1.10.14", "maz-ui": "^3.0.7", + "pinia": "^2.0.28", + "pinia-plugin-persistedstate": "^3.0.2", "postcss": "^8", "primeflex": "^3.2.1", "primeicons": "^6.0.1", @@ -30,8 +32,7 @@ "vue-html2pdf": "^1.8.0", "vue-router": "^4.0.14", "vue-sweetalert2": "^5.0.5", - "vue3-youtube": "^0.1.9", - "vuex": "^4.0.2" + "vue3-youtube": "^0.1.9" }, "devDependencies": { "@vue/cli-plugin-babel": "~5.0.0", @@ -2752,9 +2753,9 @@ "dev": true }, "node_modules/@vue/devtools-api": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.1.4.tgz", - "integrity": "sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ==" + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.4.5.tgz", + "integrity": "sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==" }, "node_modules/@vue/reactivity": { "version": "3.2.32", @@ -8473,6 +8474,64 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pinia": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.28.tgz", + "integrity": "sha512-YClq9DkqCblq9rlyUual7ezMu/iICWdBtfJrDt4oWU9Zxpijyz7xB2xTwx57DaBQ96UGvvTMORzALr+iO5PVMw==", + "dependencies": { + "@vue/devtools-api": "^6.4.5", + "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-plugin-persistedstate": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-3.0.2.tgz", + "integrity": "sha512-84vPyUhPA/8Pr+1mT1ioNb2d8z4tvdgYRqMQf8xyauOVBKjo0ZcRBwPQBV7ZAJG43Kwar43nXG2jU+ZMvAFFRQ==", + "peerDependencies": { + "pinia": "^2.0.0" + } + }, + "node_modules/pinia/node_modules/vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "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/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -10926,17 +10985,6 @@ "vue": "^3.0.0" } }, - "node_modules/vuex": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vuex/-/vuex-4.0.2.tgz", - "integrity": "sha512-M6r8uxELjZIK8kTKDGgZTYX/ahzblnzC4isU1tpmEuOIIKmV+TRdc+H4s8ds2NuZ7wpUTdGRzJRtoj+lI+pc0Q==", - "dependencies": { - "@vue/devtools-api": "^6.0.0-beta.11" - }, - "peerDependencies": { - "vue": "^3.0.2" - } - }, "node_modules/watchpack": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", @@ -13616,9 +13664,9 @@ } }, "@vue/devtools-api": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.1.4.tgz", - "integrity": "sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ==" + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.4.5.tgz", + "integrity": "sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==" }, "@vue/reactivity": { "version": "3.2.32", @@ -17822,6 +17870,29 @@ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, + "pinia": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.28.tgz", + "integrity": "sha512-YClq9DkqCblq9rlyUual7ezMu/iICWdBtfJrDt4oWU9Zxpijyz7xB2xTwx57DaBQ96UGvvTMORzALr+iO5PVMw==", + "requires": { + "@vue/devtools-api": "^6.4.5", + "vue-demi": "*" + }, + "dependencies": { + "vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "requires": {} + } + } + }, + "pinia-plugin-persistedstate": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-3.0.2.tgz", + "integrity": "sha512-84vPyUhPA/8Pr+1mT1ioNb2d8z4tvdgYRqMQf8xyauOVBKjo0ZcRBwPQBV7ZAJG43Kwar43nXG2jU+ZMvAFFRQ==", + "requires": {} + }, "pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -19621,14 +19692,6 @@ "vue": "^3.0.0" } }, - "vuex": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vuex/-/vuex-4.0.2.tgz", - "integrity": "sha512-M6r8uxELjZIK8kTKDGgZTYX/ahzblnzC4isU1tpmEuOIIKmV+TRdc+H4s8ds2NuZ7wpUTdGRzJRtoj+lI+pc0Q==", - "requires": { - "@vue/devtools-api": "^6.0.0-beta.11" - } - }, "watchpack": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", diff --git a/package.json b/package.json index d950bee..fac1d26 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,8 @@ "jspdf-autotable": "^3.5.28", "libphonenumber-js": "^1.10.14", "maz-ui": "^3.0.7", + "pinia": "^2.0.28", + "pinia-plugin-persistedstate": "^3.0.2", "postcss": "^8", "primeflex": "^3.2.1", "primeicons": "^6.0.1", @@ -29,8 +31,7 @@ "vue-html2pdf": "^1.8.0", "vue-router": "^4.0.14", "vue-sweetalert2": "^5.0.5", - "vue3-youtube": "^0.1.9", - "vuex": "^4.0.2" + "vue3-youtube": "^0.1.9" }, "devDependencies": { "@vue/cli-plugin-babel": "~5.0.0", diff --git a/src/components/authentication/TheLogin.vue b/src/components/authentication/TheLogin.vue index 2747f19..8dde1fd 100644 --- a/src/components/authentication/TheLogin.vue +++ b/src/components/authentication/TheLogin.vue @@ -112,6 +112,7 @@ import axios from "axios"; import useVuelidate from "@vuelidate/core"; import { required } from "@vuelidate/validators"; +import { useAuthenticationUserStore } from "@/store/modules/authentication" export default { name: "Login", @@ -125,6 +126,10 @@ export default { isLoading: false, }; }, + setup() { + const authenticationStore = useAuthenticationUserStore() + return { authenticationStore } + }, methods: { doLogin() { this.v$.$validate(); @@ -145,6 +150,15 @@ export default { response.data.user.notelbimbit ); localStorage.setItem("username", response.data.user.username); + this.authenticationStore.$patch({ + token: response.data.token, + id: response.data.user.id, + nokp: response.data.user.nokp, + name: response.data.user.name, + email: response.data.user.email, + notelbimbit: response.data.user.notelbimbit, + username: response.data.user.username, + }) this.$router.push({ name: "home" }); } else if (response.data.statusAkaun == 0) { this.$toast.add({ diff --git a/src/components/authentication/TheRegister.vue b/src/components/authentication/TheRegister.vue index 4c951bc..9a72037 100644 --- a/src/components/authentication/TheRegister.vue +++ b/src/components/authentication/TheRegister.vue @@ -305,6 +305,7 @@ import axios from "axios"; import useVuelidate from "@vuelidate/core"; import { required, email, minLength, maxLength } from "@vuelidate/validators"; import TermsAndConditionsDetails from "./TermsAndConditionsDetails.vue"; +import { useAuthenticationUserStore } from "@/store/modules/authentication" export default { name: "Register", @@ -344,6 +345,10 @@ export default { }, }; }, + setup() { + const authenticationStore = useAuthenticationUserStore() + return { authenticationStore } + }, methods: { doRegister() { this.v$.$validate(); @@ -364,6 +369,15 @@ export default { response.data.user.notelbimbit ); localStorage.setItem("username", response.data.user.username); + this.authenticationStore.$patch({ + token: response.data.token, + id: response.data.user.id, + nokp: response.data.user.nokp, + name: response.data.user.name, + email: response.data.user.email, + notelbimbit: response.data.user.notelbimbit, + username: response.data.user.username, + }) this.$router.push({ name: "home" }); this.isLoading = false; } else if (response.data.success == false) { diff --git a/src/components/home/LelongTodayDetail.vue b/src/components/home/LelongTodayDetail.vue index 9922f2d..1538cb3 100644 --- a/src/components/home/LelongTodayDetail.vue +++ b/src/components/home/LelongTodayDetail.vue @@ -48,6 +48,7 @@