64 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | |
|     <div class="notifications">
 | |
|         <slide-y-up-transition :duration="transitionDuration"
 | |
|             group
 | |
|             mode="out-in"
 | |
|         >
 | |
|             <notification
 | |
|                 v-for="notification in notifications"
 | |
|                 v-bind="notification"
 | |
|                 :clickHandler="notification.onClick"
 | |
|                 :key="notification.timestamp.getTime()"
 | |
|                 @close="removeNotification"
 | |
|             >
 | |
|             </notification>
 | |
|         </slide-y-up-transition>
 | |
|     </div>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
|     import Notification from './Notification.vue';
 | |
|     import { SlideYUpTransition } from 'vue2-transitions';
 | |
| 
 | |
|     export default {
 | |
|         components: {
 | |
|             SlideYUpTransition,
 | |
|             Notification
 | |
|         },
 | |
| 
 | |
|         props: {
 | |
|             transitionDuration: {
 | |
|                 type: Number,
 | |
|                 default: 200
 | |
|             },
 | |
| 
 | |
|             overlap: {
 | |
|                 type: Boolean,
 | |
|                 default: false
 | |
|             }
 | |
|         },
 | |
| 
 | |
|         data() {
 | |
|             return {
 | |
|                 notifications: this.$notifications.state
 | |
|             };
 | |
|         },
 | |
| 
 | |
|         methods: {
 | |
|             removeNotification(timestamp) {
 | |
|                 this.$notifications.removeNotification(timestamp);
 | |
|             }
 | |
|         },
 | |
| 
 | |
|         created() {
 | |
|             this.$notifications.settings.overlap = this.overlap;
 | |
|         },
 | |
| 
 | |
|         watch: {
 | |
|             overlap: function (newVal) {
 | |
|                 this.$notifications.settings.overlap = newVal;
 | |
|             }
 | |
|         }
 | |
|     };
 | |
| </script>
 |