Style messages sent by admin differently
This commit is contained in:
parent
a2dd26348c
commit
1198f007fa
5 changed files with 40 additions and 9 deletions
|
|
@ -1,5 +1,8 @@
|
||||||
@import "@/assets/css/main.scss";
|
@import "@/assets/css/main.scss";
|
||||||
|
|
||||||
|
$admin-bg: black;
|
||||||
|
$admin-fg: white;
|
||||||
|
|
||||||
.chat-root {
|
.chat-root {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0px;
|
left: 0px;
|
||||||
|
|
@ -151,6 +154,9 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
max-width: 70%;
|
max-width: 70%;
|
||||||
}
|
}
|
||||||
|
&.from-admin .bubble {
|
||||||
|
background-color: $admin-bg;
|
||||||
|
}
|
||||||
.audio-bubble {
|
.audio-bubble {
|
||||||
overflow: scroll;
|
overflow: scroll;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|
@ -264,6 +270,9 @@
|
||||||
font-size: 0.8rem;
|
font-size: 0.8rem;
|
||||||
color: #888888;
|
color: #888888;
|
||||||
}
|
}
|
||||||
|
.from-admin & {
|
||||||
|
color: $admin-fg;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.original-message {
|
.original-message {
|
||||||
|
|
@ -332,15 +341,16 @@
|
||||||
.quick-reaction-container {
|
.quick-reaction-container {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
background-color: #000000;
|
background-color: #000000;
|
||||||
border: 3px solid white;
|
border: 2px solid white;
|
||||||
border-radius: 15px;
|
border-radius: 13px;
|
||||||
height: 30px;
|
height: 26px;
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
right: 10px;
|
right: 10px;
|
||||||
top: -12px;
|
top: -15px;
|
||||||
|
padding: 0px 6px;
|
||||||
.quick-reaction {
|
.quick-reaction {
|
||||||
margin: 0px 6px;
|
margin: 0px 0px;
|
||||||
padding: 2px;
|
padding: 1px;
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
&:hover {
|
&:hover {
|
||||||
border: 1px solid #888888;
|
border: 1px solid #888888;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="messageIn">
|
<div :class="messageClasses">
|
||||||
<v-avatar class="avatar" size="32" color="#ededed">
|
<v-avatar class="avatar" size="32" color="#ededed">
|
||||||
<img v-if="messageEventAvatar(event)" :src="messageEventAvatar(event)" />
|
<img v-if="messageEventAvatar(event)" :src="messageEventAvatar(event)" />
|
||||||
<span v-else class="white--text headline">{{
|
<span v-else class="white--text headline">{{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="messageIn">
|
<div :class="messageClasses">
|
||||||
<v-avatar class="avatar" size="32" color="#ededed">
|
<v-avatar class="avatar" size="32" color="#ededed">
|
||||||
<img v-if="messageEventAvatar(event)" :src="messageEventAvatar(event)" />
|
<img v-if="messageEventAvatar(event)" :src="messageEventAvatar(event)" />
|
||||||
<span v-else class="white--text headline">{{
|
<span v-else class="white--text headline">{{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="messageIn">
|
<div :class="messageClasses">
|
||||||
<v-avatar class="avatar" size="32" color="#ededed">
|
<v-avatar class="avatar" size="32" color="#ededed">
|
||||||
<img v-if="messageEventAvatar(event)" :src="messageEventAvatar(event)" />
|
<img v-if="messageEventAvatar(event)" :src="messageEventAvatar(event)" />
|
||||||
<span v-else class="white--text headline">{{
|
<span v-else class="white--text headline">{{
|
||||||
|
|
|
||||||
|
|
@ -111,6 +111,14 @@ export default {
|
||||||
return lines.join('\n');
|
return lines.join('\n');
|
||||||
}
|
}
|
||||||
return this.event.getContent().body;
|
return this.event.getContent().body;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Classes to set for the message. Currently only for "messageIn", TODO: - detect messageIn or messageOut.
|
||||||
|
*/
|
||||||
|
|
||||||
|
messageClasses() {
|
||||||
|
return {'messageIn':true,'from-admin':this.senderIsAdminOrModerator(this.event)}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
@ -154,6 +162,19 @@ export default {
|
||||||
return null;
|
return null;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return true if the event sender has a powel level > 0, e.g. is moderator or admin of some sort.
|
||||||
|
*/
|
||||||
|
senderIsAdminOrModerator(event) {
|
||||||
|
if (this.room) {
|
||||||
|
const member = this.room.getMember(event.getSender());
|
||||||
|
if (member) {
|
||||||
|
return member.powerLevel > 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
|
||||||
formatTime(time) {
|
formatTime(time) {
|
||||||
const date = new Date();
|
const date = new Date();
|
||||||
date.setTime(time);
|
date.setTime(time);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue