/ src / components / EventFeed.vue
EventFeed.vue
 1  <template lang="pug">
 2  
 3  .eventfeed
 4    div(v-for='(e, i) in eventstream'  :key="i")
 5        transition(name='fade' v-if='e.showEvent'  v-bind:style="{ left: e.randomX }"  @click='goTo(e)').feed.wiggle
 6            img.bubble(src='../assets/images/down.svg')
 7            //- .float(:style='{ color: e.randomColors[0], left: e.randomXs[0], top: e.randomYs[0] }') {{ e.meme }}
 8                //- span(v-if='e.type==="task-created"'  :style='{ color: e.randomColors[1], left: e.randomXs[1], top: e.randomYs[1] }') -{{ e.name }}
 9  </template>
10  
11  <script>
12  
13  export default {
14      computed:{
15          eventstream(){
16              return this.$store.state.eventstream
17          },
18      },
19      methods: {
20          goTo(ev){
21              if (ev.memberId){
22                  this.$store.commit('goDeeper',ev.memberId )
23              }
24              if (ev.subTask){
25                  this.$store.commit('goDeeper',ev.subTask )
26              } else if  (ev.taskId){
27                  this.$store.commit('goDeeper',ev.taskId )
28              }
29              if (ev.inId){
30                  this.$store.commit('goDeeper',ev.inId )
31              }
32          }
33      }
34  }
35  </script>
36  
37  <style lang='stylus' scoped>
38  @import '../styles/breakpoints';
39  @import '../styles/colours';
40  
41  .feed
42      position: fixed
43      top: 100vh - 20em
44      left: 45%
45      height: 4em
46      width: 4em
47      z-index: 10000000
48      opacity: 0.456
49      cursor: pointer
50  
51  .feed img
52      height: 4em
53      width: 4em
54  
55  img
56      height: 170px
57      position: absolute
58      top: 0
59      left: 0
60  
61  // transition doesn't work
62  .fade-enter-active
63      transition: top 7s
64  
65  .fade-leave-active
66      transition: top 7s
67      top: -11em
68  
69  .fade-enter
70      top: 99%
71  
72  .fade-leave-to /* .fade-leave-active below version 2.1.8 */
73      top: -10em
74  
75  @keyframes wiggle {
76      0%, 100% { transform: translate(-16px, 0) }
77      25% { transform: translate(-8px, 0) }
78      50% { transform: translate(16px, 0) }
79      75% { transform: translate(8px, 0) }
80  }
81  
82  .wiggle {
83    animation: wiggle 1s infinite
84    transition-timing-function: ease
85  }
86  
87  .float
88      position: relative
89      left: 30%
90      top: 40%
91      font-family: "Comic Sans MS"
92      text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5)
93  
94  .bubble
95      opacity: 0.5
96  </style>