Skip to content

Commit 2566e44

Browse files
revert all pages
1 parent 9fb01d1 commit 2566e44

3 files changed

Lines changed: 59 additions & 94 deletions

File tree

src/hooks/useGitHubAuth.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
import { useState } from 'react';
22
import { Octokit } from '@octokit/core';
3-
import toast from 'react-hot-toast';
43

54
export const useGitHubAuth = () => {
65
const [username, setUsername] = useState('');
76
const [token, setToken] = useState('');
87
const [error, setError] = useState('');
98

109
const getOctokit = () => {
11-
12-
if (!username || !token) return;
10+
if (!username || !token) return null;
1311
return new Octokit({ auth: token });
1412
};
1513

@@ -22,4 +20,4 @@ export const useGitHubAuth = () => {
2220
setError,
2321
getOctokit,
2422
};
25-
};
23+
};

src/hooks/useGitHubData.ts

Lines changed: 7 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { useState, useCallback } from 'react';
2-
import toast from 'react-hot-toast';
32

43
export const useGitHubData = (octokit) => {
54
const [issues, setIssues] = useState([]);
@@ -23,9 +22,8 @@ export const useGitHubData = (octokit) => {
2322
};
2423

2524
const fetchData = useCallback(async (username) => {
26-
if (!octokit || !username) {
27-
toast.error("PAT not found"); return
28-
}
25+
if (!octokit || !username) return;
26+
2927
setLoading(true);
3028
setError('');
3129

@@ -44,26 +42,11 @@ export const useGitHubData = (octokit) => {
4442
per_page: 100,
4543
}),
4644
]);
45+
4746
setIssues(issuesResponse);
4847
setPrs(prsResponse);
49-
50-
if (issuesResponse?.length || prsResponse?.length) toast.success(
51-
`Fetched ${issuesResponse.length} issues and ${prsResponse.length} PRs successfully.`
52-
);
53-
54-
else toast("⚠️ No issues or PRs found", { icon: "🕵️‍♂️" });
55-
56-
57-
58-
} catch (err: any) {
59-
if (err.status === 401 || err.status === 403) {
60-
toast.error("Please provide a valid GitHub token ");
61-
}
62-
else if (err.status === 422) toast.error("User not found")
63-
else {
64-
toast.error("something went wrong while fetching data")
65-
}
66-
// setError("Failed to fetched github date")
48+
} catch (err) {
49+
setError(err.message);
6750
} finally {
6851
setLoading(false);
6952
}
@@ -73,7 +56,7 @@ export const useGitHubData = (octokit) => {
7356
issues,
7457
prs,
7558
loading,
76-
// error,
59+
error,
7760
fetchData,
7861
};
79-
};
62+
};

src/pages/Home/Home.tsx

Lines changed: 50 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
TableHead,
1313
TableRow,
1414
TablePagination,
15-
Link as MuiLink,
15+
Link,
1616
CircularProgress,
1717
Alert,
1818
Tabs,
@@ -78,7 +78,7 @@ const Home: React.FC = () => {
7878

7979
const filterData = (data: GitHubItem[], filterType: string): GitHubItem[] => {
8080
let filtered = [...data];
81-
if (filterType === "open" || filterType === "closed" || filterType === "merged") {
81+
if (["open", "closed", "merged"].includes(filterType)) {
8282
filtered = filtered.filter((item) =>
8383
filterType === "merged"
8484
? !!item.pull_request?.merged_at
@@ -112,12 +112,6 @@ const Home: React.FC = () => {
112112
tab === 0 ? filterData(issues, issueFilter) : filterData(prs, prFilter);
113113
const displayData = paginateData(currentData);
114114

115-
// helper to extract "owner/repo" from repository_url
116-
const getRepoName = (url: string) => {
117-
const parts = url.split("/");
118-
return parts.slice(-2).join("/");
119-
};
120-
121115
return (
122116
<Container
123117
maxWidth="lg"
@@ -155,11 +149,7 @@ const Home: React.FC = () => {
155149
required
156150
sx={{ flex: 1 }}
157151
/>
158-
<Button
159-
type="submit"
160-
variant="contained"
161-
sx={{ minWidth: "120px" }}
162-
>
152+
<Button type="submit" variant="contained" sx={{ minWidth: "120px" }}>
163153
Fetch Data
164154
</Button>
165155
</Box>
@@ -207,11 +197,7 @@ const Home: React.FC = () => {
207197
mb: 3,
208198
}}
209199
>
210-
<Tabs
211-
value={tab}
212-
onChange={(e, newValue) => setTab(newValue)}
213-
sx={{ flex: 1 }}
214-
>
200+
<Tabs value={tab} onChange={(e, newValue) => setTab(newValue)} sx={{ flex: 1 }}>
215201
<Tab label={`Issues (${filterData(issues, issueFilter).length})`} />
216202
<Tab label={`Pull Requests (${filterData(prs, prFilter).length})`} />
217203
</Tabs>
@@ -254,55 +240,53 @@ const Home: React.FC = () => {
254240
<CircularProgress />
255241
</Box>
256242
) : (
257-
<Box>
258-
<Box sx={{ maxHeight: "400px", overflowY: "auto", display: "block" }}>
259-
<TableContainer component={Paper}>
260-
<Table>
261-
<TableHead>
262-
<TableRow>
263-
<TableCell sx={{ textAlign: "left" }}>Title</TableCell>
264-
<TableCell sx={{ textAlign: "center" }}>Repository</TableCell>
265-
<TableCell sx={{ textAlign: "center" }}>State</TableCell>
266-
<TableCell sx={{ textAlign: "left" }}>Created</TableCell>
243+
<Box sx={{ maxHeight: "400px", overflowY: "auto", display: "block" }}>
244+
<TableContainer component={Paper}>
245+
<Table>
246+
<TableHead>
247+
<TableRow>
248+
<TableCell sx={{ textAlign: "left" }}>Title</TableCell>
249+
<TableCell sx={{ textAlign: "center" }}>Repository</TableCell>
250+
<TableCell sx={{ textAlign: "center" }}>State</TableCell>
251+
<TableCell sx={{ textAlign: "left" }}>Created</TableCell>
252+
</TableRow>
253+
</TableHead>
254+
<TableBody>
255+
{displayData.map((item: GitHubItem) => (
256+
<TableRow key={item.id}>
257+
<TableCell sx={{ textAlign: "left" }}>
258+
<Link
259+
href={item.html_url}
260+
target="_blank"
261+
rel="noopener noreferrer"
262+
underline="hover"
263+
sx={{ color: theme.palette.primary.main }}
264+
>
265+
{item.title}
266+
</Link>
267+
</TableCell>
268+
<TableCell sx={{ textAlign: "center" }}>
269+
{item.repository_url.split("/").slice(-1)[0]}
270+
</TableCell>
271+
<TableCell sx={{ textAlign: "center" }}>
272+
{item.pull_request?.merged_at ? "merged" : item.state}
273+
</TableCell>
274+
<TableCell sx={{ textAlign: "left" }}>
275+
{formatDate(item.created_at)}
276+
</TableCell>
267277
</TableRow>
268-
</TableHead>
269-
<TableBody>
270-
{displayData.map((item: GitHubItem) => (
271-
<TableRow key={item.id}>
272-
<TableCell sx={{ textAlign: "left" }}>
273-
<MuiLink
274-
href={item.html_url}
275-
target="_blank"
276-
rel="noopener noreferrer"
277-
underline="hover"
278-
sx={{ color: theme.palette.primary.main }}
279-
>
280-
{item.title}
281-
</MuiLink>
282-
</TableCell>
283-
<TableCell sx={{ textAlign: "center" }}>
284-
{getRepoName(item.repository_url)}
285-
</TableCell>
286-
<TableCell sx={{ textAlign: "center" }}>
287-
{item.pull_request?.merged_at ? "merged" : item.state}
288-
</TableCell>
289-
<TableCell sx={{ textAlign: "left" }}>
290-
{formatDate(item.created_at)}
291-
</TableCell>
292-
</TableRow>
293-
))}
294-
</TableBody>
295-
</Table>
296-
<TablePagination
297-
component="div"
298-
count={currentData.length}
299-
page={page}
300-
onPageChange={handleChangePage}
301-
rowsPerPage={itemsPerPage}
302-
rowsPerPageOptions={[10, 25, 50]}
303-
/>
304-
</TableContainer>
305-
</Box>
278+
))}
279+
</TableBody>
280+
</Table>
281+
<TablePagination
282+
component="div"
283+
count={currentData.length}
284+
page={page}
285+
onPageChange={handleChangePage}
286+
rowsPerPage={itemsPerPage}
287+
rowsPerPageOptions={[5]}
288+
/>
289+
</TableContainer>
306290
</Box>
307291
)}
308292
</Container>

0 commit comments

Comments
 (0)