import React from 'react'; import { useTranslation } from 'react-i18next'; import { Text, View, ViewStyle } from 'react-native'; import { IconRecordAccount, IconRecordContact, IconRecordLead, IconRecordOpportunity } from '../../../base/icons/svg'; import { BUTTON_TYPES } from '../../../base/ui/constants.native'; import { formatAmount } from '../../functions'; import { ISalesforceData, SalesforceObjectType } from '../../types'; import { RecordListItem } from './RecordListItem'; import styles from './styles'; interface IProps { onUnlink: (type: SalesforceObjectType, id: string) => void; salesforceData: ISalesforceData | null; unlinkingId: string | null; } /** * Component for displaying currently linked Salesforce objects with unlink buttons. * * @param {IProps} props - Component props. * @returns {React.ReactElement} */ export const CurrentLinksSection = ({ salesforceData, unlinkingId, onUnlink }: IProps) => { const { t } = useTranslation(); const hasAccount = Boolean(salesforceData?.account); const hasLeads = salesforceData?.leads?.length; const hasContacts = salesforceData?.contacts?.length; const hasDeal = Boolean(salesforceData?.deal); const hasAnyLinks = hasAccount || hasLeads || hasContacts || hasDeal; if (!hasAnyLinks) { return null; } return ( {t('dialog.currentLinks')} {salesforceData?.account && ( onUnlink('Account', salesforceData.account!.accountId) } /> )} {salesforceData?.leads?.map(lead => ( onUnlink('Lead', lead.leadId) } /> ))} {salesforceData?.contacts?.map(contact => ( onUnlink('Contact', contact.contactId) } /> ))} {salesforceData?.deal && ( onUnlink('Opportunity', salesforceData.deal!.opportunityId) } /> )} ); }; export default CurrentLinksSection;