Skip to content

Commit

Permalink
Lagt inn kontaktinfo-komponentene..
Browse files Browse the repository at this point in the history
Lagt inn kontaktinfo-komponentene og omstrukturert litt for å få samme design som i skissene for panelene.
  • Loading branch information
ebelegu committed Oct 10, 2023
1 parent 9b61125 commit 90c6cde
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 72 deletions.
2 changes: 1 addition & 1 deletion src/App/InformasjonOmBedrift/InformasjonOmBedrift.css
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
.informasjon-om-bedrift {
margin: 2rem auto;
margin: 24px auto;
padding: 2rem;
max-width: 60rem;
width: 100%;
Expand Down
75 changes: 48 additions & 27 deletions src/App/InformasjonOmBedrift/InformasjonOmBedrift.tsx
Original file line number Diff line number Diff line change
@@ -1,60 +1,81 @@
import React, {FunctionComponent, useContext, useEffect, useState} from 'react';
import {OrganisasjonsDetaljerContext} from '../OrganisasjonDetaljerProvider';
import {Enhet, hentOverordnetEnhet, hentUnderenhet} from '../../api/enhetsregisteretApi';
import React, { FunctionComponent, useContext, useEffect, useState } from 'react';
import { OrganisasjonsDetaljerContext } from '../OrganisasjonDetaljerProvider';
import { Enhet, hentOverordnetEnhet, hentUnderenhet } from '../../api/enhetsregisteretApi';
import Underenhet from './Underenhet/Underenhet';
import OverordnetEnhet from './OverordnetEnhet/OverordnetEnhet';
import Brodsmulesti from '../Brodsmulesti/Brodsmulesti';
import './InformasjonOmBedrift.css';
import {Panel} from "@navikt/ds-react";
import { Panel } from '@navikt/ds-react';
import { useKontaktinfo } from './Kontaktinfo';

interface Enheter {
underenhet: Enhet;
hovedenhet: Enhet;
}

const hentEnheter = async (orgnr: string): Promise<Enheter | undefined> => {
const underenhet = await hentUnderenhet(orgnr)
const underenhet = await hentUnderenhet(orgnr);
if (underenhet === undefined) {
return undefined
return undefined;
}
if (underenhet.overordnetEnhet === undefined) {
return undefined
return undefined;
}
const hovedenhet = await hentOverordnetEnhet(underenhet.overordnetEnhet)
const hovedenhet = await hentOverordnetEnhet(underenhet.overordnetEnhet);
if (hovedenhet === undefined) {
return undefined
return undefined;
}
return {underenhet, hovedenhet}
}
return { underenhet, hovedenhet };
};

const Kontaktpanel = ({ children }: { children: React.ReactNode }) => (
<Panel className="informasjon-om-bedrift">{children}</Panel>
);

const InformasjonOmBedrift: FunctionComponent = () => {
const {valgtOrganisasjon} = useContext(OrganisasjonsDetaljerContext);
const { valgtOrganisasjon } = useContext(OrganisasjonsDetaljerContext);
const [enheter, setEnheter] = useState<Enheter | undefined>(undefined);
const orgnr = valgtOrganisasjon?.organisasjon.OrganizationNumber ?? '';
const orgnr = valgtOrganisasjon?.organisasjon.OrganizationNumber;

useEffect(() => {
if (orgnr !== '') {
hentEnheter(orgnr).then(setEnheter)
if (orgnr !== undefined) {
hentEnheter(orgnr).then(setEnheter);
} else {
setEnheter(undefined)
setEnheter(undefined);
}
}, [orgnr]);

const kontaktinfo = useKontaktinfo(orgnr);

return (
<>
<Brodsmulesti brodsmuler={[{url: '/bedriftsinformasjon', title: 'Bedriftsprofil', handleInApp: true}]}/>
<Panel className='informasjon-om-bedrift'>
{enheter !== undefined ? (
<>
<Underenhet underenhet={enheter.underenhet}/>
<OverordnetEnhet overordnetenhet={enheter.hovedenhet}/>
</>
) : (
<Brodsmulesti
brodsmuler={[
{ url: '/bedriftsinformasjon', title: 'Bedriftsprofil', handleInApp: true },
]}
/>
{enheter !== undefined ? (
<div className="">
<Kontaktpanel>
<Underenhet
underenhet={enheter.underenhet}
kontaktinfo={kontaktinfo?.underenhet ?? null}
/>
</Kontaktpanel>
<Kontaktpanel>
<OverordnetEnhet
overordnetenhet={enheter.hovedenhet}
kontaktinfo={kontaktinfo?.hovedenhet ?? null}
/>
</Kontaktpanel>
</div>
) : (
<Kontaktpanel>
<div>Kunne ikke hente informasjon</div>
)}
</Panel>
</Kontaktpanel>
)}
</>
);
};

export default InformasjonOmBedrift;
export default InformasjonOmBedrift;
49 changes: 26 additions & 23 deletions src/App/InformasjonOmBedrift/OverordnetEnhet/OverordnetEnhet.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,19 @@ import React from 'react';
import Tekstboks from '../Tekstboks/Tekstboks';
import NyFaneIkon from '../ikoner/NyFaneIkon';
import { enhetsregisteretOverordnetenhetLink } from '../../../lenker';
import { Office2 as JuridiskEnhetIkon } from "@navikt/ds-icons";
import { Office2 as JuridiskEnhetIkon } from '@navikt/ds-icons';
import './OverordnetEnhet.css';
import { LenkeMedLogging } from '../../../GeneriskeElementer/LenkeMedLogging';
import { Enhet } from '../../../api/enhetsregisteretApi';
import {BodyShort, Heading} from "@navikt/ds-react";
import { BodyShort, Heading } from '@navikt/ds-react';
import { KontaktinfoHovedenhet, KontaktinfoType } from '../Kontaktinfo';

interface Props {
overordnetenhet: Enhet;
kontaktinfo: KontaktinfoType | null;
}

const OverordnetEnhet = ({overordnetenhet}: Props) => {
const OverordnetEnhet = ({ overordnetenhet, kontaktinfo }: Props) => {
const { forretningsadresse, postadresse } = overordnetenhet;
return (
<div className="overordnet-enhet-info">
Expand All @@ -32,49 +34,49 @@ const OverordnetEnhet = ({overordnetenhet}: Props) => {

<Tekstboks className="overordnetenhet-orgform">
<BodyShort>Organisasjonsform</BodyShort>
<BodyShort> {overordnetenhet.organisasjonsform ? overordnetenhet.organisasjonsform.beskrivelse : ''}</BodyShort>
<BodyShort>
{' '}
{overordnetenhet.organisasjonsform
? overordnetenhet.organisasjonsform.beskrivelse
: ''}
</BodyShort>
</Tekstboks>

<Tekstboks className="overordnetenhet-adresse1">
<BodyShort>Forretningsadresse</BodyShort>
<BodyShort> { forretningsadresse ? forretningsadresse.adresse?.[0] : ''}</BodyShort>
<BodyShort>
{forretningsadresse?.postnummer ?? ''}
{' '}
{forretningsadresse?.poststed ?? ''}
{forretningsadresse ? forretningsadresse.adresse?.[0] : ''}
</BodyShort>
<BodyShort>
{forretningsadresse?.postnummer ?? ''} {forretningsadresse?.poststed ?? ''}
</BodyShort>
</Tekstboks>

<Tekstboks className="overordnetenhet-adresse2">
<BodyShort>Postadresse</BodyShort>
<BodyShort> { postadresse?.adresse?.[0] ?? '' } </BodyShort>
<BodyShort> {postadresse?.adresse?.[0] ?? ''} </BodyShort>
<BodyShort>
{postadresse?.postnummer ?? ''}
{' '}
{postadresse?.poststed ?? ''}
{postadresse?.postnummer ?? ''} {postadresse?.poststed ?? ''}
</BodyShort>
</Tekstboks>
</div>

<Tekstboks className="overordnetenhet-kode">
<BodyShort>Næringskoder</BodyShort>
<BodyShort>
Næringskoder
</BodyShort>
<BodyShort>
{overordnetenhet.naeringskode1 ? `${overordnetenhet.naeringskode1.kode}. ${overordnetenhet.naeringskode1.beskrivelse}` : ''}
{overordnetenhet.naeringskode1
? `${overordnetenhet.naeringskode1.kode}. ${overordnetenhet.naeringskode1.beskrivelse}`
: ''}
</BodyShort>
</Tekstboks>

{(overordnetenhet.hjemmeside ?? '') !== '' &&
{(overordnetenhet.hjemmeside ?? '') !== '' && (
<Tekstboks className="overordnetenhet-hjemmeside">
<BodyShort>
Hjemmeside
</BodyShort>
<BodyShort>
{overordnetenhet.hjemmeside}
</BodyShort>
<BodyShort>Hjemmeside</BodyShort>
<BodyShort>{overordnetenhet.hjemmeside}</BodyShort>
</Tekstboks>
}
)}

<LenkeMedLogging
href={enhetsregisteretOverordnetenhetLink(overordnetenhet.organisasjonsnummer)}
Expand All @@ -84,6 +86,7 @@ const OverordnetEnhet = ({overordnetenhet}: Props) => {
<span>Flere opplysninger for overordnet enhet hos Enhetsregisteret</span>
<NyFaneIkon />
</LenkeMedLogging>
<KontaktinfoHovedenhet kontaktinfo={kontaktinfo} />
</div>
);
};
Expand Down
3 changes: 0 additions & 3 deletions src/App/InformasjonOmBedrift/Underenhet/Underenhet.css
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
.underenhet-info {
margin-bottom: 1.5rem;
}
.underenhet-info__navn {
display: flex;
align-items: center;
Expand Down
30 changes: 12 additions & 18 deletions src/App/InformasjonOmBedrift/Underenhet/Underenhet.tsx
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
import React from 'react';
import Tekstboks from '../Tekstboks/Tekstboks';
import NyFaneIkon from '../ikoner/NyFaneIkon';
import { Office1 as UnderenhetIkon } from "@navikt/ds-icons";
import { Office1 as UnderenhetIkon } from '@navikt/ds-icons';
import { enhetsregisteretUnderenhetLink } from '../../../lenker';
import './Underenhet.css';
import { LenkeMedLogging } from '../../../GeneriskeElementer/LenkeMedLogging';
import { Enhet } from '../../../api/enhetsregisteretApi';
import {BodyShort, Heading} from "@navikt/ds-react";
import { BodyShort, Heading } from '@navikt/ds-react';
import { KontaktinfoType, KontaktinfoUnderenhet } from '../Kontaktinfo';

interface Props {
underenhet: Enhet;
kontaktinfo: KontaktinfoType | null;
}

const Underenhet = ({ underenhet }: Props) => {
const adresse = underenhet?.beliggenhetsadresse
const Underenhet = ({ underenhet, kontaktinfo }: Props) => {
const adresse = underenhet?.beliggenhetsadresse;
return (
<>
<div className="underenhet-info">
Expand All @@ -26,27 +28,19 @@ const Underenhet = ({ underenhet }: Props) => {
</Tekstboks>
<Tekstboks className="underenhet-orgnr">
<BodyShort>Virksomhetsnummer</BodyShort>
<BodyShort>
{underenhet.organisasjonsnummer}
</BodyShort>
<BodyShort>{underenhet.organisasjonsnummer}</BodyShort>
</Tekstboks>

<Tekstboks className="underenhet-adresse">
<Tekstboks className="underenhet-adresse">
<BodyShort>Beliggenhetsadresse</BodyShort>
<BodyShort>{adresse?.adresse?.[0] ?? ''}</BodyShort>
<BodyShort>
{ adresse?.adresse?.[0] ?? '' }
</BodyShort>
<BodyShort>
{ adresse?.postnummer ?? '' }
{ ' ' }
{ adresse?.poststed ?? '' }
{adresse?.postnummer ?? ''} {adresse?.poststed ?? ''}
</BodyShort>
</Tekstboks>

<Tekstboks className="underenhet-kode">
<BodyShort>
Næringskoder
</BodyShort>
<BodyShort>Næringskoder</BodyShort>
<BodyShort>
{underenhet.naeringskode1
? `${underenhet.naeringskode1.kode}. ${underenhet.naeringskode1.beskrivelse}`
Expand All @@ -72,7 +66,7 @@ const Underenhet = ({ underenhet }: Props) => {
<NyFaneIkon />
</LenkeMedLogging>
</div>
<hr />
<KontaktinfoUnderenhet kontaktinfo={kontaktinfo} />
</>
);
};
Expand Down

0 comments on commit 90c6cde

Please sign in to comment.