Take back emojis and other small tweaks

This commit is contained in:
Noah 2023-07-01 11:39:08 -07:00
parent 0612f76979
commit b6881919ff
4 changed files with 43 additions and 6 deletions

View File

@ -19,6 +19,11 @@
background-color: rgba(15, 129, 204, 0.25) !important; background-color: rgba(15, 129, 204, 0.25) !important;
} }
.tag.is-success {
background-color: #15241d !important;
color: #85dfb6 !important;
}
.has-text-dark { .has-text-dark {
/* note: this css file otherwise didn't override this, dark's always dark, brighten it! */ /* note: this css file otherwise didn't override this, dark's always dark, brighten it! */
color: #b5b5b5 !important; color: #b5b5b5 !important;

View File

@ -76,7 +76,7 @@ body {
.autoscroll-field { .autoscroll-field {
position: absolute; position: absolute;
z-index: 39; /* just below modal shadow */ z-index: 39; /* just below modal shadow */
right: 6px; right: 12px;
bottom: 4px; bottom: 4px;
} }

View File

@ -65,9 +65,9 @@ const app = Vue.createApp({
}, },
reactions: [ reactions: [
['❤️', '👍', '😂', '😉', '😢', '😡', '🥰'], ['❤️', '👍', '😂', '😉', '😢', '😡', '🥰'],
['😏', '🔥', '😈', '🍑', '🍆', '💦', '🍌'], ['👋', '🔥', '😈', '🍑', '🍆', '💦', '🍌'],
['😋', '⭐', '😇', '😴', '😱', '👀', '🎃'], ['😋', '⭐', '😇', '😴', '😱', '👀', '🎃'],
['🙈', '🙉', '🙊', '☀️', '🌈', '✨', '🎂'] ['😏', '🙈', '🙉', '🙊', '☀️', '🌈', '🎂']
] ]
}, },
@ -425,9 +425,22 @@ const app = Vue.createApp({
this.messageReactions[msgID][emoji] = []; this.messageReactions[msgID][emoji] = [];
} }
// don't count double reactions of same emoji from same chatter // if they double sent the same reaction, it counts as a removal
for (let reactor of this.messageReactions[msgID][emoji]) { let unreact = false;
if (reactor === who) return; for (let i = 0; i < this.messageReactions[msgID][emoji].length; i++) {
let reactor = this.messageReactions[msgID][emoji][i];
if (reactor === who) {
this.messageReactions[msgID][emoji].splice(i, 1);
unreact = true;
}
}
// if this emoji reaction is empty, clean it up
if (unreact) {
if (this.messageReactions[msgID][emoji].length === 0) {
delete(this.messageReactions[msgID][emoji]);
}
return;
} }
this.messageReactions[msgID][emoji].push(who); this.messageReactions[msgID][emoji].push(who);
@ -489,6 +502,13 @@ const app = Vue.createApp({
username = this.normalizeUsername(username); username = this.normalizeUsername(username);
let mute = this.muted[username] == undefined; let mute = this.muted[username] == undefined;
if (mute) { if (mute) {
if (!window.confirm(
`Do you want to mute ${username}? If muted, you will no longer see their `+
`chat messages or any DMs they send you going forward. Also, ${username} will `+
`not be able to see whether your webcam is active until you unmute them.`
)) {
return;
}
this.muted[username] = true; this.muted[username] = true;
} else { } else {
delete this.muted[username]; delete this.muted[username];
@ -1055,6 +1075,17 @@ const app = Vue.createApp({
if (!this.hasReactions(msg)) return []; if (!this.hasReactions(msg)) return [];
return this.messageReactions[msg.msgID]; return this.messageReactions[msg.msgID];
}, },
iReacted(msg, emoji) {
// test whether the current user has reacted
if (this.messageReactions[msg.msgID] != undefined && this.messageReactions[msg.msgID][emoji] != undefined) {
for (let reactor of this.messageReactions[msg.msgID][emoji]) {
if (reactor === this.username) {
return true;
}
}
}
return false;
},
activeChannels() { activeChannels() {
// List of current channels, unread indicators etc. // List of current channels, unread indicators etc.

View File

@ -921,6 +921,7 @@
<div v-if="hasReactions(msg)" class="mt-1"> <div v-if="hasReactions(msg)" class="mt-1">
<span v-for="(users, emoji) in getReactions(msg)" <span v-for="(users, emoji) in getReactions(msg)"
class="tag is-secondary mr-1 cursor-pointer" class="tag is-secondary mr-1 cursor-pointer"
:class="{'is-success is-light': iReacted(msg, emoji), 'is-secondary': !iReacted(msg, emoji)}"
:title="emoji + ' by: ' + users.join(', ')" :title="emoji + ' by: ' + users.join(', ')"
@click="sendReact(msg, emoji)"> @click="sendReact(msg, emoji)">
[[emoji]] <small class="ml-1">[[users.length]]</small> [[emoji]] <small class="ml-1">[[users.length]]</small>