Skip to content

Commit b30d708

Browse files
authored
Merge pull request finos#1349 from qube-rt/view-failed-pushes
feat: Improve push filtering
2 parents ebf7c2e + 29c7539 commit b30d708

File tree

4 files changed

+26
-13
lines changed

4 files changed

+26
-13
lines changed

src/routes.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import React from 'react';
2020
import RouteGuard from './ui/components/RouteGuard/RouteGuard';
2121
import Person from '@material-ui/icons/Person';
22-
import OpenPushRequests from './ui/views/OpenPushRequests/OpenPushRequests';
22+
import PushRequests from './ui/views/PushRequests/PushRequests';
2323
import PushDetails from './ui/views/PushDetails/PushDetails';
2424
import User from './ui/views/User/UserProfile';
2525
import UserList from './ui/views/UserList/UserList';
@@ -55,9 +55,7 @@ const dashboardRoutes: Route[] = [
5555
path: '/push',
5656
name: 'Dashboard',
5757
icon: Dashboard,
58-
component: (props) => (
59-
<RouteGuard component={OpenPushRequests} fullRoutePath={`/dashboard/push`} />
60-
),
58+
component: (props) => <RouteGuard component={PushRequests} fullRoutePath={`/dashboard/push`} />,
6159
layout: '/dashboard',
6260
visible: true,
6361
},

src/ui/components/CustomTabs/CustomTabs.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ interface CustomTabsProps {
2525
tabs: TabItem[];
2626
rtlActive?: boolean;
2727
plainTabs?: boolean;
28+
defaultTab?: number;
2829
}
2930

3031
const CustomTabs: React.FC<CustomTabsProps> = ({
@@ -33,8 +34,9 @@ const CustomTabs: React.FC<CustomTabsProps> = ({
3334
tabs,
3435
title,
3536
rtlActive = false,
37+
defaultTab = 0,
3638
}) => {
37-
const [value, setValue] = useState(0);
39+
const [value, setValue] = useState(defaultTab);
3840
const classes = useStyles();
3941

4042
const handleChange = (event: React.ChangeEvent<unknown>, newValue: number) => {

src/ui/views/OpenPushRequests/OpenPushRequests.tsx renamed to src/ui/views/PushRequests/PushRequests.tsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import GridContainer from '../../components/Grid/GridContainer';
44
import PushesTable from './components/PushesTable';
55
import CustomTabs from '../../components/CustomTabs/CustomTabs';
66
import Danger from '../../components/Typography/Danger';
7-
import { Visibility, CheckCircle, Cancel, Block } from '@material-ui/icons';
7+
import { Visibility, CheckCircle, Cancel, Block, Error, List } from '@material-ui/icons';
88
import { TabItem } from '../../components/CustomTabs/CustomTabs';
99

1010
const Dashboard: React.FC = () => {
@@ -15,6 +15,11 @@ const Dashboard: React.FC = () => {
1515
};
1616

1717
const tabs: TabItem[] = [
18+
{
19+
tabName: 'All',
20+
tabIcon: List,
21+
tabContent: <PushesTable handleError={handlePushTableError} />,
22+
},
1823
{
1924
tabName: 'Pending',
2025
tabIcon: Visibility,
@@ -51,6 +56,11 @@ const Dashboard: React.FC = () => {
5156
/>
5257
),
5358
},
59+
{
60+
tabName: 'Error',
61+
tabIcon: Error,
62+
tabContent: <PushesTable error={true} handleError={handlePushTableError} />,
63+
},
5464
];
5565

5666
return (
@@ -59,7 +69,7 @@ const Dashboard: React.FC = () => {
5969
{!errorMessage && (
6070
<GridContainer>
6171
<GridItem xs={12} sm={12} md={12}>
62-
<CustomTabs headerColor='primary' tabs={tabs} />
72+
<CustomTabs headerColor='primary' tabs={tabs} defaultTab={1} />
6373
</GridItem>
6474
</GridContainer>
6575
)}

src/ui/views/OpenPushRequests/components/PushesTable.tsx renamed to src/ui/views/PushRequests/components/PushesTable.tsx

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,15 @@ const PushesTable: React.FC<PushesTableProps> = (props) => {
4040
const openPush = (pushId: string) => navigate(`/dashboard/push/${pushId}`, { replace: true });
4141

4242
useEffect(() => {
43-
const query = {
44-
blocked: props.blocked ?? false,
45-
canceled: props.canceled ?? false,
46-
authorised: props.authorised ?? false,
47-
rejected: props.rejected ?? false,
48-
};
43+
const query: any = {};
44+
45+
// Only include filters that are explicitly set (not undefined)
46+
if (props.blocked !== undefined) query.blocked = props.blocked;
47+
if (props.canceled !== undefined) query.canceled = props.canceled;
48+
if (props.authorised !== undefined) query.authorised = props.authorised;
49+
if (props.rejected !== undefined) query.rejected = props.rejected;
50+
if (props.error !== undefined) query.error = props.error;
51+
4952
getPushes(setIsLoading, setPushes, setAuth, setIsError, props.handleError, query);
5053
}, [props]);
5154

0 commit comments

Comments
 (0)