Newer
Older
import { mapActions, mapGetters } from 'vuex';
export default {
name: 'courseware-companion-overlay',
render(createElement) {
return null;
},
computed: {
...mapGetters({
showCompanion: 'showCompanionOverlay',
msgCompanion: 'msgCompanionOverlay',
styleCompanion: 'styleCompanionOverlay',
showToolbar: 'showToolbar',
}),
msgType() {
let type = 'info';
switch (this.styleCompanion) {
case 'special':
case 'unsure':
type = 'warning';
break;
case 'sad':
type = 'error';
break;
case 'happy':
type = 'success';
break
case 'pointing':
case 'curious':
}
return type;
}
...mapActions({
coursewareShowCompanionOverlay: 'coursewareShowCompanionOverlay'
}),
this.coursewareShowCompanionOverlay(false);
},
},
watch: {
showCompanion(newValue, oldValue) {
let view = this;
if (newValue === true && oldValue === false) {
setTimeout(() => {
view.hideCompanion();
}, 4000);
}
},
showToolbar(newValue, oldValue) {
// hide companion when toolbar is closed
if (oldValue === true && newValue === false) {
this.hideCompanion();
}
},
msgCompanion: {
handler(current) {
if (current.trim().length === 0) {
return;
}
const notification = {
type: this.msgType,
message: current
};
this.globalEmit('push-system-notification', notification);
},
immediate: true