Skip to content

Commit

Permalink
Merge pull request #2440 from daostack/dev
Browse files Browse the repository at this point in the history
Sprint 31 Group messages
  • Loading branch information
MeyerPV authored Dec 29, 2023
2 parents e0206a2 + d6bf058 commit d683879
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ import {
import { checkHasAccessToChat } from "@/pages/common/components/CommonTabPanels/components";
import { InternalLinkData } from "@/shared/components";
import { ChatType } from "@/shared/constants";
import { useUserById } from "@/shared/hooks/useCases";
import { useUsersByIds } from "@/shared/hooks/useCases";
import {
Circles,
CirclesPermissions,
CommonMember,
DirectParent,
PredefinedTypes,
} from "@/shared/models";
import { getUserName } from "@/shared/utils";
import { getUserName, joinWithLast } from "@/shared/utils";
import { Header } from "./components";
import styles from "./MobileChat.module.scss";

Expand Down Expand Up @@ -60,25 +60,34 @@ const MobileChat: FC<ChatProps> = (props) => {
onInternalLinkClick,
} = props;
const { setIsShowFeedItemDetailsModal } = useChatContext();
const {
fetchUser: fetchDMUser,
setUser: setDMUser,
data: dmUser,
} = useUserById();
const { fetchUsers: fetchDMUsers, data: dmUsers } = useUsersByIds();
const user = useSelector(selectUser());
const userId = user?.uid;
const userCircleIds = useMemo(
() => Object.values(commonMember?.circles.map ?? {}),
[commonMember?.circles.map],
);
const dmUserId = chatItem?.chatChannel?.participants.filter(
(participant) => participant !== userId,
)[0];
const title =
getUserName(dmUser) ||
(chatItem?.discussion?.predefinedType === PredefinedTypes.General
? commonName
: chatItem?.discussion?.title || "");

const chatParticipants = chatItem?.chatChannel?.participants;
const isDM = chatParticipants && chatParticipants.length > 0;
const isGroupMessage = chatParticipants && chatParticipants.length > 2;

const dmUserIds = useMemo(
() =>
isDM
? chatParticipants.filter((participant) => participant !== userId)
: [],
[isDM, userId],
);

const dmUsersNames = dmUsers?.map((user) => getUserName(user));
const dmFirstNames = dmUsers?.map((user) => user.firstName);
const dmTitle = joinWithLast(isGroupMessage ? dmFirstNames : dmUsersNames);
const title = isDM
? dmTitle
: chatItem?.discussion?.predefinedType === PredefinedTypes.General
? commonName
: chatItem?.discussion?.title;

const hasAccessToChat = useMemo(
() => checkHasAccessToChat(userCircleIds, chatItem),
Expand All @@ -90,12 +99,10 @@ const MobileChat: FC<ChatProps> = (props) => {
};

useEffect(() => {
if (dmUserId) {
fetchDMUser(dmUserId);
} else {
setDMUser(null);
if (isDM && dmUserIds.length > 0) {
fetchDMUsers(dmUserIds);
}
}, [dmUserId]);
}, [isDM, dmUserIds]);

return (
<>
Expand All @@ -109,8 +116,8 @@ const MobileChat: FC<ChatProps> = (props) => {
header={
<Header
titleWrapperClassName={styles.headerTitleWrapper}
title={title}
userAvatar={dmUser?.photoURL}
title={title ?? ""}
userAvatar={isDM && !isGroupMessage ? dmUsers?.[0]?.photoURL : ""}
userName={title}
onBackClick={onClose}
onTitleWrapperClick={
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ export const ChatChannelItem: FC<ChatChannelFeedLayoutItemProps> = (props) => {
useChatChannelSubscription(chatChannel.id, userId, handleChatChannelUpdate);

useEffect(() => {
fetchDMUsers(dmUserIds); // dm users not including the current user.
fetchDMUsers(dmUserIds);
}, [dmUserIds]);

useEffect(() => {
Expand All @@ -123,8 +123,8 @@ export const ChatChannelItem: FC<ChatChannelFeedLayoutItemProps> = (props) => {
if (isActive && finalTitle && dmUsersNames) {
onActiveItemDataChange?.({
itemId: chatChannel.id,
title: dmUsersNames?.[0],
image: dmUsers?.[0]?.photoURL,
title: finalTitle,
image: isGroupMessage ? "" : dmUsers?.[0]?.photoURL,
});
}
}, [isActive, finalTitle, dmUsers?.[0]?.photoURL, dmUsersNames?.[0]]);
Expand Down
2 changes: 1 addition & 1 deletion src/shared/components/Chat/ChatMessage/ChatMessage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ export default function ChatMessage({
));

const parsedText = await getTextFromTextEditorString({
textEditorString: parentMessage.text,
textEditorString: parentMessage?.text,
users,
commonId: discussionMessage.commonId,
directParent,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
}

.name {
max-width: 17rem;
padding: 0.375rem 0.75rem;
font-family: PoppinsSans, sans-serif;
font-size: $moderate-xsmall;
Expand Down

0 comments on commit d683879

Please sign in to comment.