-
Notifications
You must be signed in to change notification settings - Fork 0
/
app-mixin.js
34 lines (28 loc) · 1.03 KB
/
app-mixin.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
'use strict';
Vue.mixin({
created: function () {
if (!this.$options.name || !this.$options.name.startsWith('app-')) {
return;
}
if (this.$options.vars) {
this.$options.vars.forEach((variable) => {
var key = this.$options.name + '-' + variable;
var value = this.$store.state.app.vars[key];
if (value !== undefined) {
this[variable] = value;
}
this.$watch(variable, function (value) {
this.$store.commit('set-app-var', { key, value });
});
});
}
this.$app = {};
this.$app.text = (text) => {
return typeof text === 'object' ? this.$t(text._, text) : text;
};
this.$app.icon = ({ icon, size = 'large' }) => {
size = size === 'large' ? 56 : size === 'medium' ? 36 : 18;
return 'https://render-eu.worldofwarcraft.com/icons/' + size + '/' + icon + '.jpg';
}
}
});