Skip to content

Commit 37a27eb

Browse files
committed
Enhance PR section with type badges, state, merged status, and merged date
1 parent 9fa26a8 commit 37a27eb

File tree

1 file changed

+57
-1
lines changed

1 file changed

+57
-1
lines changed

src/pages/Home/Home.tsx

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,35 @@ import {
2525
import { useTheme } from "@mui/material/styles";
2626
import { useGitHubAuth } from "../../hooks/useGitHubAuth";
2727
import { useGitHubData } from "../../hooks/useGitHubData";
28+
// Helper to extract PR type from title
29+
function getPRType(title: string): string {
30+
const lower = title.toLowerCase();
31+
if (lower.includes("feature")) return "Feature";
32+
if (lower.includes("fix")) return "Fix";
33+
if (lower.includes("cleanup") || lower.includes("refactor")) return "Cleanup";
34+
if (lower.includes("docs")) return "Docs";
35+
if (lower.includes("test")) return "Test";
36+
return "Other";
37+
}
38+
39+
// Tailwind class based on PR type
40+
function getBadgeStyle(type: string): string {
41+
switch (type) {
42+
case "Feature":
43+
return "bg-green-100 text-green-800";
44+
case "Fix":
45+
return "bg-red-100 text-red-800";
46+
case "Cleanup":
47+
return "bg-yellow-100 text-yellow-800";
48+
case "Docs":
49+
return "bg-blue-100 text-blue-800";
50+
case "Test":
51+
return "bg-purple-100 text-purple-800";
52+
default:
53+
return "bg-gray-100 text-gray-800";
54+
}
55+
}
56+
2857

2958
const ROWS_PER_PAGE = 10;
3059

@@ -51,7 +80,7 @@ const Home: React.FC = () => {
5180
getOctokit,
5281
} = useGitHubAuth();
5382

54-
//const octokit = getOctokit();
83+
//const octokit = getOctokit();
5584

5685
const {
5786
issues,
@@ -262,9 +291,14 @@ const Home: React.FC = () => {
262291
<TableCell>Title</TableCell>
263292
<TableCell align="center">Repository</TableCell>
264293
<TableCell align="center">State</TableCell>
294+
<TableCell>Type</TableCell>
265295
<TableCell>Created</TableCell>
296+
{tab === 1 && <TableCell align="center">Merged</TableCell>}
297+
{tab === 1 && <TableCell>Merged Date</TableCell>}
266298
</TableRow>
267299
</TableHead>
300+
301+
268302
<TableBody>
269303
{currentFilteredData.map((item) => (
270304
<TableRow key={item.id}>
@@ -285,10 +319,32 @@ const Home: React.FC = () => {
285319
<TableCell align="center">
286320
{item.pull_request?.merged_at ? "merged" : item.state}
287321
</TableCell>
322+
323+
{/* 🆕 PR Type Label */}
324+
<TableCell>
325+
<span className={`px-2 py-1 rounded-full text-xs font-semibold ${getBadgeStyle(getPRType(item.title))}`}>
326+
{getPRType(item.title)}
327+
</span>
328+
</TableCell>
329+
288330
<TableCell>{formatDate(item.created_at)}</TableCell>
331+
332+
{tab === 1 && (
333+
<TableCell align="center">
334+
{item.pull_request?.merged_at ? "Yes" : "No"}
335+
</TableCell>
336+
)}
337+
{tab === 1 && (
338+
<TableCell>
339+
{item.pull_request?.merged_at
340+
? formatDate(item.pull_request.merged_at)
341+
: "-"}
342+
</TableCell>
343+
)}
289344
</TableRow>
290345
))}
291346
</TableBody>
347+
292348
</Table>
293349
<TablePagination
294350
component="div"

0 commit comments

Comments
 (0)