diff --git a/src/static/client/package-lock.json b/src/static/client/package-lock.json index 989d409..8c85ba6 100644 --- a/src/static/client/package-lock.json +++ b/src/static/client/package-lock.json @@ -10,7 +10,9 @@ "dependencies": { "bootstrap": "^5.3.6", "bootstrap-icons": "^1.13.1", + "dayjs": "^1.11.13", "pinia": "^3.0.2", + "uuid": "^11.1.0", "vue": "^3.5.13", "vue-router": "^4.5.1" }, @@ -1708,6 +1710,12 @@ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "license": "MIT" }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" + }, "node_modules/debug": { "version": "4.4.1", "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.1.tgz", @@ -2645,6 +2653,19 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/uuid": { + "version": "11.1.0", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, "node_modules/vite": { "version": "6.3.5", "resolved": "https://registry.npmmirror.com/vite/-/vite-6.3.5.tgz", diff --git a/src/static/client/package.json b/src/static/client/package.json index 630499d..8d11562 100644 --- a/src/static/client/package.json +++ b/src/static/client/package.json @@ -11,7 +11,9 @@ "dependencies": { "bootstrap": "^5.3.6", "bootstrap-icons": "^1.13.1", + "dayjs": "^1.11.13", "pinia": "^3.0.2", + "uuid": "^11.1.0", "vue": "^3.5.13", "vue-router": "^4.5.1" }, diff --git a/src/static/client/src/App.vue b/src/static/client/src/App.vue index ae79e28..8294dfd 100644 --- a/src/static/client/src/App.vue +++ b/src/static/client/src/App.vue @@ -1,13 +1,30 @@ diff --git a/src/static/client/src/assets/main.css b/src/static/client/src/assets/main.css index ac6ee02..0d745ed 100644 --- a/src/static/client/src/assets/main.css +++ b/src/static/client/src/assets/main.css @@ -52,4 +52,8 @@ .btn-brand:hover{ --brandColor1: rgb(0, 142, 216); --brandColor2: rgba(249, 70, 71) +} + +::-webkit-scrollbar { + display: none; } \ No newline at end of file diff --git a/src/static/client/src/components/notification/notification.vue b/src/static/client/src/components/notification/notification.vue new file mode 100644 index 0000000..b186457 --- /dev/null +++ b/src/static/client/src/components/notification/notification.vue @@ -0,0 +1,68 @@ + + + + + \ No newline at end of file diff --git a/src/static/client/src/components/notification/notificationList.vue b/src/static/client/src/components/notification/notificationList.vue new file mode 100644 index 0000000..92d16f3 --- /dev/null +++ b/src/static/client/src/components/notification/notificationList.vue @@ -0,0 +1,57 @@ + + + + + \ No newline at end of file diff --git a/src/static/client/src/stores/clientStore.js b/src/static/client/src/stores/clientStore.js new file mode 100644 index 0000000..e7a880f --- /dev/null +++ b/src/static/client/src/stores/clientStore.js @@ -0,0 +1,22 @@ +import {defineStore} from "pinia"; +import {ref} from "vue"; +import {v4} from "uuid" +import dayjs from "dayjs"; + + +export const clientStore = defineStore('clientStore', () => { + const notifications = ref([]) + function newNotification(content, status) { + notifications.value.push({ + id: v4().toString(), + status: status, + content: content, + time: dayjs(), + show: true + }) + } + + return { + notifications, newNotification + } +}) \ No newline at end of file diff --git a/src/static/client/src/views/signin.vue b/src/static/client/src/views/signin.vue index ee63492..6a2ff5a 100644 --- a/src/static/client/src/views/signin.vue +++ b/src/static/client/src/views/signin.vue @@ -2,38 +2,47 @@ import {reactive} from "vue"; const formData = reactive({ - username: "", + email: "", password: "" -}) +}); + +const submit = (e) => { + e.preventDefault(); + for (let key in formData){ + if (formData[key].length === 0){ + + break + } + } +}