about summary refs log tree commit diff
path: root/components/Posts/PostList/PurePostList.vue
diff options
context:
space:
mode:
authorPatryk Niedźwiedziński <pniedzwiedzinski19@gmail.com>2019-12-05 11:56:11 -0500
committerGitHub <noreply@github.com>2019-12-05 11:56:11 -0500
commitcd7fa1fb5d499e51b9f2bc833159ee4581b8f2a8 (patch)
treebe10296e0268295db20c536af045c5df6c829a0e /components/Posts/PostList/PurePostList.vue
parent070b7725be5fb0db486e9370bea5648c16c8bbfe (diff)
parent34908ab59f58f3d5b229867c84d8b51b07c777d4 (diff)
downloadpuszcza-cd7fa1fb5d499e51b9f2bc833159ee4581b8f2a8.tar.gz
puszcza-cd7fa1fb5d499e51b9f2bc833159ee4581b8f2a8.zip
Merge pull request #13 from 19pdh/storybook
Storybook
Diffstat (limited to 'components/Posts/PostList/PurePostList.vue')
-rw-r--r--components/Posts/PostList/PurePostList.vue91
1 files changed, 91 insertions, 0 deletions
diff --git a/components/Posts/PostList/PurePostList.vue b/components/Posts/PostList/PurePostList.vue
new file mode 100644
index 0000000..ace069f
--- /dev/null
+++ b/components/Posts/PostList/PurePostList.vue
@@ -0,0 +1,91 @@
+<template>
+  <div class="post-list">
+    <div v-if="loading" class="post-list-container">
+      <div class="loading-post" v-for="(_, index) in 4" :key="index"></div>
+    </div>
+    <div v-else-if="!posts" class="no-posts">Brak wpisów</div>
+    <transition name="fade-in">
+      <div v-if="posts && !loading" class="post-list-container">
+        <post-link
+          v-for="(post, index) in posts"
+          :key="index"
+          :route="post.route"
+          :title="post.title"
+          :description="post.description"
+        />
+      </div>
+    </transition>
+  </div>
+</template>
+
+<script>
+import PostLink from '../PostLink'
+
+export default {
+  name: 'PurePostList',
+  components: { PostLink },
+  props: {
+    posts: {
+      type: Array,
+      required: true
+    },
+    loading: {
+      type: Boolean,
+      required: false,
+      default: () => false
+    }
+  }
+}
+</script>
+
+<style scoped>
+.post-list {
+  width: 100%;
+  max-width: 900px;
+  justify-content: center;
+  margin: 0 auto;
+}
+
+.post-list-container {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: center;
+}
+
+@keyframes loading {
+  0%,
+  100% {
+    opacity: 1;
+  }
+  50% {
+    opacity: 0.5;
+  }
+}
+
+.loading-post {
+  background: #efefef;
+  animation: loading 1.5s ease-in-out infinite;
+  margin: 20px;
+  flex-basis: 410px;
+  width: 410px;
+  height: 250px;
+  text-align: left;
+}
+
+.no-posts {
+  text-align: center;
+}
+
+@keyframes fade-in {
+  0% {
+    opacity: 1;
+  }
+  100% {
+    opacity: 0;
+  }
+}
+
+.fade-in-enter-active {
+  animation: fade-in 0.3s reverse;
+}
+</style>