fix: empty states per type of conversations

pull/3281/head
Audric Ackermann 11 months ago
parent 28687a3b59
commit 85749eb10a
No known key found for this signature in database

@ -19,9 +19,11 @@ import {
useSelectedConversationKey, useSelectedConversationKey,
useSelectedHasDisabledBlindedMsgRequests, useSelectedHasDisabledBlindedMsgRequests,
useSelectedIsApproved, useSelectedIsApproved,
useSelectedIsGroupOrCommunity,
useSelectedIsGroupV2, useSelectedIsGroupV2,
useSelectedIsNoteToSelf, useSelectedIsNoteToSelf,
useSelectedIsPrivate, useSelectedIsPrivate,
useSelectedIsPublic,
useSelectedNicknameOrProfileNameOrShortenedPubkey, useSelectedNicknameOrProfileNameOrShortenedPubkey,
} from '../../state/selectors/selectedConversation'; } from '../../state/selectors/selectedConversation';
import { import {
@ -204,6 +206,7 @@ export const NoMessageInConversation = () => {
const selectedConversation = useSelectedConversationKey(); const selectedConversation = useSelectedConversationKey();
const hasMessages = useSelectedHasMessages(); const hasMessages = useSelectedHasMessages();
const isGroupV2 = useSelectedIsGroupV2(); const isGroupV2 = useSelectedIsGroupV2();
const isGroupOrCommunity = useSelectedIsGroupOrCommunity();
const isInvitePending = useLibGroupInvitePending(selectedConversation); const isInvitePending = useLibGroupInvitePending(selectedConversation);
const isMe = useSelectedIsNoteToSelf(); const isMe = useSelectedIsNoteToSelf();
@ -215,27 +218,41 @@ export const NoMessageInConversation = () => {
const isKickedFromGroup = useLibGroupKicked(selectedConversation); const isKickedFromGroup = useLibGroupKicked(selectedConversation);
const isGroupDestroyed = useLibGroupDestroyed(selectedConversation); const isGroupDestroyed = useLibGroupDestroyed(selectedConversation);
const name = useSelectedNicknameOrProfileNameOrShortenedPubkey(); const name = useSelectedNicknameOrProfileNameOrShortenedPubkey();
const isPublic = useSelectedIsPublic();
const getHtmlToRender = () => { const getHtmlToRender = () => {
// First, handle the "oteToSelf and various "private" cases
if (isMe) { if (isMe) {
return localize('noteToSelfEmpty').toString(); return localize('noteToSelfEmpty').toString();
} }
if (canWrite) {
return localize('groupNoMessages').withArgs({ group_name: name }).toString();
}
if (privateBlindedAndBlockingMsgReqs) { if (privateBlindedAndBlockingMsgReqs) {
return localize('messageRequestsTurnedOff').withArgs({ name }).toString(); return localize('messageRequestsTurnedOff').withArgs({ name }).toString();
} }
if (isPrivate) {
// "You have no messages in X, send a message to start a conversation."
return localize('groupNoMessages').withArgs({ group_name: name }).toString();
}
if (isGroupV2 && isGroupDestroyed) { if (isPublic) {
return localize('groupDeletedMemberDescription').withArgs({ group_name: name }).toString(); return localize('conversationsEmpty').withArgs({ conversation_name: name }).toString();
} }
if (isGroupV2 && isKickedFromGroup) { // a "group but not public" is a legacy or a groupv2 (isPublic is handled just above)
return localize('groupRemovedYou').withArgs({ group_name: name }).toString(); if (isGroupOrCommunity) {
if (isGroupDestroyed) {
return localize('groupDeletedMemberDescription').withArgs({ group_name: name }).toString();
}
if (isKickedFromGroup) {
return localize('groupRemovedYou').withArgs({ group_name: name }).toString();
}
if (canWrite) {
return localize('groupNoMessages').withArgs({ group_name: name }).toString();
}
// if we cannot write for some reason, don't show the "send a message" part
return localize('conversationsEmpty').withArgs({ conversation_name: name }).toString();
} }
return localize('conversationsEmpty').withArgs({ conversation_name: name }).toString(); return localize('conversationsEmpty').withArgs({ conversation_name: name }).toString();
}; };

Loading…
Cancel
Save