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 ); };