You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
session-desktop/ts/components/menu/ConversationListItemContext...

56 lines
1.4 KiB
TypeScript

import React from 'react';
import { animation, Menu } from 'react-contexify';
import _ from 'lodash';
import {
BanMenuItem,
BlockMenuItem,
ChangeNicknameMenuItem,
ClearNicknameMenuItem,
CopyMenuItem,
DeleteContactMenuItem,
DeleteMessagesMenuItem,
InviteContactMenuItem,
LeaveGroupMenuItem,
MarkAllReadMenuItem,
NotificationForConvoMenuItem,
PinConversationMenuItem,
ShowUserDetailsMenuItem,
UnbanMenuItem,
} from './Menu';
export type PropsContextConversationItem = {
triggerId: string;
};
const ConversationListItemContextMenu = (props: PropsContextConversationItem) => {
const { triggerId } = props;
return (
<Menu id={triggerId} animation={animation.fade}>
<NotificationForConvoMenuItem />
<PinConversationMenuItem />
<BlockMenuItem />
<CopyMenuItem />
<MarkAllReadMenuItem />
<ChangeNicknameMenuItem />
<ClearNicknameMenuItem />
<DeleteMessagesMenuItem />
<BanMenuItem />
<UnbanMenuItem />
<InviteContactMenuItem />
<DeleteContactMenuItem />
<LeaveGroupMenuItem />
<ShowUserDetailsMenuItem />
</Menu>
);
};
function propsAreEqual(prev: PropsContextConversationItem, next: PropsContextConversationItem) {
return _.isEqual(prev, next);
}
export const MemoConversationListItemContextMenu = React.memo(
ConversationListItemContextMenu,
propsAreEqual
);