add loader

This commit is contained in:
2020-04-11 23:54:38 +02:00
parent 4dbd0e47d7
commit 85d20dfe4d
7 changed files with 54 additions and 5 deletions

View File

@@ -0,0 +1,19 @@
<template>
<div v-if="loading" class="flex-center">
<svg-vue icon="loader" class="loader"/>
</div>
</template>
<script>
export default {
name: "Loader",
data: function () {
return {
loading: false,
}
},
mounted() {
setTimeout(() => this.loading = true, 250)
}
}
</script>

View File

@@ -4,7 +4,7 @@
<a href="#" class="btn" @click="$router.back()">< Back</a>
<router-link :to="'/memos/create'" class="btn-primary">Add New Memo</router-link>
</div>
<div v-if="loading">> Loading...</div>
<Loader v-if="loading" />
<div v-else class="container-cards-list">
<div v-if="memos.lenght === 0">
<p>No memos yet. <router-link to="/memos/create">Get Started ></router-link></p>
@@ -18,8 +18,13 @@
</template>
<script>
import Loader from "../../components/Loader";
export default {
name: "MemoIndex",
components: {
Loader
},
data: function () {
return {
loading: true,

View File

@@ -1,6 +1,6 @@
<template>
<div class="p-2">
<div v-if="loading" >> Loading...</div>
<Loader v-if="loading" />
<div v-else>
<div class="flex-between flex-center mb-1">
<router-link to="/memos/" class="btn">< Back</router-link>
@@ -27,6 +27,7 @@
<script>
// import TagBox from "../Tag/TagBox";
import Loader from "../../components/Loader";
let MarkdownIt = require('markdown-it'),
md = new MarkdownIt()
.use(require('markdown-it-checkbox'));
@@ -34,6 +35,7 @@
export default {
name: 'MemoShow',
components: {
Loader
// TagBox
},
data: function () {

View File

@@ -24,7 +24,7 @@
<div class="mb-2">
<h2>Liste des utilisateurs</h2>
<ul>
<li v-if="loading">> Loading...</li>
<Loader v-if="loading" />
<li v-else v-for="user in users"><a :href="user.links.self">{{ user.data.attributes.name }}</a> - {{ user.data.attributes.email }} - {{ user.data.attributes.is_admin }}</li>
</ul>
</div>
@@ -38,11 +38,12 @@
import Avatar from '../../components/Avatar';
import AlertBox from '../../components/AlertBox';
import InputField from '../../components/InputField';
import Loader from "../../components/Loader";
export default {
name: 'UserAdmin',
components: {
Avatar, AlertBox, InputField,
Avatar, AlertBox, InputField, Loader
},
data: function () {
return {
@@ -53,7 +54,7 @@
alertType: '',
alertMessage: '',
errors: null,
loading: '',
loading: true,
users: null,
}
},

View File

@@ -8,6 +8,7 @@
@import "components/btn";
@import "components/elements";
@import "components/loader";
@import "components/events";
@import "components/main";
@import "components/nav";

5
resources/sass/components/loader.scss vendored Normal file
View File

@@ -0,0 +1,5 @@
.loader {
margin-top: 25vh;
stroke: $dark;
width: 10rem;
}

16
resources/svg/loader.svg Normal file
View File

@@ -0,0 +1,16 @@
<svg width="38" height="38" viewBox="0 0 38 38" xmlns="http://www.w3.org/2000/svg" stroke="#000">
<g fill="none" fill-rule="evenodd">
<g transform="translate(1 1)" stroke-width="2">
<circle stroke-opacity=".5" cx="18" cy="18" r="18"/>
<path d="M36 18c0-9.94-8.06-18-18-18">
<animateTransform
attributeName="transform"
type="rotate"
from="0 18 18"
to="360 18 18"
dur="1s"
repeatCount="indefinite"/>
</path>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 619 B