Skip to content

Commit 8241865

Browse files
authored
Merge pull request #2887 from objectcomputing/feature-2874/received-sent-tabs-linkable
Make the paths /kudos/received and /kudos/sent go to the kudos page…
2 parents af4a92d + 2fb18b7 commit 8241865

File tree

2 files changed

+21
-18
lines changed

2 files changed

+21
-18
lines changed

web-ui/src/components/routes/Routes.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ export default function Routes() {
106106
<Route path="/feedback/self-reviews">
107107
<SelfReviewsPage />
108108
</Route>
109-
<Route exact path="/kudos">
109+
<Route exact path="/kudos/:initialTab?">
110110
<Header title="Kudos" />
111111
<KudosPage />
112112
</Route>

web-ui/src/pages/KudosPage.jsx

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import React, { useCallback, useContext, useEffect, useState } from "react";
2+
import { useParams } from 'react-router-dom';
23
import { styled } from "@mui/material/styles";
34
import { Button, Tab, Typography } from "@mui/material";
45
import 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+
4659
const DateRange = {
4760
THREE_MONTHS: '3mo',
4861
SIX_MONTHS: '6mo',
@@ -51,13 +64,14 @@ const DateRange = {
5164
};
5265

5366
const 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

Comments
 (0)