diff --git a/client/src/components/BoardPage/BoardPage.jsx b/client/src/components/BoardPage/BoardPage.jsx
index e388ef1..e820d6b 100644
--- a/client/src/components/BoardPage/BoardPage.jsx
+++ b/client/src/components/BoardPage/BoardPage.jsx
@@ -5,6 +5,7 @@ import Board from '@lourenci/react-kanban';
import { fetchIssues } from '../../store/actions/issues';
import { fetchBoards } from '../../store/actions/boards';
import { buildKanboard, moveCard } from '../../store/actions/kanboards';
+import { Loader } from '../Loader';
export class BoardPage extends React.Component {
@@ -12,9 +13,7 @@ export class BoardPage extends React.Component {
return (
-
- {this.renderBoard()}
-
+ {this.renderBoard()}
);
@@ -22,16 +21,20 @@ export class BoardPage extends React.Component {
renderBoard() {
const { kanboard } = this.props;
+
if (!kanboard) {
- return
Loading
+ return
}
+
return (
-
- {kanboard}
-
+
+
+ {kanboard}
+
+
);
}
diff --git a/client/src/components/Loader.jsx b/client/src/components/Loader.jsx
new file mode 100644
index 0000000..5632248
--- /dev/null
+++ b/client/src/components/Loader.jsx
@@ -0,0 +1,14 @@
+import React from 'react';
+
+export class Loader extends React.Component {
+ render() {
+ return (
+
+ )
+ }
+}
\ No newline at end of file
diff --git a/client/src/sass/_all.scss b/client/src/sass/_all.scss
index 4bc3024..e12e0c0 100644
--- a/client/src/sass/_all.scss
+++ b/client/src/sass/_all.scss
@@ -1,3 +1,4 @@
@import 'bulma/bulma.sass';
@import '_base.scss';
+@import '_loader.scss';
@import '_kanboard.scss';
\ No newline at end of file
diff --git a/client/src/sass/_loader.scss b/client/src/sass/_loader.scss
new file mode 100644
index 0000000..b059a93
--- /dev/null
+++ b/client/src/sass/_loader.scss
@@ -0,0 +1,44 @@
+.loader-container {
+ display: flex;
+ width: 100%;
+ justify-content: center;
+ height: 100%;
+ align-items: center;
+}
+
+.lds-ripple {
+ display: inline-block;
+ position: relative;
+ width: 80px;
+ height: 80px;
+ transform: scale(2);
+}
+
+.lds-ripple div {
+ position: absolute;
+ border: 4px solid $info;
+ opacity: 1;
+ border-radius: 50%;
+ animation: lds-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;
+}
+
+.lds-ripple div:nth-child(2) {
+ animation-delay: -0.5s;
+}
+
+@keyframes lds-ripple {
+ 0% {
+ top: 36px;
+ left: 36px;
+ width: 0;
+ height: 0;
+ opacity: 1;
+ }
+ 100% {
+ top: 0px;
+ left: 0px;
+ width: 72px;
+ height: 72px;
+ opacity: 0;
+ }
+ }