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.
65 lines
1.7 KiB
TypeScript
65 lines
1.7 KiB
TypeScript
import React, { useContext } from 'react';
|
|
import {
|
|
approveConversation,
|
|
blockConvoById,
|
|
} from '../../../interactions/conversationInteractions';
|
|
import { forceSyncConfigurationNowIfNeeded } from '../../../session/utils/syncUtils';
|
|
import { SessionIconButton } from '../../icon';
|
|
import { ContextConversationId } from './ConversationListItem';
|
|
|
|
const RejectMessageRequestButton = () => {
|
|
const conversationId = useContext(ContextConversationId);
|
|
|
|
/**
|
|
* Removes conversation from requests list,
|
|
* adds ID to block list, syncs the block with linked devices.
|
|
*/
|
|
const handleConversationBlock = async () => {
|
|
await blockConvoById(conversationId);
|
|
await forceSyncConfigurationNowIfNeeded();
|
|
};
|
|
return (
|
|
<SessionIconButton
|
|
iconType="exit"
|
|
iconSize="large"
|
|
onClick={handleConversationBlock}
|
|
backgroundColor="var(--color-destructive)"
|
|
iconColor="var(--color-foreground-primary)"
|
|
iconPadding="var(--margins-xs)"
|
|
borderRadius="2px"
|
|
margin="0 5px 0 0"
|
|
/>
|
|
);
|
|
};
|
|
|
|
const ApproveMessageRequestButton = () => {
|
|
const conversationId = useContext(ContextConversationId);
|
|
|
|
return (
|
|
<SessionIconButton
|
|
iconType="check"
|
|
iconSize="large"
|
|
onClick={async () => {
|
|
await approveConversation(conversationId);
|
|
}}
|
|
backgroundColor="var(--color-accent)"
|
|
iconColor="var(--color-foreground-primary)"
|
|
iconPadding="var(--margins-xs)"
|
|
borderRadius="2px"
|
|
/>
|
|
);
|
|
};
|
|
|
|
export const MessageRequestButtons = ({ isMessageRequest }: { isMessageRequest: boolean }) => {
|
|
if (!isMessageRequest) {
|
|
return null;
|
|
}
|
|
|
|
return (
|
|
<>
|
|
<RejectMessageRequestButton />
|
|
<ApproveMessageRequestButton />
|
|
</>
|
|
);
|
|
};
|