Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tag 2207 fjerne bedrift fra url #1756

Merged
merged 8 commits into from
Nov 22, 2023
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 30 additions & 10 deletions src/Pages/Banner.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import React, { FunctionComponent, useContext, useEffect } from 'react';
import React, { FunctionComponent, useContext, useEffect, useCallback } from 'react';
import Bedriftsmeny from '@navikt/bedriftsmeny';
import '@navikt/bedriftsmeny/lib/bedriftsmeny.css';
import { OrganisasjonsDetaljerContext } from './OrganisasjonDetaljerProvider';
import { OrganisasjonerOgTilgangerContext } from './OrganisasjonerOgTilgangerProvider';
import * as Record from '../utils/Record';
import { NotifikasjonWidget } from '@navikt/arbeidsgiver-notifikasjon-widget';
import { useLocation, useNavigate } from 'react-router-dom';
import { useLocation, useNavigate, useSearchParams } from 'react-router-dom';
import { onBreadcrumbClick, setBreadcrumbs } from '@navikt/nav-dekoratoren-moduler';
import { Loader } from '@navikt/ds-react';

Expand Down Expand Up @@ -35,7 +35,32 @@ export const SimpleBanner: FunctionComponent<OwnProps> = ({
const Banner: FunctionComponent<OwnProps> = ({ sidetittel }) => {
const { organisasjoner } = useContext(OrganisasjonerOgTilgangerContext);
const { endreOrganisasjon } = useContext(OrganisasjonsDetaljerContext);
const { pathname } = useLocation();

const pathname = useLocation().pathname.replace(/\/+$/, '');
const [params, setParams] = useSearchParams();
const orgnrFraUrl = params.get('bedrift');

if (orgnrFraUrl !== null) {
if (organisasjoner[orgnrFraUrl] !== undefined) {
ebelegu marked this conversation as resolved.
Show resolved Hide resolved
endreOrganisasjon(organisasjoner[orgnrFraUrl].organisasjon);
}
const newParams = new URLSearchParams(params);
newParams.delete('bedrift');
ebelegu marked this conversation as resolved.
Show resolved Hide resolved
setParams(newParams);
}
ebelegu marked this conversation as resolved.
Show resolved Hide resolved

const useOrgnrHook: () => [string | null, (orgnr: string) => void] = useCallback(() => {
const { valgtOrganisasjon } = useContext(OrganisasjonsDetaljerContext);
const currentOrgnr = valgtOrganisasjon?.organisasjon.OrganizationNumber ?? null;
ebelegu marked this conversation as resolved.
Show resolved Hide resolved
return [
currentOrgnr,
(orgnr: string) => {
organisasjoner[orgnr] !== undefined &&
endreOrganisasjon(organisasjoner[orgnr].organisasjon);
},
];
}, []);

// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
const orgs = organisasjoner
? Record.mapToArray(organisasjoner, (orgnr, { organisasjon }) => organisasjon)
Expand All @@ -46,7 +71,7 @@ const Banner: FunctionComponent<OwnProps> = ({ sidetittel }) => {
sidetittel={sidetittel}
undertittel={'INNLOGGEDE TJENESTER for arbeidsgiver'}
organisasjoner={pathname === '/saksoversikt' ? [] : orgs}
onOrganisasjonChange={endreOrganisasjon}
orgnrSearchParam={useOrgnrHook}
>
<NotifikasjonWidget />
</Bedriftsmeny>
Expand All @@ -65,18 +90,13 @@ interface BrodsmuleProps {

export const Brodsmulesti = ({ brodsmuler }: BrodsmuleProps) => {
const navigate = useNavigate();
const { valgtOrganisasjon } = useContext(OrganisasjonsDetaljerContext);

const orgnrdel = valgtOrganisasjon
? `?bedrift=${valgtOrganisasjon.organisasjon.OrganizationNumber}`
: '';

onBreadcrumbClick((breadcrumb) => {
navigate(breadcrumb.url);
});

const defaultBrodsmule: Brodsmule[] = [
{ url: '/' + orgnrdel, title: 'Min side – arbeidsgiver', handleInApp: true },
{ url: '/', title: 'Min side – arbeidsgiver', handleInApp: true },
];

const breadcrumbs = defaultBrodsmule.concat(brodsmuler);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
import React from 'react';
import React, { useContext } from 'react';
import { innsynAaregURL } from '../../../../lenker';
import arbeidsforholdikon from './arbeidsforhold-ikon.svg';
import { useAntallArbeidsforholdFraAareg } from './useAntallArbeidsforholdFraAareg';
import './Arbeidsforhold.css';
import { Tjenesteboks } from '../Tjenesteboks';
import { OrganisasjonsDetaljerContext } from '../../../OrganisasjonDetaljerProvider';

const Arbeidsforhold = () => {
const antallArbeidsforhold = useAntallArbeidsforholdFraAareg();

const orgnummerFraUrl = new URLSearchParams(window.location.search).get('bedrift') ?? '';
const href = innsynAaregURL + (orgnummerFraUrl === '' ? '' : `?bedrift=${orgnummerFraUrl}`);
const orgnr =
useContext(OrganisasjonsDetaljerContext).valgtOrganisasjon?.organisasjon
.OrganizationNumber ?? '';
const href = innsynAaregURL + (orgnr === '' ? '' : `?bedrift=${orgnr}`);

return (
<Tjenesteboks
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
import { lenkeTilForebyggefravar } from '../../../../lenker';
import React from 'react';
import React, { useContext } from 'react';
import ForebyggeFraværIkon from './ForebyggeFraværIkon.svg';
import './ForebyggeFravær.css';
import { useSykefravær } from './useSykefravær';
import { StortTall, Tjenesteboks } from '../Tjenesteboks';
import { OrganisasjonsDetaljerContext } from '../../../OrganisasjonDetaljerProvider';

const ForebyggeFravR = () => {
const valgtbedrift = () => {
const orgnummerFraUrl = new URLSearchParams(window.location.search).get('bedrift') ?? '';
return orgnummerFraUrl === '' ? '' : `?bedrift=${orgnummerFraUrl}`;
const orgnr =
useContext(OrganisasjonsDetaljerContext).valgtOrganisasjon?.organisasjon
.OrganizationNumber ?? '';

return orgnr === '' ? '' : `?bedrift=${orgnr}`;
};

return (
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
import React from 'react';
import React, { useContext } from 'react';
import { kandidatlisteURL } from '../../../../lenker';
import { Tjenesteboks } from '../Tjenesteboks';
import { useAntallKandidater } from './useAntallKandidater';
import ikon from './kandidatlisteboks-ikon.svg';
import './Kandidatlister.css';
import { OrganisasjonsDetaljerContext } from '../../../OrganisasjonDetaljerProvider';

const Kandidatlister = () => {
const antallKandidater = useAntallKandidater();

const orgnummerFraUrl = new URLSearchParams(window.location.search).get('bedrift') ?? '';
const href =
kandidatlisteURL + (orgnummerFraUrl === '' ? '' : `?virksomhet=${orgnummerFraUrl}`);
const orgnr =
useContext(OrganisasjonsDetaljerContext).valgtOrganisasjon?.organisasjon
.OrganizationNumber ?? '';

const href = kandidatlisteURL + (orgnr === '' ? '' : `?virksomhet=${orgnr}`);

return antallKandidater === 0 ? null : (
<Tjenesteboks
Expand Down
2 changes: 1 addition & 1 deletion src/Pages/OrganisasjonDetaljerProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ export const OrganisasjonsDetaljerContext = React.createContext<Context>({} as C
export const OrganisasjonsDetaljerProvider: FunctionComponent<Props> = ({ children }: Props) => {
const { organisasjoner } = useContext(OrganisasjonerOgTilgangerContext);
const [valgtOrganisasjon, setValgtOrganisasjon] = useState<OrganisasjonInfo | undefined>(
undefined
organisasjoner[sessionStorage.getItem('bedrift') ?? '']
);

const [antallSakerForAlleBedrifter, setAntallSakerForAlleBedrifter] = useState<
Expand Down
4 changes: 2 additions & 2 deletions src/Pages/Saksoversikt/useOversiktSessionStorage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ const filterToSessionState = (
valgtFilterId: string | undefined
): SessionStateSaksoversikt => ({
route: '/saksoversikt',
bedrift: new URLSearchParams(window.location.search).get('bedrift') ?? undefined,
bedrift: undefined,
side: filter.side,
tekstsoek: filter.tekstsoek,
sortering: filter.sortering,
Expand Down Expand Up @@ -171,7 +171,7 @@ export const useSessionState = (alleVirksomheter: Organisasjon[]): UseSessionSta
const extractSearchParameters = (searchString: string): SessionStateSaksoversikt => {
const search = new URLSearchParams(searchString);
const sortering = (search.get('sortering') ?? SakSortering.Oppdatert) as SakSortering;
const bedrift = search.get('bedrift') ?? undefined;
const bedrift = undefined;
const virksomhetsnumre =
search.get('virksomhetsnumre') === 'ALLEBEDRIFTER'
? 'ALLEBEDRIFTER'
Expand Down
Loading