11import React , { useCallback , useContext , useEffect , useState } from "react" ;
2+ import { useParams } from 'react-router-dom' ;
23import { styled } from "@mui/material/styles" ;
34import { Button , Tab , Typography } from "@mui/material" ;
45import MenuItem from '@mui/material/MenuItem' ;
@@ -43,6 +44,18 @@ const Root = styled("div")({
4344 } ,
4445} ) ;
4546
47+ const validTabName = ( name ) => {
48+ switch ( name ) {
49+ case "received" :
50+ case "sent" :
51+ break ;
52+ default :
53+ name && console . warn ( `Invalid tab: ${ name } ` ) ;
54+ name = "received" ;
55+ }
56+ return name ;
57+ }
58+
4659const DateRange = {
4760 THREE_MONTHS : '3mo' ,
4861 SIX_MONTHS : '6mo' ,
@@ -51,13 +64,14 @@ const DateRange = {
5164} ;
5265
5366const KudosPage = ( ) => {
67+ const { initialTab } = useParams ( ) ;
5468 const { state, dispatch } = useContext ( AppContext ) ;
5569 const csrf = selectCsrfToken ( state ) ;
5670
5771 const currentUser = selectCurrentUser ( state ) ;
5872
5973 const [ kudosDialogOpen , setKudosDialogOpen ] = useState ( false ) ;
60- const [ kudosTab , setKudosTab ] = useState ( "RECEIVED" ) ;
74+ const [ kudosTab , setKudosTab ] = useState ( validTabName ( initialTab ) ) ;
6175 const [ receivedKudos , setReceivedKudos ] = useState ( [ ] ) ;
6276 const [ receivedKudosLoading , setReceivedKudosLoading ] = useState ( true ) ;
6377 const [ sentKudos , setSentKudos ] = useState ( [ ] ) ;
@@ -134,18 +148,7 @@ const KudosPage = () => {
134148
135149 const handleTabChange = useCallback (
136150 ( event , newTab ) => {
137- switch ( newTab ) {
138- case "RECEIVED" :
139- setKudosTab ( "RECEIVED" ) ;
140- break ;
141- case "SENT" :
142- setKudosTab ( "SENT" ) ;
143- break ;
144- default :
145- console . warn ( `Invalid tab: ${ newTab } ` ) ;
146- }
147-
148- setKudosTab ( newTab ) ;
151+ setKudosTab ( validTabName ( newTab ) ) ;
149152 } ,
150153 // eslint-disable-next-line react-hooks/exhaustive-deps
151154 [ loadReceivedKudos , loadSentKudos ]
@@ -189,19 +192,19 @@ const KudosPage = () => {
189192 < TabList onChange = { handleTabChange } >
190193 < Tab
191194 label = "Received"
192- value = "RECEIVED "
195+ value = "received "
193196 icon = { < ArchiveIcon /> }
194197 iconPosition = "start"
195198 />
196199 < Tab
197200 label = "Sent"
198- value = "SENT "
201+ value = "sent "
199202 icon = { < UnarchiveIcon /> }
200203 iconPosition = "start"
201204 />
202205 </ TabList >
203206 </ div >
204- < TabPanel value = "RECEIVED " style = { { padding : "1rem 0" } } >
207+ < TabPanel value = "received " style = { { padding : "1rem 0" } } >
205208 { receivedKudosLoading ? (
206209 Array . from ( { length : 5 } ) . map ( ( _ , index ) => (
207210 < SkeletonLoader key = { index } type = "kudos" />
@@ -228,7 +231,7 @@ const KudosPage = () => {
228231 </ div >
229232 ) }
230233 </ TabPanel >
231- < TabPanel value = "SENT " style = { { padding : "1rem 0" } } >
234+ < TabPanel value = "sent " style = { { padding : "1rem 0" } } >
232235 { sentKudosLoading ? (
233236 Array . from ( { length : 5 } ) . map ( ( _ , index ) => (
234237 < SkeletonLoader key = { index } type = "kudos" />
0 commit comments