fix: notif settings in list item convoId from contextprovider

pull/2810/head
Audric Ackermann 2 years ago
parent de41988215
commit 6be95b7177

@ -6,6 +6,7 @@ import {
useAvatarPath, useAvatarPath,
useConversationUsername, useConversationUsername,
useHasNickname, useHasNickname,
useIsActive,
useIsBlinded, useIsBlinded,
useIsBlocked, useIsBlocked,
useIsIncomingRequest, useIsIncomingRequest,
@ -15,6 +16,7 @@ import {
useIsPrivate, useIsPrivate,
useIsPrivateAndFriend, useIsPrivateAndFriend,
useIsPublic, useIsPublic,
useNotificationSetting,
useWeAreAdmin, useWeAreAdmin,
} from '../../hooks/useParamSelector'; } from '../../hooks/useParamSelector';
import { import {
@ -35,6 +37,10 @@ import {
showUpdateGroupNameByConvoId, showUpdateGroupNameByConvoId,
unblockConvoById, unblockConvoById,
} from '../../interactions/conversationInteractions'; } from '../../interactions/conversationInteractions';
import {
ConversationNotificationSetting,
ConversationNotificationSettingType,
} from '../../models/conversationAttributes';
import { getConversationController } from '../../session/conversations'; import { getConversationController } from '../../session/conversations';
import { PubKey } from '../../session/types'; import { PubKey } from '../../session/types';
import { import {
@ -43,23 +49,10 @@ import {
updateUserDetailsModal, updateUserDetailsModal,
} from '../../state/ducks/modalDialog'; } from '../../state/ducks/modalDialog';
import { getIsMessageSection } from '../../state/selectors/section'; import { getIsMessageSection } from '../../state/selectors/section';
import { import { useSelectedConversationKey } from '../../state/selectors/selectedConversation';
useSelectedConversationKey, import { LocalizerKeys } from '../../types/LocalizerKeys';
useSelectedIsActive,
useSelectedIsBlocked,
useSelectedIsKickedFromGroup,
useSelectedIsLeft,
useSelectedIsPrivate,
useSelectedIsPrivateFriend,
useSelectedNotificationSetting,
} from '../../state/selectors/selectedConversation';
import { SessionButtonColor } from '../basic/SessionButton'; import { SessionButtonColor } from '../basic/SessionButton';
import { useConvoIdFromContext } from '../leftpane/conversation-list-item/ConvoIdContext'; import { useConvoIdFromContext } from '../leftpane/conversation-list-item/ConvoIdContext';
import {
ConversationNotificationSetting,
ConversationNotificationSettingType,
} from '../../models/conversationAttributes';
import { LocalizerKeys } from '../../types/LocalizerKeys';
/** Menu items standardized */ /** Menu items standardized */
@ -556,18 +549,20 @@ export const DeclineAndBlockMsgRequestMenuItem = () => {
}; };
export const NotificationForConvoMenuItem = (): JSX.Element | null => { export const NotificationForConvoMenuItem = (): JSX.Element | null => {
const selectedConvoId = useSelectedConversationKey(); // Note: this item is used in the header and in the list item, so we need to grab the details
// from the convoId from the context itself, not the redux selected state
const convoId = useConvoIdFromContext();
const currentNotificationSetting = useSelectedNotificationSetting(); const currentNotificationSetting = useNotificationSetting(convoId);
const isBlocked = useSelectedIsBlocked(); const isBlocked = useIsBlocked(convoId);
const isActive = useSelectedIsActive(); const isActive = useIsActive(convoId);
const isLeft = useSelectedIsLeft(); const isLeft = useIsLeft(convoId);
const isKickedFromGroup = useSelectedIsKickedFromGroup(); const isKickedFromGroup = useIsKickedFromGroup(convoId);
const isFriend = useSelectedIsPrivateFriend(); const isFriend = useIsPrivateAndFriend(convoId);
const isPrivate = useSelectedIsPrivate(); const isPrivate = useIsPrivate(convoId);
if ( if (
!selectedConvoId || !convoId ||
isLeft || isLeft ||
isKickedFromGroup || isKickedFromGroup ||
isBlocked || isBlocked ||
@ -606,7 +601,7 @@ export const NotificationForConvoMenuItem = (): JSX.Element | null => {
<Item <Item
key={item.value} key={item.value}
onClick={async () => { onClick={async () => {
await setNotificationForConvoId(selectedConvoId, item.value); await setNotificationForConvoId(convoId, item.value);
}} }}
disabled={disabled} disabled={disabled}
> >

Loading…
Cancel
Save