import { FC } from 'react';
import useLoading from 'hooks/useLoading';
import { Link as RouterLink } from 'react-router-dom';
import { Box, styled, Typography, Link } from '@mui/material';
import { IChangeRequest } from 'component/changeRequest/changeRequest.types';
import {
StyledCount,
StyledProjectInfoWidgetContainer,
StyledWidgetTitle,
} from './ProjectInfo.styles';
import { useProjectChangeRequests } from 'hooks/api/getters/useProjectChangeRequests/useProjectChangeRequests';
interface IChangeRequestsWidgetProps {
projectId: string;
}
const StyledChangeBox = styled(Box)(({ theme }) => ({
textAlign: 'left',
padding: theme.spacing(1.5),
marginBottom: theme.spacing(1.5),
borderRadius: theme.shape.borderRadiusMedium,
alignItems: 'center',
}));
const StyledChangeRequestStatusInfo = styled(Box)(({ theme }) => ({
display: 'flex',
alignItems: 'center',
}));
const StyledApprovedCount = styled(StyledCount)(({ theme }) => ({
background: theme.palette.activityIndicators.recent,
padding: theme.spacing(0, 1),
marginRight: theme.spacing(0.5),
borderRadius: theme.shape.borderRadius,
}));
const StyledInReviewCount = styled(StyledCount)(({ theme }) => ({
background: theme.palette.activityIndicators.primary,
padding: theme.spacing(0, 1),
marginRight: theme.spacing(0.5),
borderRadius: theme.shape.borderRadius,
}));
const ChangeRequestsLabel = () => (
change requests
);
export const ChangeRequestsWidget: FC = ({
projectId,
}) => {
const { changeRequests, loading } = useProjectChangeRequests(projectId);
const loadingRef = useLoading(loading);
const toBeApplied = changeRequests?.filter(
(changeRequest: IChangeRequest) => changeRequest?.state === 'Approved'
).length;
const toBeReviewed = changeRequests?.filter(
(changeRequest: IChangeRequest) => changeRequest?.state === 'In review'
).length;
return (
Open change requests
theme.palette.success.light }}
>
To be applied
{toBeApplied}{' '}
theme.palette.secondary.light }}
>
To be reviewed
{toBeReviewed}{' '}
View change requests
);
};