import { FC, useCallback } from 'react';
import { TouchableTile, Text, Visible, Divider, Card, UnderLay } from 'components';
import { Row, Container } from 'components/layout';
import { CopyLink, Pencil, Trash } from 'icons';
import { isMessageMoreActionOpenVar } from 'state-management/dialogs';
import {
deletingMessageIdVar,
editingMessageIdVar,
isEditingMessageVar,
messageMoreActionsPositionVar,
selectedMessageIdVar,
} from 'state-management/chat';
import { ColorName } from '@emotion/react';
import { useReactiveVar } from '@apollo/client';
export const MessageMoreAction: FC = () => {
const selectedMessageId = useReactiveVar(selectedMessageIdVar);
const isMessageMoreActionOpen = useReactiveVar(isMessageMoreActionOpenVar);
const dialogPosition = useReactiveVar(messageMoreActionsPositionVar);
const closeDialog = useCallback(() => {
isMessageMoreActionOpenVar(false);
}, []);
const deleteMessage = useCallback(() => {
deletingMessageIdVar(selectedMessageId);
closeDialog();
}, [closeDialog, selectedMessageId]);
const editMessage = useCallback(() => {
editingMessageIdVar(selectedMessageId);
isEditingMessageVar(true);
closeDialog();
}, [closeDialog, selectedMessageId]);
const editActions: ActionType[] = [
{
id: 3,
title: 'Copy Link',
onPress: () => {},
leftElement: ,
},
{
id: 4,
onPress: editMessage,
title: 'Edit Message',
leftElement: ,
},
{
id: 5,
onPress: deleteMessage,
title: 'Delete Message',
leftElement: ,
titleColor: 'secondary',
},
];
return (
{editActions.map(({ id, title, titleColor, leftElement, onPress }) => {
return (
{leftElement}
{title}
}
/>
);
})}
);
};
interface ActionType {
id: number;
title?: string;
caption?: string;
titleColor?: ColorName;
onPress?: () => void;
leftElement?: JSX.Element;
}