Whole site refactor. Added pinia stores and authentication capability.

This commit is contained in:
2024-06-27 09:24:47 +02:00
parent 93c015fcb7
commit 87c8579e9e
18 changed files with 717 additions and 258 deletions

47
src/views/LoginView.vue Normal file
View File

@@ -0,0 +1,47 @@
<script setup lang="ts">
import { Form, Field } from 'vee-validate';
import * as Yup from 'yup';
const schema = Yup.object().shape({
username: Yup.string().required('Username is required'),
password: Yup.string().required('Password is required')
});
function onSubmit(values : any) {
const { username, password } = values;
}
</script>
<template>
<div>
<div class="alert alert-info">
Username: test<br />
Password: test
</div>
<h2>Login</h2>
<Form @submit="onSubmit" :validation-schema="schema" v-slot="{ errors, isSubmitting }">
<div class="form-group">
<label>Username</label>
<Field name="username" type="text" class="form-control" :class="{ 'is-invalid': errors.username }" />
<div class="invalid-feedback">{{errors.username}}</div>
</div>
<div class="form-group">
<label>Password</label>
<Field name="password" type="password" class="form-control" :class="{ 'is-invalid': errors.password }" />
<div class="invalid-feedback">{{errors.password}}</div>
</div>
<div class="form-group">
<button class="btn btn-primary" :disabled="isSubmitting">
<span v-show="isSubmitting" class="spinner-border spinner-border-sm mr-1"></span>
Login
</button>
</div>
<div v-if="errors.apiError" class="alert alert-danger mt-3 mb-0">{{errors.apiError}}</div>
</Form>
</div>
</template>
<style scoped>
</style>