@@ -10,6 +10,7 @@ import { PaginationWithItemsSelect } from "../util/PaginationWithItemsSelect";
10
10
import { useTypedSelector } from "../../state/hooks" ;
11
11
import { useQuery , useQueryClient } from "@tanstack/react-query" ;
12
12
import LoadingSpinner from "../LoadingSpinner" ;
13
+ const AssignTicketModal = lazy ( ( ) => import ( "./AssignTicketModal" ) ) ;
13
14
const SupportCenterSettingsModal = lazy (
14
15
( ) => import ( "./SupportCenterSettingsModal" )
15
16
) ;
@@ -26,6 +27,8 @@ const StaffDashboard = () => {
26
27
const [ metricOpen , setMetricOpen ] = useState < number > ( 0 ) ;
27
28
const [ metricAvgMins , setMetricAvgMins ] = useState < number > ( 0 ) ;
28
29
const [ metricWeek , setMetricWeek ] = useState < number > ( 0 ) ;
30
+ const [ showAssignModal , setShowAssignModal ] = useState < boolean > ( false ) ;
31
+ const [ selectedTicketId , setSelectedTicketId ] = useState < string > ( "" ) ;
29
32
30
33
const queryClient = useQueryClient ( ) ;
31
34
@@ -94,6 +97,17 @@ const StaffDashboard = () => {
94
97
window . open ( `/support/ticket/${ uuid } ` , "_blank" ) ;
95
98
}
96
99
100
+ function openAssignModal ( ticketId : string ) {
101
+ setSelectedTicketId ( ticketId ) ;
102
+ setShowAssignModal ( true ) ;
103
+ }
104
+
105
+ function onCloseAssignModal ( ) {
106
+ setShowAssignModal ( false ) ;
107
+ setSelectedTicketId ( "" ) ;
108
+ queryClient . invalidateQueries ( [ "openTickets" ] ) ;
109
+ }
110
+
97
111
const DashboardMetric = ( {
98
112
metric,
99
113
title,
@@ -124,7 +138,10 @@ const StaffDashboard = () => {
124
138
) }
125
139
</ div >
126
140
< div className = "flex flex-row justify-between w-full mt-6" >
127
- < DashboardMetric metric = { metricOpen . toString ( ) } title = "Open Tickets" />
141
+ < DashboardMetric
142
+ metric = { metricOpen . toString ( ) }
143
+ title = "Open/In Progress Tickets"
144
+ />
128
145
< DashboardMetric
129
146
metric = { `${ metricAvgMins . toString ( ) } mins` }
130
147
title = "Average Time to Resolution"
@@ -135,7 +152,7 @@ const StaffDashboard = () => {
135
152
/>
136
153
</ div >
137
154
< div className = "mt-12" >
138
- < p className = "text-3xl font-semibold mb-2" > Open Tickets</ p >
155
+ < p className = "text-3xl font-semibold mb-2" > Open/In Progress Tickets</ p >
139
156
< PaginationWithItemsSelect
140
157
activePage = { activePage }
141
158
totalPages = { totalPages }
@@ -183,6 +200,16 @@ const StaffDashboard = () => {
183
200
< Icon name = "eye" />
184
201
View
185
202
</ Button >
203
+ { ticket . status === "open" && (
204
+ < Button
205
+ color = "green"
206
+ size = "tiny"
207
+ onClick = { ( ) => openAssignModal ( ticket . uuid ) }
208
+ >
209
+ < Icon name = "user plus" />
210
+ Assign
211
+ </ Button >
212
+ ) }
186
213
</ Table . Cell >
187
214
</ Table . Row >
188
215
) ) }
@@ -202,6 +229,13 @@ const StaffDashboard = () => {
202
229
open = { showSettingsModal }
203
230
onClose = { ( ) => setShowSettingsModal ( false ) }
204
231
/>
232
+ { selectedTicketId && (
233
+ < AssignTicketModal
234
+ open = { showAssignModal }
235
+ onClose = { onCloseAssignModal }
236
+ ticketId = { selectedTicketId }
237
+ />
238
+ ) }
205
239
</ div >
206
240
) ;
207
241
} ;
0 commit comments