Skip to content

Commit

Permalink
merge: branch 'master' into production
Browse files Browse the repository at this point in the history
  • Loading branch information
insertish committed Sep 20, 2022
2 parents df20ab7 + eb4670e commit 40d3356
Showing 1 changed file with 14 additions and 39 deletions.
53 changes: 14 additions & 39 deletions src/components/common/messaging/bars/TypingIndicator.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { observer } from "mobx-react-lite";
import { Channel, Member } from "revolt.js";
import { Channel } from "revolt.js";
import styled from "styled-components/macro";

import { Text } from "preact-i18n";
Expand Down Expand Up @@ -60,64 +60,39 @@ const Base = styled.div`
`;

export default observer(({ channel }: Props) => {
const client = channel.client;

const users = channel.typing.filter(
(x) =>
typeof x !== "undefined" &&
x._id !== x.client.user!._id &&
x.relationship !== "Blocked",
);

const members = users.map((user) => {
return client.members.getKey({
server: channel.server_id!,
user: user!._id,
});
});

const getName = (member: Member) => {
return member.nickname === null
? member.user?.username
: member.nickname;
};

const getAvatar = (member: Member) => {
const memberAvatarURL = member.generateAvatarURL({
max_side: 256,
});

return memberAvatarURL === undefined
? member.user?.generateAvatarURL({ max_side: 256 })
: memberAvatarURL;
};

if (members.length > 0) {
members.sort((a, b) =>
a!._id.user.toUpperCase().localeCompare(b!._id.user.toUpperCase()),
if (users.length > 0) {
users.sort((a, b) =>
a!._id.toUpperCase().localeCompare(b!._id.toUpperCase()),
);

let text;
if (members.length >= 5) {
if (users.length >= 5) {
text = <Text id="app.main.channel.typing.several" />;
} else if (members.length > 1) {
const memberlist = [...members].map((x) => getName(x!));
const member = memberlist.pop();
} else if (users.length > 1) {
const userlist = [...users].map((x) => x!.username);
const user = userlist.pop();

text = (
<Text
id="app.main.channel.typing.multiple"
fields={{
user: member,
userlist: memberlist.join(", "),
user,
userlist: userlist.join(", "),
}}
/>
);
} else {
text = (
<Text
id="app.main.channel.typing.single"
fields={{ user: getName(members[0]!) }}
fields={{ user: users[0]!.username }}
/>
);
}
Expand All @@ -126,11 +101,11 @@ export default observer(({ channel }: Props) => {
<Base>
<div>
<div className="avatars">
{members.map((member) => (
{users.map((user) => (
<img
key={member!._id.user}
key={user!._id}
loading="eager"
src={getAvatar(member!)}
src={user!.generateAvatarURL({ max_side: 256 })}
/>
))}
</div>
Expand Down

0 comments on commit 40d3356

Please sign in to comment.