diff options
author | Patryk Niedźwiedziński <pniedzwiedzinski19@gmail.com> | 2019-12-05 11:56:11 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-05 11:56:11 -0500 |
commit | cd7fa1fb5d499e51b9f2bc833159ee4581b8f2a8 (patch) | |
tree | be10296e0268295db20c536af045c5df6c829a0e /components/Posts/PostList/PurePostList.vue | |
parent | 070b7725be5fb0db486e9370bea5648c16c8bbfe (diff) | |
parent | 34908ab59f58f3d5b229867c84d8b51b07c777d4 (diff) | |
download | puszcza-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.vue | 91 |
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> |