Skip to content

Commit b9db629

Browse files
committed
Enhance Tracker Page Appearance
1 parent 5ea4f94 commit b9db629

1 file changed

Lines changed: 26 additions & 9 deletions

File tree

src/pages/Tracker/Tracker.tsx

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useState, useEffect } from "react"
1+
import React, { useState, useEffect, useMemo } from "react"
22
import {
33
IssueOpenedIcon,
44
IssueClosedIcon,
@@ -85,17 +85,33 @@ const Home: React.FC = () => {
8585
const [startDate, setStartDate] = useState("");
8686
const [endDate, setEndDate] = useState("");
8787

88-
// Fetch data when username, tab, or page changes
88+
// Fetch data when username, filters, tab, or page changes
8989
useEffect(() => {
9090
if (username) {
91-
fetchData(username, page + 1, ROWS_PER_PAGE);
91+
const filters = {
92+
search: searchTitle,
93+
repo: selectedRepo,
94+
startDate: startDate,
95+
endDate: endDate,
96+
state: tab === 0 ? issueFilter : prFilter,
97+
};
98+
const activeTab = tab === 0 ? 'issue' : 'pr';
99+
fetchData(username, page + 1, ROWS_PER_PAGE, activeTab, filters);
92100
}
93-
}, [tab, page]);
101+
}, [username, tab, page, issueFilter, prFilter, searchTitle, selectedRepo, startDate, endDate, fetchData]);
94102

95103
const handleSubmit = (e: React.FormEvent<HTMLFormElement>): void => {
96104
e.preventDefault();
97105
setPage(0);
98-
fetchData(username, 1, ROWS_PER_PAGE);
106+
const filters = {
107+
search: searchTitle,
108+
repo: selectedRepo,
109+
startDate: startDate,
110+
endDate: endDate,
111+
state: tab === 0 ? issueFilter : prFilter,
112+
};
113+
const activeTab = tab === 0 ? 'issue' : 'pr';
114+
fetchData(username, 1, ROWS_PER_PAGE, activeTab, filters);
99115
};
100116

101117
const handlePageChange = (_: unknown, newPage: number) => {
@@ -164,9 +180,11 @@ const Home: React.FC = () => {
164180
};
165181

166182

167-
// Current data and filtered data according to tab and filters
183+
// Memoized filtered data to avoid recomputing on every render
168184
const currentRawData = tab === 0 ? issues : prs;
169-
const currentFilteredData = filterData(currentRawData, tab === 0 ? issueFilter : prFilter);
185+
const currentFilteredData = useMemo(() => {
186+
return filterData(currentRawData, tab === 0 ? issueFilter : prFilter);
187+
}, [currentRawData, tab, issueFilter, prFilter, searchTitle, selectedRepo, startDate, endDate]);
170188
const totalCount = tab === 0 ? totalIssues : totalPrs;
171189

172190
// Helper function to get status badge color
@@ -236,7 +254,6 @@ const Home: React.FC = () => {
236254
value={token}
237255
onChange={(e) => setToken(e.target.value)}
238256
type="password"
239-
required
240257
placeholder="Paste your token here"
241258
variant="outlined"
242259
size="medium"
@@ -529,7 +546,7 @@ const Home: React.FC = () => {
529546
</TableCell>
530547
<TableCell align="center" sx={{ py: 2 }}>
531548
<Chip
532-
label={item.repository_url.split("/").slice(-1)[0]}
549+
label={item.repository_url.split("/").slice(-2).join("/")}
533550
size="small"
534551
variant="outlined"
535552
/>

0 commit comments

Comments
 (0)