diff --git a/src/apps/copilots/src/pages/copilot-opportunity-details/tabs/copilot-applications/CopilotApplicationAction.tsx b/src/apps/copilots/src/pages/copilot-opportunity-details/tabs/copilot-applications/CopilotApplicationAction.tsx index 6387cb756..3acc9d1c7 100644 --- a/src/apps/copilots/src/pages/copilot-opportunity-details/tabs/copilot-applications/CopilotApplicationAction.tsx +++ b/src/apps/copilots/src/pages/copilot-opportunity-details/tabs/copilot-applications/CopilotApplicationAction.tsx @@ -1,7 +1,7 @@ import { useParams } from 'react-router-dom' import { toast } from 'react-toastify' import { mutate } from 'swr' -import { useCallback } from 'react' +import { useCallback, useMemo } from 'react' import { assignCopilotOpportunity, copilotBaseUrl } from '~/apps/copilots/src/services/copilot-opportunities' import { CopilotApplication, CopilotApplicationStatus } from '~/apps/copilots/src/models/CopilotApplication' @@ -9,8 +9,15 @@ import { IconSolid, Tooltip } from '~/libs/ui' import styles from './styles.module.scss' -const CopilotApplicationAction = (copilotApplication: CopilotApplication): JSX.Element => { +const CopilotApplicationAction = ( + copilotApplication: CopilotApplication, + allCopilotApplications: CopilotApplication[], +): JSX.Element => { const { opportunityId }: {opportunityId?: string} = useParams<{ opportunityId?: string }>() + const isInvited = useMemo( + () => allCopilotApplications.findIndex(item => item.status === CopilotApplicationStatus.INVITED) > -1, + [allCopilotApplications], + ) const onClick = useCallback(async () => { if (copilotApplication.status !== CopilotApplicationStatus.PENDING) { return @@ -39,7 +46,7 @@ const CopilotApplicationAction = (copilotApplication: CopilotApplication): JSX.E } { - copilotApplication.status === CopilotApplicationStatus.PENDING && ( + !isInvited && copilotApplication.status === CopilotApplicationStatus.PENDING && ( ) } diff --git a/src/libs/ui/lib/components/table/Table.tsx b/src/libs/ui/lib/components/table/Table.tsx index 7bdc00170..a66afcb26 100644 --- a/src/libs/ui/lib/components/table/Table.tsx +++ b/src/libs/ui/lib/components/table/Table.tsx @@ -177,6 +177,7 @@ const Table: (props: TableProps) = { readonly index: number readonly propertyName?: string readonly className?: string - readonly renderer?: (data: T) => JSX.Element | undefined + readonly renderer?: (data: T, allRows?: ReadonlyArray) => JSX.Element | undefined readonly type: TableCellType readonly onExpand?: () => void readonly as?: ElementType readonly showExpandIndicator?: boolean readonly isExpanded?: boolean readonly colSpan?: number + allRows?: ReadonlyArray } const TableCell: ( @@ -40,7 +41,7 @@ const TableCell: ( case 'action': case 'element': case 'numberElement': - data = props.renderer?.(props.data) + data = props.renderer?.(props.data, props.allRows) break case 'money': data = textFormatMoneyLocaleString( diff --git a/src/libs/ui/lib/components/table/table-row/TableRow.tsx b/src/libs/ui/lib/components/table/table-row/TableRow.tsx index a038dfd51..0456abb4c 100644 --- a/src/libs/ui/lib/components/table/table-row/TableRow.tsx +++ b/src/libs/ui/lib/components/table/table-row/TableRow.tsx @@ -22,6 +22,7 @@ interface Props { index: number readonly showExpand?: boolean readonly preventDefault?: boolean + allRows?: ReadonlyArray } export const TableRow: ( @@ -50,6 +51,7 @@ export const TableRow: ( {...col} data={props.data} index={props.index} + allRows={props.allRows} key={getKey(`${props.index}${colIndex}`)} showExpandIndicator={colIndex === 0 && props.showExpand} isExpanded={isExpanded && colIndex === 0}