messages added

This commit is contained in:
nquidox 2025-11-02 19:49:06 +03:00
parent c74032d1d0
commit 0e51451ad2
2 changed files with 41 additions and 6 deletions

View file

@ -58,6 +58,7 @@ export const useAuthStore = defineStore('auth', () => {
router.push({ name: 'collection'}) router.push({ name: 'collection'})
} catch (error) { } catch (error) {
console.error('Login error:', error) console.error('Login error:', error)
throw error
} }
} }

View file

@ -2,16 +2,23 @@
import { reactive, ref } from 'vue' import { reactive, ref } from 'vue'
import { useAuthStore } from '@/stores/authStore.js' import { useAuthStore } from '@/stores/authStore.js'
import { storeToRefs } from 'pinia' import { storeToRefs } from 'pinia'
import { useMessage } from 'naive-ui'
const store = useAuthStore() const store = useAuthStore()
const messages = useMessage()
const { activeTab } = storeToRefs(store) const { activeTab } = storeToRefs(store)
const signInEmail = ref('') const signInEmail = ref('')
const signInPassword = ref('') const signInPassword = ref('')
const onSignIn = () => { const onSignIn = async () => {
store.login(signInEmail.value, signInPassword.value) try{
await store.login(signInEmail.value, signInPassword.value)
messages.success('Login success')
} catch (error) {
messages.error("Login error")
}
} }
const signUp = reactive({ const signUp = reactive({
@ -20,8 +27,35 @@ const signUp = reactive({
reenterPassword: '', reenterPassword: '',
}) })
const onSignUp = () => { const onSignUp = async () => {
store.register(signUp.email, signUp.password) 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")
}
} }
</script> </script>
@ -43,7 +77,7 @@ const onSignUp = () => {
<n-form-item-row label="Password"> <n-form-item-row label="Password">
<n-input v-model:value="signInPassword" type="password" show-password-on="click" /> <n-input v-model:value="signInPassword" type="password" show-password-on="click" />
</n-form-item-row> </n-form-item-row>
<n-button type="primary" block secondary strong attr-type="submit" @click="onSignIn"> Sign In</n-button> <n-button type="primary" block secondary strong attr-type="submit"> Sign In</n-button>
</n-form> </n-form>
</n-tab-pane> </n-tab-pane>
@ -58,7 +92,7 @@ const onSignUp = () => {
<n-form-item-row label="Reenter Password"> <n-form-item-row label="Reenter Password">
<n-input type="password" v-model:value="signUp.reenterPassword" show-password-on="click" /> <n-input type="password" v-model:value="signUp.reenterPassword" show-password-on="click" />
</n-form-item-row> </n-form-item-row>
<n-button type="primary" block secondary strong attr-type="submit" @click="onSignUp">Sign up</n-button> <n-button type="primary" block secondary strong attr-type="submit">Sign up</n-button>
</n-form> </n-form>
</n-tab-pane> </n-tab-pane>
</n-tabs> </n-tabs>