src/components/CompareResults/OverTimeResultsView.tsx (56 lines of code) (raw):

import { useEffect } from 'react'; import Grid from '@mui/material/Grid'; import { useLoaderData } from 'react-router-dom'; import { style } from 'typestyle'; import type { LoaderReturnValue } from './overTimeLoader'; import ResultsMain from './ResultsMain'; import { useAppSelector } from '../../hooks/app'; import { SearchContainerStyles, background } from '../../styles'; import CompareOverTime from '../Search/CompareOverTime'; import { LinkToHome } from '../Shared/LinkToHome'; import PerfCompareHeader from '../Shared/PerfCompareHeader'; interface ResultsViewProps { title: string; } function ResultsView(props: ResultsViewProps) { const { newRevsInfo, frameworkId, intervalValue, baseRepo, newRepos } = useLoaderData() as LoaderReturnValue; const newRepo = newRepos[0]; const { title } = props; const themeMode = useAppSelector((state) => state.theme.mode); const styles = { container: style({ backgroundColor: background(themeMode), }), }; const sectionStyles = SearchContainerStyles(themeMode, /* isHome */ false); useEffect(() => { document.title = title; }, [title]); return ( <div className={styles.container} data-testid='beta-version-compare-overtime-results' > <PerfCompareHeader /> <section className={sectionStyles.container}> <LinkToHome /> <CompareOverTime hasEditButton={true} newRevs={newRevsInfo ?? []} isExpanded={true} frameworkIdVal={frameworkId} intervalValue={intervalValue} baseRepo={baseRepo} newRepo={newRepo} /> </section> <Grid container alignItems='center' justifyContent='center'> <Grid item xs={12}> <ResultsMain /> </Grid> </Grid> </div> ); } export default ResultsView;