Skip to content

Commit 107ae1f

Browse files
enhancement: switched to given project from project listing
1 parent 37aeac5 commit 107ae1f

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

ui/src/features/projects-operations/projects.tsx

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,23 @@ import * as React from 'react';
22
import {useEffect, useState} from 'react';
33
import {useAppDispatch, useAppSelector} from "../../redux/hooks";
44
import {selectListProjectsData} from "./slice";
5-
import {DeleteProjectRequest, ListProjectsRequest, ProjectDTO} from "./model";
5+
import {DeleteProjectRequest, GetProjectRequest, ListProjectsRequest, ProjectDTO} from "./model";
66
import {getCurrentUser} from "../../utils/sessionstorageClient";
77
import {listProjectsAsync} from "./async-apis/listProjects";
88
import {Container, Paper, Stack, Table, TableBody, TableCell, TableContainer, TableHead, TableRow} from "@mui/material";
99
import Button from "@mui/material/Button";
1010
import {deleteProjectAsync} from "./async-apis/deleteProject";
1111
import Typography from "@mui/material/Typography";
1212
import DeleteOutlineIcon from "@mui/icons-material/DeleteOutline";
13+
import ChangeCircleIcon from '@mui/icons-material/ChangeCircle';
14+
1315
import {DeleteProject} from "./delete-project";
16+
import {getProjectAsync} from "./async-apis/getProject";
17+
import {useNavigate} from "react-router-dom";
1418

1519
export const Projects = () => {
1620
const dispatch = useAppDispatch();
21+
const navigate = useNavigate();
1722
const listProjectsData = useAppSelector(selectListProjectsData);
1823
const [payload, setPayload] = useState({
1924
isDeleteProjectDialogOpen: false,
@@ -56,6 +61,15 @@ export const Projects = () => {
5661
});
5762
};
5863

64+
const handleSwitchProjectClick = (projectDTO: ProjectDTO) => {
65+
const getProjectRequest: GetProjectRequest = {
66+
id: projectDTO.id,
67+
email: getCurrentUser()
68+
};
69+
dispatch(getProjectAsync(getProjectRequest));
70+
navigate('/home');
71+
};
72+
5973
const getActionButtons = (projectDTO: ProjectDTO): React.ReactNode => {
6074
return <Stack direction="row" spacing="3">
6175
<Button variant="contained"
@@ -65,6 +79,14 @@ export const Projects = () => {
6579
}}>
6680
<DeleteOutlineIcon/>
6781
</Button>
82+
&nbsp;
83+
<Button variant="contained"
84+
color="primary"
85+
onClick={() => {
86+
handleSwitchProjectClick(projectDTO);
87+
}}>
88+
<ChangeCircleIcon/>
89+
</Button>
6890
</Stack>;
6991
};
7092

0 commit comments

Comments
 (0)