import React, { ReactElement, useState } from 'react'; import { useDispatch } from 'react-redux'; import styled from 'styled-components'; import { useMessageReactsPropsById } from '../../hooks/useParamSelector'; import { clearSogsReactionByServerId } from '../../session/apis/open_group_api/sogsv3/sogsV3ClearReaction'; import { getConversationController } from '../../session/conversations'; import { updateReactClearAllModal } from '../../state/ducks/modalDialog'; import { Flex } from '../basic/Flex'; import { SessionButton, SessionButtonColor, SessionButtonType } from '../basic/SessionButton'; import { SessionSpinner } from '../basic/SessionSpinner'; import { SessionWrapperModal } from '../SessionWrapperModal'; type Props = { reaction: string; messageId: string; }; const StyledButtonContainer = styled.div` div:first-child { margin-right: 0px; } div:not(:first-child) { margin-left: 20px; } `; const StyledReactClearAllContainer = styled(Flex)` margin: var(--margins-lg); p { font-size: 18px; font-weight: 500; padding-bottom: var(--margins-lg); margin: var(--margins-md) auto; border-bottom: 1.5px solid var(--border-color); span { margin-left: 4px; } } .session-button { font-size: 16px; height: 36px; padding-top: 3px; } `; export const ReactClearAllModal = (props: Props): ReactElement => { const { reaction, messageId } = props; const [clearingInProgress, setClearingInProgress] = useState(false); const dispatch = useDispatch(); const msgProps = useMessageReactsPropsById(messageId); if (!msgProps) { return <>; } const { convoId, serverId } = msgProps; const roomInfos = getConversationController().get(convoId).toOpenGroupV2(); const handleClose = () => { dispatch(updateReactClearAllModal(null)); }; const handleClearAll = async () => { if (roomInfos && serverId) { setClearingInProgress(true); await clearSogsReactionByServerId(reaction, serverId, roomInfos); setClearingInProgress(false); handleClose(); } else { window.log.warn('Error for batch removal of', reaction, 'on message', messageId); } }; return (

{window.i18n('clearAllReactions', [reaction])}

); };