diff --git a/ts/components/ConversationListItem.tsx b/ts/components/ConversationListItem.tsx
index ebdd01aee..b17f00bbd 100644
--- a/ts/components/ConversationListItem.tsx
+++ b/ts/components/ConversationListItem.tsx
@@ -66,6 +66,8 @@ const ConversationListItem = (props: Props) => {
type,
lastMessage,
memberAvatars,
+ notificationForConvo,
+ currentNotificationSetting,
} = props;
const triggerId: string = `conversation-item-${phoneNumber}-ctxmenu`;
const key: string = `conversation-item-${phoneNumber}`;
@@ -119,7 +121,14 @@ const ConversationListItem = (props: Props) => {
-
+
);
diff --git a/ts/components/conversation/ConversationHeader.tsx b/ts/components/conversation/ConversationHeader.tsx
index f18548455..45af09034 100644
--- a/ts/components/conversation/ConversationHeader.tsx
+++ b/ts/components/conversation/ConversationHeader.tsx
@@ -16,17 +16,13 @@ import {
import { contextMenu } from 'react-contexify';
import { DefaultTheme, withTheme } from 'styled-components';
import { ConversationNotificationSettingType } from '../../models/conversation';
+import { NotificationForConvoOption } from '../../state/ducks/conversations';
export interface TimerOption {
name: string;
value: number;
}
-export interface NotificationForConvoOption {
- name: string;
- value: ConversationNotificationSettingType;
-}
-
interface Props {
id: string;
name?: string;
diff --git a/ts/components/session/conversation/SessionConversation.tsx b/ts/components/session/conversation/SessionConversation.tsx
index dddb87f62..82bdb317e 100644
--- a/ts/components/session/conversation/SessionConversation.tsx
+++ b/ts/components/session/conversation/SessionConversation.tsx
@@ -352,13 +352,7 @@ export class SessionConversation extends React.Component {
const members = conversation.get('members') || [];
- // exclude mentions_only settings for private chats as this does not make much sense
- const notificationForConvo = ConversationNotificationSetting.filter(n =>
- conversation.isPrivate() ? n !== 'mentions_only' : true
- ).map((n: ConversationNotificationSettingType) => {
- // this link to the notificationForConvo_all, notificationForConvo_mentions_only, ...
- return { value: n, name: window.i18n(`notificationForConvo_${n}`) };
- });
+ const notificationForConvo = conversation.getConversationNotificationSettingType();
const headerProps = {
id: conversation.id,
diff --git a/ts/components/session/menu/ConversationHeaderMenu.tsx b/ts/components/session/menu/ConversationHeaderMenu.tsx
index 40b9f97c8..662379c36 100644
--- a/ts/components/session/menu/ConversationHeaderMenu.tsx
+++ b/ts/components/session/menu/ConversationHeaderMenu.tsx
@@ -13,11 +13,13 @@ import {
getLeaveGroupMenuItem,
getMarkAllReadMenuItem,
getNotificationForConvoMenuItem,
+ getPinConversationMenuItem,
getRemoveModeratorsMenuItem,
getUpdateGroupNameMenuItem,
} from './Menu';
-import { NotificationForConvoOption, TimerOption } from '../../conversation/ConversationHeader';
+import { TimerOption } from '../../conversation/ConversationHeader';
import { ConversationNotificationSettingType } from '../../../models/conversation';
+import { NotificationForConvoOption } from '../../../state/ducks/conversations';
export type PropsConversationHeaderMenu = {
conversationId: string;
@@ -74,6 +76,7 @@ export const ConversationHeaderMenu = (props: PropsConversationHeaderMenu) => {
currentNotificationSetting,
conversationId
)}
+ {getPinConversationMenuItem(conversationId)}
{getBlockMenuItem(isMe, isPrivate, isBlocked, conversationId)}
{getCopyMenuItem(isPublic, isGroup, conversationId)}
diff --git a/ts/components/session/menu/ConversationListItemContextMenu.tsx b/ts/components/session/menu/ConversationListItemContextMenu.tsx
index 740eacfa1..17f5821cb 100644
--- a/ts/components/session/menu/ConversationListItemContextMenu.tsx
+++ b/ts/components/session/menu/ConversationListItemContextMenu.tsx
@@ -1,6 +1,10 @@
import React from 'react';
import { animation, Menu } from 'react-contexify';
-import { ConversationTypeEnum } from '../../../models/conversation';
+import {
+ ConversationNotificationSettingType,
+ ConversationTypeEnum,
+} from '../../../models/conversation';
+import { NotificationForConvoOption } from '../../../state/ducks/conversations';
import {
getBlockMenuItem,
@@ -12,6 +16,7 @@ import {
getInviteContactMenuItem,
getLeaveGroupMenuItem,
getMarkAllReadMenuItem,
+ getNotificationForConvoMenuItem,
getPinConversationMenuItem,
} from './Menu';
@@ -26,6 +31,8 @@ export type PropsContextConversationItem = {
isKickedFromGroup?: boolean;
left?: boolean;
theme?: any;
+ notificationForConvo: Array;
+ currentNotificationSetting: ConversationNotificationSettingType;
};
export const ConversationListItemContextMenu = (props: PropsContextConversationItem) => {
@@ -39,6 +46,8 @@ export const ConversationListItemContextMenu = (props: PropsContextConversationI
type,
left,
isKickedFromGroup,
+ notificationForConvo,
+ currentNotificationSetting,
} = props;
const isGroup = type === 'group';
@@ -46,6 +55,14 @@ export const ConversationListItemContextMenu = (props: PropsContextConversationI
return (
<>