diff --git a/src/stores/authStore.js b/src/stores/authStore.js
index cede1f1..977cd25 100644
--- a/src/stores/authStore.js
+++ b/src/stores/authStore.js
@@ -58,6 +58,7 @@ export const useAuthStore = defineStore('auth', () => {
router.push({ name: 'collection'})
} catch (error) {
console.error('Login error:', error)
+ throw error
}
}
diff --git a/src/stores/labelsStore.js b/src/stores/labelsStore.js
index 968d3ff..ab8ef28 100644
--- a/src/stores/labelsStore.js
+++ b/src/stores/labelsStore.js
@@ -34,7 +34,7 @@ export const useLabelsStore = defineStore('labels', () => {
const getLabels = async () => {
try {
- const response = await apiClient.get('/merch/labels')
+ const response = await apiClient.get(`/merch/labels?_=${Date.now()}`)
const labelList = Array.isArray(response.data) ? response.data : []
labels.value = labelList
localStorage.setItem('labels', JSON.stringify(labelList))
@@ -46,7 +46,7 @@ export const useLabelsStore = defineStore('labels', () => {
const updateLabel = async (uuid, updatedData) => {
try {
- await apiClient.put(`/merch/labels/${uuid}`, updatedData)
+ await apiClient.put(`/merch/labels/${uuid}?_=${Date.now()}`, updatedData)
await getLabels()
} catch (error) {
console.error('Failed to update label:', error)
diff --git a/src/views/LoginView.vue b/src/views/LoginView.vue
index 0a2015e..756bb8d 100644
--- a/src/views/LoginView.vue
+++ b/src/views/LoginView.vue
@@ -2,16 +2,23 @@
import { reactive, ref } from 'vue'
import { useAuthStore } from '@/stores/authStore.js'
import { storeToRefs } from 'pinia'
+import { useMessage } from 'naive-ui'
const store = useAuthStore()
+const messages = useMessage()
const { activeTab } = storeToRefs(store)
const signInEmail = ref('')
const signInPassword = ref('')
-const onSignIn = () => {
- store.login(signInEmail.value, signInPassword.value)
+const onSignIn = async () => {
+ try{
+ await store.login(signInEmail.value, signInPassword.value)
+ messages.success('Login success')
+ } catch (error) {
+ messages.error("Login error")
+ }
}
const signUp = reactive({
@@ -20,8 +27,35 @@ const signUp = reactive({
reenterPassword: '',
})
-const onSignUp = () => {
- store.register(signUp.email, signUp.password)
+const onSignUp = async () => {
+ if (!signUp.email.trim()) {
+ messages.error('Email is required')
+ return
+ }
+
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/
+ if (!emailRegex.test(signUp.email)) {
+ messages.error('Please enter a valid email address')
+ return
+ }
+
+ if (!signUp.password.trim()) {
+ messages.error('Password is required')
+ return
+ }
+
+ if (signUp.password !== signUp.reenterPassword) {
+ messages.error('Passwords do not match')
+ return
+ }
+
+ try{
+ await store.register(signUp.email, signUp.password)
+ messages.success('Register success')
+ activeTab.value = 'signin'
+ } catch (error) {
+ messages.error("Register error")
+ }
}
@@ -43,7 +77,7 @@ const onSignUp = () => {
- Sign In
+ Sign In
@@ -58,7 +92,7 @@ const onSignUp = () => {
- Sign up
+ Sign up