// Copyright 2020 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only import React, { memo, useCallback, useMemo } from 'react'; import { useSelector } from 'react-redux'; import { ContactName } from '../../components/conversation/ContactName.js'; import { getIntl } from '../selectors/user.js'; import { getConversationSelector, getSelectedConversationId, } from '../selectors/conversations.js'; import { useGlobalModalActions } from '../ducks/globalModals.js'; type ExternalProps = { contactId: string; }; export const SmartContactName = memo(function SmartContactName({ contactId, }: ExternalProps) { const i18n = useSelector(getIntl); const getConversation = useSelector(getConversationSelector); const currentConversationId = useSelector(getSelectedConversationId); const { showContactModal } = useGlobalModalActions(); const contact = useMemo(() => { return getConversation(contactId); }, [getConversation, contactId]); const handleClick = useCallback(() => { showContactModal(contactId, currentConversationId); }, [showContactModal, contactId, currentConversationId]); return ( ); });