2018-07-08 10:50:11 +00:00
|
|
|
<template>
|
|
|
|
<span
|
2019-11-05 10:36:44 +00:00
|
|
|
:class="['user', nickColor, {active: active}]"
|
2018-07-08 10:50:11 +00:00
|
|
|
:data-name="user.nick"
|
2018-07-11 07:33:11 +00:00
|
|
|
role="button"
|
2020-01-27 09:44:36 +00:00
|
|
|
v-on="onHover ? {mouseenter: hover} : {}"
|
2019-11-23 14:26:20 +00:00
|
|
|
@click.prevent="openContextMenu"
|
|
|
|
@contextmenu.prevent="openContextMenu"
|
2020-09-01 08:39:36 +00:00
|
|
|
><slot>{{ mode }}{{ user.nick }}</slot></span
|
2019-07-17 09:33:59 +00:00
|
|
|
>
|
2018-07-08 10:50:11 +00:00
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
2020-03-16 17:58:40 +00:00
|
|
|
import eventbus from "../js/eventbus";
|
2019-11-16 17:24:03 +00:00
|
|
|
import colorClass from "../js/helpers/colorClass";
|
2019-11-05 10:36:44 +00:00
|
|
|
|
2018-07-08 10:50:11 +00:00
|
|
|
export default {
|
|
|
|
name: "Username",
|
|
|
|
props: {
|
|
|
|
user: Object,
|
2018-07-10 20:29:53 +00:00
|
|
|
active: Boolean,
|
2018-07-10 23:25:21 +00:00
|
|
|
onHover: Function,
|
|
|
|
},
|
2019-11-05 10:36:44 +00:00
|
|
|
computed: {
|
2020-09-01 08:39:36 +00:00
|
|
|
mode() {
|
|
|
|
// Message objects have a singular mode, but user objects have modes array
|
|
|
|
if (this.user.modes) {
|
|
|
|
return this.user.modes[0];
|
|
|
|
}
|
|
|
|
|
|
|
|
return this.user.mode;
|
|
|
|
},
|
2019-11-05 10:36:44 +00:00
|
|
|
nickColor() {
|
|
|
|
return colorClass(this.user.nick);
|
|
|
|
},
|
|
|
|
},
|
2018-07-10 23:25:21 +00:00
|
|
|
methods: {
|
|
|
|
hover() {
|
2018-07-11 07:33:11 +00:00
|
|
|
return this.onHover(this.user);
|
2018-07-10 23:25:21 +00:00
|
|
|
},
|
2019-11-23 14:26:20 +00:00
|
|
|
openContextMenu(event) {
|
2020-03-16 17:58:40 +00:00
|
|
|
eventbus.emit("contextmenu:user", {
|
2019-11-23 14:26:20 +00:00
|
|
|
event: event,
|
|
|
|
user: this.user,
|
|
|
|
});
|
2019-11-09 22:21:34 +00:00
|
|
|
},
|
2018-07-08 10:50:11 +00:00
|
|
|
},
|
|
|
|
};
|
|
|
|
</script>
|