1
- import { FC , useMemo } from 'react'
1
+ import { FC , useContext , useMemo } from 'react'
2
2
import { useNavigate } from 'react-router-dom'
3
3
import classNames from 'classnames'
4
4
5
5
import {
6
+ ButtonProps ,
6
7
ContentLayout ,
7
8
LoadingSpinner ,
8
9
PageTitle ,
9
10
Table ,
10
11
TableColumn ,
11
12
} from '~/libs/ui'
13
+ import { profileContext , ProfileContextData , UserRole } from '~/libs/core'
12
14
13
15
import { CopilotOpportunity } from '../../models/CopilotOpportunity'
14
16
import { copilotRoutesMap } from '../../copilots.routes'
@@ -88,6 +90,9 @@ const tableColumns: TableColumn<CopilotOpportunity>[] = [
88
90
const CopilotOpportunityList : FC < { } > = ( ) => {
89
91
const navigate = useNavigate ( )
90
92
93
+ const { profile } : ProfileContextData = useContext ( profileContext )
94
+ const canViewRequestCopilotButton : boolean = useMemo ( ( ) => ! ! profile ?. roles ?. includes ( UserRole . tcaAdmin ) , [ profile ] )
95
+
91
96
const {
92
97
data : opportunities , isValidating, size, setSize,
93
98
} : CopilotOpportunitiesResponse = useCopilotOpportunities ( )
@@ -107,9 +112,15 @@ const CopilotOpportunityList: FC<{}> = () => {
107
112
108
113
const opportunitiesLoading = isValidating
109
114
115
+ const addNewRequestButton : ButtonProps = {
116
+ label : 'New Copilot Request' ,
117
+ onClick : ( ) => navigate ( copilotRoutesMap . CopilotRequestForm ) ,
118
+ }
119
+
110
120
return (
111
121
< ContentLayout
112
122
title = 'Copilot Opportunities'
123
+ buttonConfig = { canViewRequestCopilotButton ? addNewRequestButton : undefined }
113
124
>
114
125
< PageTitle > Copilot Opportunities</ PageTitle >
115
126
< Table
0 commit comments