53 lines
1.0 KiB
Vue
53 lines
1.0 KiB
Vue
|
<template>
|
||
|
<div class="notification">
|
||
|
<div class="notification__item flex flex--row flex--align-center" v-for="(item, idx) in items" :key="idx">
|
||
|
<div class="notification__icon flex flex--column flex--center">
|
||
|
<icon-information v-if="item.type === 'info'"></icon-information>
|
||
|
<icon-alert v-else-if="item.type === 'error'"></icon-alert>
|
||
|
</div>
|
||
|
<div class="notification__content">
|
||
|
{{item.content}}
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import { mapState } from 'vuex';
|
||
|
|
||
|
export default {
|
||
|
computed: mapState('notification', [
|
||
|
'items',
|
||
|
]),
|
||
|
};
|
||
|
</script>
|
||
|
|
||
|
<style lang="scss">
|
||
|
@import 'common/variables.scss';
|
||
|
|
||
|
.notification {
|
||
|
position: absolute;
|
||
|
bottom: 0;
|
||
|
right: 0;
|
||
|
width: 100%;
|
||
|
max-width: 340px;
|
||
|
}
|
||
|
|
||
|
.notification__item {
|
||
|
margin: 10px;
|
||
|
padding: 10px 15px;
|
||
|
line-height: 1.4;
|
||
|
background-color: #000;
|
||
|
color: #fff;
|
||
|
font-size: 0.9em;
|
||
|
border-radius: $border-radius-base;
|
||
|
}
|
||
|
|
||
|
.notification__icon {
|
||
|
height: 20px;
|
||
|
width: 20px;
|
||
|
margin-right: 12px;
|
||
|
flex: none;
|
||
|
}
|
||
|
</style>
|