-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Data Diagrams split between accepted, rejected, notAssessed (#170)
* adding tabs selector to switch between all applications and accepted applications * fixing diagram * set corner radius * redesigning to stacked diagrams and code cleaning
- Loading branch information
1 parent
95d35ae
commit 40aa412
Showing
7 changed files
with
267 additions
and
190 deletions.
There are no files selected for viewing
86 changes: 30 additions & 56 deletions
86
...Console/applicationAdministration/pages/ApplicationLandingPage/ApplicationLandingPage.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,77 +1,51 @@ | ||
import { CalendarX, MailWarningIcon } from 'lucide-react' | ||
import { MissingConfig, MissingConfigItem } from '@/components/MissingConfig' | ||
import { MissingConfig } from '@/components/MissingConfig' | ||
import { getIsApplicationConfigured } from '../../utils/getApplicationIsConfigured' | ||
import { useMemo, useState } from 'react' | ||
import { useState } from 'react' | ||
import { ApplicationMetaData } from '../../interfaces/applicationMetaData' | ||
import { ManagementPageHeader } from '@/components/ManagementPageHeader' | ||
import { useParseApplicationMetaData } from '../../hooks/useParseApplicationMetaData' | ||
import { useApplicationStore } from '../../zustand/useApplicationStore' | ||
import { useLocation } from 'react-router-dom' | ||
import { AssessmentDiagram } from './diagrams/AssessmentDiagram' | ||
import { useMissingConfigs } from './hooks/useMissingConfig' | ||
import { useHideMailingWarning } from './hooks/useHideMailingWarning' | ||
import { ApplicationStatusCard } from './diagrams/ApplicationStatusCard' | ||
import { AssessmentDiagram } from './diagrams/AssessmentDiagram' | ||
import { ApplicationGenderDiagram } from './diagrams/ApplicationGenderDiagram' | ||
import { ApplicationStudyBackgroundDiagram } from './diagrams/ApplicationStudyBackgroundDiagram' | ||
import { ApplicationStudySemesterDiagram } from './diagrams/ApplicationStudySemesterDiagram' | ||
import { ManagementPageHeader } from '@/components/ManagementPageHeader' | ||
import { useParseApplicationMetaData } from '../../hooks/useParseApplicationMetaData' | ||
import { useApplicationStore } from '../../zustand/useApplicationStore' | ||
import { useHideMailingWarning } from './hooks/useHideMailingWarning' | ||
|
||
export const ApplicationLandingPage = (): JSX.Element => { | ||
const [applicationMetaData, setApplicationMetaData] = useState<ApplicationMetaData | null>(null) | ||
const path = useLocation().pathname | ||
const { pathname } = useLocation() | ||
const { coursePhase, participations } = useApplicationStore() | ||
|
||
useParseApplicationMetaData(coursePhase, setApplicationMetaData) | ||
const { hideMailingWarning } = useHideMailingWarning() | ||
|
||
const missingConfigs: MissingConfigItem[] = useMemo(() => { | ||
const missingConfigItems: MissingConfigItem[] = [] | ||
if (!getIsApplicationConfigured(applicationMetaData)) { | ||
missingConfigItems.push({ | ||
title: 'Application Phase Deadlines', | ||
icon: CalendarX, | ||
link: `${path}/configuration`, | ||
}) | ||
} | ||
if ( | ||
coursePhase?.restrictedData?.mailingSettings === undefined && | ||
!coursePhase?.restrictedData?.hideMailingWarning | ||
) { | ||
missingConfigItems.push({ | ||
title: 'Application Mailing Settings', | ||
description: `This application phase has no mailing settings configured. | ||
If you do not want to send mails, you can hide this warning.`, | ||
icon: MailWarningIcon, | ||
link: `${path}/mailing`, | ||
hide: hideMailingWarning, | ||
}) | ||
} | ||
return missingConfigItems | ||
}, [ | ||
const missingConfigs = useMissingConfigs( | ||
applicationMetaData, | ||
coursePhase?.restrictedData?.hideMailingWarning, | ||
coursePhase?.restrictedData?.mailingSettings, | ||
coursePhase, | ||
pathname, | ||
hideMailingWarning, | ||
path, | ||
]) | ||
) | ||
|
||
useParseApplicationMetaData(coursePhase, setApplicationMetaData) | ||
|
||
const isApplicationConfigured = getIsApplicationConfigured(applicationMetaData) | ||
|
||
return ( | ||
<div> | ||
<ManagementPageHeader>Application Administration</ManagementPageHeader> | ||
|
||
<> | ||
<MissingConfig elements={missingConfigs} /> | ||
<div className='grid gap-6 md:grid-cols-2 lg:grid-cols-3 mb-6'> | ||
<ApplicationStatusCard | ||
applicationMetaData={applicationMetaData} | ||
applicationPhaseIsConfigured={getIsApplicationConfigured(applicationMetaData)} | ||
/> | ||
<AssessmentDiagram applications={participations ?? []} /> | ||
<ApplicationGenderDiagram applications={participations ?? []} /> | ||
</div> | ||
<div className='grid gap-6 md:grid-cols-1 lg:grid-cols-2 mb-6'> | ||
<ApplicationStudyBackgroundDiagram applications={participations ?? []} /> | ||
<ApplicationStudySemesterDiagram applications={participations ?? []} /> | ||
</div> | ||
</> | ||
<MissingConfig elements={missingConfigs} /> | ||
<div className='grid gap-6 md:grid-cols-2 lg:grid-cols-3 mb-6'> | ||
<ApplicationStatusCard | ||
applicationMetaData={applicationMetaData} | ||
applicationPhaseIsConfigured={isApplicationConfigured} | ||
/> | ||
<AssessmentDiagram applications={participations} /> | ||
<ApplicationGenderDiagram applications={participations} /> | ||
</div> | ||
<div className='grid gap-6 md:grid-cols-1 lg:grid-cols-2 mb-6'> | ||
<ApplicationStudyBackgroundDiagram applications={participations} /> | ||
<ApplicationStudySemesterDiagram applications={participations} /> | ||
</div> | ||
</div> | ||
) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.