import React from 'react'; import { ledetekst, OppsummeringPunkt, PLANTYPE_GENERELL, PLANTYPE_SPESIELL, useOppsummering, VerdiEllerInfoMangler, } from '../..'; import { erUlikeObjekter, finnesElementIListe } from '../utils'; import { SlettetInformasjonsboks } from '../SlettetInformasjonsboks'; import { Soknad, TrafikantgruppeAndre } from '../../domene/Soknad'; function TrafikantgrupperOppsummering(props) { const { trafikantgrupper: trafikantgrupperData = {}, forrigeSoknad } = props; const { plantype } = useOppsummering(); let trafikantgrupper = [], andre: TrafikantgruppeAndre = {}; if (plantype === PLANTYPE_GENERELL) { ({ trafikantgrupper = [], andre = {} } = trafikantgrupperData.generellPlan || {}); } else if (plantype === PLANTYPE_SPESIELL) { ({ trafikantgrupper = [], andre = {} } = trafikantgrupperData.spesiellPlan || {}); } const harUtfyltData = trafikantgrupper.length > 0 || !!andre.valgt; //brukes som data for sammenligning av søknadsversjoner for å ikke markere en forskjell hvis innholdet er likt, men plantypen er ulik const getTrafikantgrupperForSammenligning = (soknad) => { const soknadPlantype = soknad?.vegarbeid?.plantype; if (soknadPlantype === 'GENERELL') { return soknad?.vegarbeid?.vegarbeidsbeskrivelse?.trafikantgrupper ?.generellPlan; } else if (soknadPlantype === 'SPESIELL') { return soknad?.vegarbeid?.vegarbeidsbeskrivelse?.trafikantgrupper ?.spesiellPlan; } }; const harSlettetTrafikantgruppe = !!forrigeSoknad && (getTrafikantgrupperForSammenligning(forrigeSoknad)?.trafikantgrupper ?.length > trafikantgrupper.length || harSlettetAndre(plantype, andre, forrigeSoknad)); return ( {harUtfyltData ? ( ) : ( )} ); } function markerAndreTrafikanterEndret( plantype: string, forrigeSoknad: any, andre: any ): boolean { const andreForrige = plantype === PLANTYPE_GENERELL ? forrigeSoknad?.vegarbeid?.vegarbeidsbeskrivelse?.trafikantgrupper ?.generellPlan?.andre || {} : plantype === PLANTYPE_SPESIELL ? forrigeSoknad?.vegarbeid?.vegarbeidsbeskrivelse?.trafikantgrupper ?.spesiellPlan?.andre || {} : {}; return !!forrigeSoknad && erUlikeObjekter(andreForrige, andre); } function harSlettetAndre( plantype: string, andre: TrafikantgruppeAndre, forrigeSoknad?: Soknad ): boolean { if (plantype === PLANTYPE_GENERELL) { return ( !andre.valgt && !!forrigeSoknad?.vegarbeid?.vegarbeidsbeskrivelse?.trafikantgrupper ?.generellPlan?.andre?.valgt ); } else { return ( !andre.valgt && !!forrigeSoknad?.vegarbeid?.vegarbeidsbeskrivelse?.trafikantgrupper ?.spesiellPlan?.andre?.valgt ); } } export { TrafikantgrupperOppsummering };