added loading spinner component

main
TZGyn 3 years ago
parent 6a9078f0f0
commit c7fc735af3

@ -0,0 +1,23 @@
<template>
<div>
<svg class="spinner">
<circle
class="opacity-25"
cx="12"
cy="12"
r="10"
stroke="currentColor"
stroke-width="4"></circle>
<path
class="opacity-75"
fill="currentColor"
d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
</svg>
</div>
</template>
<style scoped>
.spinner {
@apply h-6 w-6 animate-spin;
}
</style>

@ -2,9 +2,12 @@
<div class="app"> <div class="app">
<textarea <textarea
v-model="title" v-model="title"
placeholder="untitled"
class="titleTextArea" /> class="titleTextArea" />
<button @click="submit()"> <button @click="submit()">
<LoadingSpinner v-if="isSubmitting" />
<Icon <Icon
v-if="!isSubmitting"
name="fa6-solid:floppy-disk" name="fa6-solid:floppy-disk"
size="24" /> size="24" />
</button> </button>
@ -28,7 +31,7 @@
const { refresh } = await useFetch('/api/note', { const { refresh } = await useFetch('/api/note', {
method: 'GET', method: 'GET',
query: { query: {
id: route.params.id[0], id: route.params.id,
}, },
onResponse({ response }) { onResponse({ response }) {
title.value = response._data.note.title; title.value = response._data.note.title;
@ -42,17 +45,17 @@
await useFetch('/api/note', { await useFetch('/api/note', {
method: 'POST', method: 'POST',
query: { query: {
id: route.params.id[0], id: route.params.id,
}, },
body: { body: {
title: title.value, title: title.value,
description: description.value, description: description.value,
}, },
onResponse({ response }) { onResponse({ response }) {
isSubmitting.value = false;
console.log('POST:', response._data.message); console.log('POST:', response._data.message);
}, },
}); });
isSubmitting.value = false;
}; };
onMounted(() => { onMounted(() => {

Loading…
Cancel
Save