1- import { FC , useMemo } from 'react'
1+ import { FC , useContext , useMemo } from 'react'
22import { useNavigate } from 'react-router-dom'
33import classNames from 'classnames'
44
55import {
6+ ButtonProps ,
67 ContentLayout ,
78 LoadingSpinner ,
89 PageTitle ,
910 Table ,
1011 TableColumn ,
1112} from '~/libs/ui'
13+ import { profileContext , ProfileContextData , UserRole } from '~/libs/core'
1214
1315import { CopilotOpportunity } from '../../models/CopilotOpportunity'
1416import { copilotRoutesMap } from '../../copilots.routes'
@@ -88,6 +90,9 @@ const tableColumns: TableColumn<CopilotOpportunity>[] = [
8890const CopilotOpportunityList : FC < { } > = ( ) => {
8991 const navigate = useNavigate ( )
9092
93+ const { profile } : ProfileContextData = useContext ( profileContext )
94+ const canViewRequestCopilotButton : boolean = useMemo ( ( ) => ! ! profile ?. roles ?. includes ( UserRole . tcaAdmin ) , [ profile ] )
95+
9196 const {
9297 data : opportunities , isValidating, size, setSize,
9398 } : CopilotOpportunitiesResponse = useCopilotOpportunities ( )
@@ -107,9 +112,15 @@ const CopilotOpportunityList: FC<{}> = () => {
107112
108113 const opportunitiesLoading = isValidating
109114
115+ const addNewRequestButton : ButtonProps = {
116+ label : 'New Copilot Request' ,
117+ onClick : ( ) => navigate ( copilotRoutesMap . CopilotRequestForm ) ,
118+ }
119+
110120 return (
111121 < ContentLayout
112122 title = 'Copilot Opportunities'
123+ buttonConfig = { canViewRequestCopilotButton ? addNewRequestButton : undefined }
113124 >
114125 < PageTitle > Copilot Opportunities</ PageTitle >
115126 < Table
0 commit comments