adding support for trusted, verified/staff/danger badges, wip

This commit is contained in:
or-else
2021-06-25 12:27:03 -07:00
parent 3d0d7048aa
commit 58426cd0ee
19 changed files with 99 additions and 24 deletions
+2 -1
View File
@@ -175,5 +175,6 @@
"channel": "Sender", "channel": "Sender",
"drafty_attachment": "Dateianhang", "drafty_attachment": "Dateianhang",
"drafty_form": "Formular:", "drafty_form": "Formular:",
"drafty_image": "Bild" "drafty_image": "Bild",
"menu_item_restore_topic": ":!![MISSING]!!:[object Object]"
} }
+1
View File
@@ -105,6 +105,7 @@
"menu_item_info": "Info", "menu_item_info": "Info",
"menu_item_member_delete": "Remove", "menu_item_member_delete": "Remove",
"menu_item_mute": "Mute", "menu_item_mute": "Mute",
"menu_item_restore_topic": "Restore",
"menu_item_send_retry": "Retry", "menu_item_send_retry": "Retry",
"menu_item_unblock": "Unblock", "menu_item_unblock": "Unblock",
"menu_item_unmute": "Unmute", "menu_item_unmute": "Unmute",
+2 -1
View File
@@ -175,5 +175,6 @@
"channel": "canal", "channel": "canal",
"drafty_attachment": "Archivo", "drafty_attachment": "Archivo",
"drafty_form": "Formulario:", "drafty_form": "Formulario:",
"drafty_image": "Imagen" "drafty_image": "Imagen",
"menu_item_restore_topic": ":!![MISSING]!!:[object Object]"
} }
+4
View File
@@ -421,6 +421,10 @@
"defaultMessage": "Mute", "defaultMessage": "Mute",
"description": "Turn off notifications" "description": "Turn off notifications"
}, },
"menu_item_restore_topic": {
"defaultMessage": "Restore",
"description": "Restore topic from archive"
},
"menu_item_send_retry": { "menu_item_send_retry": {
"defaultMessage": "Retry", "defaultMessage": "Retry",
"description": "Retry sending message" "description": "Retry sending message"
+2 -1
View File
@@ -178,5 +178,6 @@
"channel": "채널", "channel": "채널",
"drafty_attachment": "부착", "drafty_attachment": "부착",
"drafty_form": "형태:", "drafty_form": "형태:",
"drafty_image": "이미지" "drafty_image": "이미지",
"menu_item_restore_topic": ":!![MISSING]!!:[object Object]"
} }
+2 -1
View File
@@ -175,5 +175,6 @@
"title_manage_tags": "Administrează", "title_manage_tags": "Administrează",
"drafty_attachment": "Atasament", "drafty_attachment": "Atasament",
"drafty_form": "Formă:", "drafty_form": "Formă:",
"drafty_image": "Imagine" "drafty_image": "Imagine",
"menu_item_restore_topic": ":!![MISSING]!!:[object Object]"
} }
+2 -1
View File
@@ -175,5 +175,6 @@
"channel": "канал", "channel": "канал",
"drafty_attachment": "Аттачмент", "drafty_attachment": "Аттачмент",
"drafty_form": "Форма:", "drafty_form": "Форма:",
"drafty_image": "Картинка" "drafty_image": "Картинка",
"menu_item_restore_topic": ":!![MISSING]!!:[object Object]"
} }
+2 -1
View File
@@ -175,5 +175,6 @@
"channel": "频道", "channel": "频道",
"drafty_attachment": "附件", "drafty_attachment": "附件",
"drafty_form": "形式:", "drafty_form": "形式:",
"drafty_image": "图像" "drafty_image": "图像",
"menu_item_restore_topic": ":!![MISSING]!!:[object Object]"
} }
+1
View File
@@ -285,6 +285,7 @@
"menu_item_info": "Info", "menu_item_info": "Info",
"menu_item_member_delete": "Remove", "menu_item_member_delete": "Remove",
"menu_item_mute": "Mute", "menu_item_mute": "Mute",
"menu_item_restore_topic": "Restore",
"menu_item_send_retry": "Retry", "menu_item_send_retry": "Retry",
"menu_item_unblock": "Unblock", "menu_item_unblock": "Unblock",
"menu_item_unmute": "Unmute", "menu_item_unmute": "Unmute",
+2 -1
View File
@@ -760,6 +760,7 @@ class TinodeWeb extends React.Component {
// Contacts expect c.topic to be set. // Contacts expect c.topic to be set.
c.topic = c.name; c.topic = c.name;
} }
newState.chatList.push(c); newState.chatList.push(c);
if (this.state.topicSelected == c.topic) { if (this.state.topicSelected == c.topic) {
newState.topicSelectedOnline = c.online; newState.topicSelectedOnline = c.online;
@@ -1373,7 +1374,7 @@ class TinodeWeb extends React.Component {
subscribed && deleter ? 'messages_clear_hard' : null, subscribed && deleter ? 'messages_clear_hard' : null,
muted ? (blocked ? null : 'topic_unmute') : 'topic_mute', muted ? (blocked ? null : 'topic_unmute') : 'topic_mute',
self_blocked ? 'topic_unblock' : 'topic_block', self_blocked ? 'topic_unblock' : 'topic_block',
!archived ? 'topic_archive' : null, !archived ? 'topic_restore' : 'topic_archive',
'topic_delete' 'topic_delete'
]; ];
} }
+3 -2
View File
@@ -1,6 +1,7 @@
import React from 'react'; import React from 'react';
const icon_mapping = {'muted': 'notifications_off', 'banned': 'block'}; const icon_mapping = {'muted': 'notifications_off', 'banned': 'block',
'verified': 'verified', 'staff': 'verified_user', 'dangerous': 'dangerous'};
/* Contact's labels: [you], or icons [muted], [blocked] */ /* Contact's labels: [you], or icons [muted], [blocked] */
export default class ContactBadges extends React.PureComponent { export default class ContactBadges extends React.PureComponent {
@@ -10,7 +11,7 @@ export default class ContactBadges extends React.PureComponent {
badges = []; badges = [];
this.props.badges.map(function(b) { this.props.badges.map(function(b) {
if (b.icon) { if (b.icon) {
badges.push(<i className="material-icons as-badge" key={b.key || b.icon}>{icon_mapping[b.icon]}</i>); badges.push(<i className="material-icons as-badge" key={b.key || b.icon}>{icon_mapping[b.icon] || b.icon}</i>);
} else { } else {
const style = 'badge' + (b.color ? ' ' + b.color : ''); const style = 'badge' + (b.color ? ' ' + b.color : '');
badges.push(<span className={style} key={b.key || b.name}>{b.name}</span>); badges.push(<span className={style} key={b.key || b.name}>{b.name}</span>);
+3
View File
@@ -105,6 +105,9 @@ class ContactList extends React.Component {
isChannel={isChannel} isChannel={isChannel}
onSelected={this.props.onTopicSelected} onSelected={this.props.onTopicSelected}
showContextMenu={this.props.showContextMenu} showContextMenu={this.props.showContextMenu}
isVerified={c.isVerified()}
isStaff={c.isStaff()}
isDangerous={c.isDangerous()}
item={key} item={key}
index={contactNodes.length} index={contactNodes.length}
key={key} /> key={key} />
+10 -1
View File
@@ -65,6 +65,15 @@ class Contact extends React.Component {
const avatar = this.props.avatar ? this.props.avatar : true; const avatar = this.props.avatar ? this.props.avatar : true;
const badges = this.props.badges ? this.props.badges.slice() : []; const badges = this.props.badges ? this.props.badges.slice() : [];
const icon_badges = []; const icon_badges = [];
if (this.props.isVerified) {
icon_badges.push({icon: 'verified'});
}
if (this.props.isStaff) {
icon_badges.push({icon: 'staff'});
}
if (this.props.isDangerous) {
icon_badges.push({icon: 'dangerous'});
}
if (this.props.acs) { if (this.props.acs) {
if (this.props.showMode) { if (this.props.showMode) {
badges.push({name: this.props.acs.getMode(), key: 'mode'}); badges.push({name: this.props.acs.getMode(), key: 'mode'});
@@ -101,7 +110,7 @@ class Contact extends React.Component {
<div className="text-box"> <div className="text-box">
<div><span className="contact-title">{title}</span> <div><span className="contact-title">{title}</span>
{this.props.isChannel ? <img src="/img/channel.png" className="channel" alt="channel" /> : null} {this.props.isChannel ? <img src="/img/channel.png" className="channel" alt="channel" /> : null}
<UnreadBadge count={this.props.unread} /><ContactBadges badges={icon_badges} /> <ContactBadges badges={icon_badges} /><UnreadBadge count={this.props.unread} />
</div> </div>
{this.props.showMode ? {this.props.showMode ?
<span><ContactBadges badges={badges} /></span> : <span><ContactBadges badges={badges} /></span> :
+56 -7
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3 -3
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long