Convert other pages to composition API
This commit is contained in:
@ -1,31 +1,20 @@
|
||||
<script lang="ts">
|
||||
import { defineComponent } from 'vue';
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue';
|
||||
import { useSessionStore } from '../stores/session';
|
||||
|
||||
export default defineComponent({
|
||||
data() {
|
||||
return {
|
||||
showPassword: false,
|
||||
error: "",
|
||||
login: {
|
||||
email: "",
|
||||
password: "",
|
||||
name: "",
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
formSubmit (e : FormDataEvent) {
|
||||
e.preventDefault();
|
||||
useSessionStore().register(this.$data.login)
|
||||
.then(() => this.$data.error = "")
|
||||
.catch(() => this.$data.error = "Something went wrong!");
|
||||
const error = ref("");
|
||||
const login = ref({ email: "", password: "", name: "" });
|
||||
const showPassword = ref(false);
|
||||
|
||||
// TODO display invalidCredentials
|
||||
// TODO redirect to dashboard on success
|
||||
}
|
||||
}
|
||||
})
|
||||
function formSubmit(e: FormDataEvent) {
|
||||
e.preventDefault();
|
||||
useSessionStore().register(login)
|
||||
.then(() => error.value = "")
|
||||
.catch(() => error.value = "Something went wrong!");
|
||||
|
||||
// TODO display invalidCredentials
|
||||
// TODO redirect to dashboard on success
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@ -38,30 +27,35 @@ export default defineComponent({
|
||||
<v-text-field v-model="login.name" type="text" label="Name" />
|
||||
</v-col>
|
||||
<v-col cols="6">
|
||||
<v-text-field v-model="login.password" label="Password"
|
||||
:append-icon="showPassword ? 'mdi-eye' : 'mdi-eye-off'"
|
||||
<v-text-field
|
||||
v-model="login.password"
|
||||
label="Password"
|
||||
:append-icon="showPassword ? 'mdi-eye' : 'mdi-eye-off'"
|
||||
:type="showPassword ? 'text' : 'password'"
|
||||
@click:append="showPassword = showPassword"
|
||||
:error-message="error"
|
||||
error-count="2"
|
||||
error />
|
||||
error
|
||||
/>
|
||||
</v-col>
|
||||
<v-col cols="6">
|
||||
<v-text-field v-model="login.password" label="Repeat password"
|
||||
:append-icon="showPassword ? 'mdi-eye' : 'mdi-eye-off'"
|
||||
<v-text-field
|
||||
v-model="login.password"
|
||||
label="Repeat password"
|
||||
:append-icon="showPassword ? 'mdi-eye' : 'mdi-eye-off'"
|
||||
:type="showPassword ? 'text' : 'password'"
|
||||
@click:append="showPassword = showPassword"
|
||||
:error-message="error"
|
||||
error-count="2"
|
||||
error />
|
||||
error
|
||||
/>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<div class="form-group">
|
||||
{{ error }}
|
||||
</div>
|
||||
<div class="form-group">{{ error }}</div>
|
||||
<v-btn type="submit" @click="formSubmit">Register</v-btn>
|
||||
<p>
|
||||
Existing user? <router-link to="/login">Login</router-link> instead!
|
||||
</p>
|
||||
<p>
|
||||
Existing user?
|
||||
<router-link to="/login">Login</router-link>instead!
|
||||
</p>
|
||||
</v-container>
|
||||
</template>
|
||||
|
Reference in New Issue
Block a user