From e0e79d3375c554de8e9843a8d9f37638153ff7c9 Mon Sep 17 00:00:00 2001
From: Maria Rushkova <66270386+mrushkova@users.noreply.github.com>
Date: Thu, 4 Nov 2021 15:18:42 +0100
Subject: [PATCH] Fix group creation (#112)
---
.../src/components/Channels/Channel.tsx | 4 +-
.../src/components/Channels/Channels.tsx | 16 ++++----
.../src/components/Channels/EmptyChannel.tsx | 7 +++-
packages/react-chat/src/components/Chat.tsx | 1 +
.../src/components/Chat/ChatBody.tsx | 4 +-
.../src/components/Chat/ChatCreation.tsx | 40 +++++++++++--------
.../src/components/Members/Member.tsx | 19 +++++----
.../components/NarrowMode/NarrowChannels.tsx | 2 +-
8 files changed, 52 insertions(+), 41 deletions(-)
diff --git a/packages/react-chat/src/components/Channels/Channel.tsx b/packages/react-chat/src/components/Channels/Channel.tsx
index f312aed..d80d366 100644
--- a/packages/react-chat/src/components/Channels/Channel.tsx
+++ b/packages/react-chat/src/components/Channels/Channel.tsx
@@ -66,7 +66,7 @@ export function Channel({
) : (
"#"
)}{" "}
- {channel.name.slice(0, 10)}
+ {channel.name}
{activeView && (
{channel.description}
@@ -103,8 +103,6 @@ export const ChannelInfo = styled.div`
const ChannelTextInfo = styled.div`
display: flex;
flex-direction: column;
- text-overflow: ellipsis;
- overflow: hidden;
`;
export const ChannelLogo = styled.div`
diff --git a/packages/react-chat/src/components/Channels/Channels.tsx b/packages/react-chat/src/components/Channels/Channels.tsx
index a4b1c74..6e891b2 100644
--- a/packages/react-chat/src/components/Channels/Channels.tsx
+++ b/packages/react-chat/src/components/Channels/Channels.tsx
@@ -12,7 +12,7 @@ interface ChannelsProps {
activeChannelId: string;
channels: ChannelData[];
membersList: string[];
- groupList: string[];
+ groupList: string[][];
setCreateChat: (val: boolean) => void;
}
@@ -66,20 +66,18 @@ export function Channels({
{groupList.length > 0 &&
groupList.map((group) => (
{
onCommunityClick({
- id: group,
- name: group.slice(0, 10),
- description: "Contact",
+ id: group.join(""),
+ name: group.join(", ").slice(0, 10),
});
setCreateChat(false);
}}
diff --git a/packages/react-chat/src/components/Channels/EmptyChannel.tsx b/packages/react-chat/src/components/Channels/EmptyChannel.tsx
index 00f74a9..7d804b2 100644
--- a/packages/react-chat/src/components/Channels/EmptyChannel.tsx
+++ b/packages/react-chat/src/components/Channels/EmptyChannel.tsx
@@ -11,6 +11,8 @@ type EmptyChannelProps = {
};
export function EmptyChannel({ channel }: EmptyChannelProps) {
+ const groupName = channel.name.split(", ");
+
return (
@@ -34,8 +36,9 @@ export function EmptyChannel({ channel }: EmptyChannelProps) {
) : channel.type === "group" ? (
- You created a group with {channel.name.slice(1, -1)} and{" "}
- {channel.name.at(-1)}
+ You created a group with{" "}
+ {groupName.slice(groupName.length - 1)} and{" "}
+ {groupName.at(-1)}
) : (
diff --git a/packages/react-chat/src/components/Chat.tsx b/packages/react-chat/src/components/Chat.tsx
index 43a35fb..8a76d8b 100644
--- a/packages/react-chat/src/components/Chat.tsx
+++ b/packages/react-chat/src/components/Chat.tsx
@@ -130,6 +130,7 @@ export function Chat({
)}
{createChat && communityData && (
void;
channels: ChannelData[];
membersList: string[];
- groupList: string[];
+ groupList: [][];
setMembersList: any;
setGroupList: any;
setCreateChat: (val: boolean) => void;
@@ -88,6 +88,7 @@ export function ChatBody({
{editGroup && community ? (
)}
+
([]);
+ const { contacts } = useMessengerContext();
+
const addMember = (member: string) => {
setStyledGroup((prevMembers: string[]) => {
if (prevMembers.find((mem) => mem === member)) {
@@ -40,13 +47,14 @@ export function ChatCreation({
const removeMember = (member: string) => {
const idx = styledGroup.indexOf(member);
- styledGroup.splice(idx, 1);
+ setStyledGroup(styledGroup.splice(idx, 1));
};
const createChat = (group: string[]) => {
group.length > 1
- ? (setGroupList((prevGroups: string[]) => {
- [...prevGroups, group];
+ ? (setGroupList((prevGroups: string[][]) => {
+ prevGroups.push(group);
+ return prevGroups;
}),
setActiveChannel({
id: group.join(""),
@@ -64,6 +72,7 @@ export function ChatCreation({
id: group[0],
name: group[0],
type: "dm",
+ description: "Contact",
}));
setCreateChat(false);
};
@@ -120,19 +129,16 @@ export function ChatCreation({
Contacts
- {community.membersList.map((member) => (
- addMember(member)}
- />
- ))}
+ {contacts
+ .filter((e) => e.id != bufToHex(identity.publicKey))
+ .map((contact) => (
+ addMember(contact.id)}
+ />
+ ))}
)}
diff --git a/packages/react-chat/src/components/Members/Member.tsx b/packages/react-chat/src/components/Members/Member.tsx
index 304b6c2..0b11528 100644
--- a/packages/react-chat/src/components/Members/Member.tsx
+++ b/packages/react-chat/src/components/Members/Member.tsx
@@ -9,9 +9,10 @@ import { UserIcon } from "../Icons/UserIcon";
interface MemberProps {
member: string;
isOnline?: boolean;
- setShowChannels: (val: boolean) => void;
+ setShowChannels?: (val: boolean) => void;
setShowMembers?: (val: boolean) => void;
setMembersList?: any;
+ onClick?: () => void;
}
export function Member({
@@ -20,11 +21,12 @@ export function Member({
setShowChannels,
setShowMembers,
setMembersList,
+ onClick,
}: MemberProps) {
const narrow = useNarrow();
const switchMemberList = useCallback(() => {
- setShowChannels(false);
+ if (setShowChannels) setShowChannels(false);
if (setShowMembers) setShowMembers(false);
}, [setShowMembers]);
@@ -36,17 +38,17 @@ export function Member({
return [...prevMembers, member];
}
});
- setShowChannels(true);
+ if (setShowChannels) setShowChannels(true);
};
const [showMenu, setShowMenu] = useState(false);
+ const onMemberClick = () => {
+ narrow && setShowMembers ? switchMemberList() : startDialog(member);
+ };
+
return (
- {
- narrow && setShowMembers ? switchMemberList() : startDialog(member);
- }}
- >
+
void;
channels: ChannelData[];
membersList: string[];
- groupList: string[];
+ groupList: string[][];
setCreateChat: (val: boolean) => void;
}