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

View File

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

View File

@@ -24,7 +24,7 @@
<div class="mb-2"> <div class="mb-2">
<h2>Liste des utilisateurs</h2> <h2>Liste des utilisateurs</h2>
<ul> <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> <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> </ul>
</div> </div>
@@ -38,11 +38,12 @@
import Avatar from '../../components/Avatar'; import Avatar from '../../components/Avatar';
import AlertBox from '../../components/AlertBox'; import AlertBox from '../../components/AlertBox';
import InputField from '../../components/InputField'; import InputField from '../../components/InputField';
import Loader from "../../components/Loader";
export default { export default {
name: 'UserAdmin', name: 'UserAdmin',
components: { components: {
Avatar, AlertBox, InputField, Avatar, AlertBox, InputField, Loader
}, },
data: function () { data: function () {
return { return {
@@ -53,7 +54,7 @@
alertType: '', alertType: '',
alertMessage: '', alertMessage: '',
errors: null, errors: null,
loading: '', loading: true,
users: null, users: null,
} }
}, },

View File

@@ -8,6 +8,7 @@
@import "components/btn"; @import "components/btn";
@import "components/elements"; @import "components/elements";
@import "components/loader";
@import "components/events"; @import "components/events";
@import "components/main"; @import "components/main";
@import "components/nav"; @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