+
name={"andreDeltakere"}>
{({ fields }) => (
<>
{fields.map((field, index) => (
-
+
-
-
+
+
-
-
- fields.remove(index)} />
-
+
+
+ }
+ onClick={() => fields.remove(index)}
+ />
+
))}
- fields.push(initialDeltaker)}>
+ }
+ onClick={() => fields.push(initialDeltaker)}
+ >
{texts.buttonText}
-
+
>
)}
-
+
);
};
diff --git a/src/components/dialogmote/referat/Deltakere.tsx b/src/components/dialogmote/referat/Deltakere.tsx
index 126754de7..72ea0214a 100644
--- a/src/components/dialogmote/referat/Deltakere.tsx
+++ b/src/components/dialogmote/referat/Deltakere.tsx
@@ -1,16 +1,12 @@
import React, { ReactElement, ReactNode, useEffect, useState } from "react";
import { useNavBrukerData } from "@/data/navbruker/navbruker_hooks";
-import { Normaltekst, Systemtittel, Undertittel } from "nav-frontend-typografi";
import { Field, useFormState } from "react-final-form";
import styled from "styled-components";
-import { Checkbox, Input } from "nav-frontend-skjema";
import { FlexColumn, FlexRow, PaddingSize } from "../../Layout";
import { AndreDeltakere } from "./AndreDeltakere";
import { useAktivVeilederinfoQuery } from "@/data/veilederinfo/veilederinfoQueryHooks";
import { DialogmotedeltakerBehandlerDTO } from "@/data/dialogmote/types/dialogmoteTypes";
import { behandlerDeltokTekst } from "@/utils/behandlerUtils";
-import { EkspanderbartpanelBase } from "nav-frontend-ekspanderbartpanel";
-import navFarger from "nav-frontend-core";
import { ReferatSkjemaValues } from "@/components/dialogmote/referat/Referat";
import {
PersonIcon,
@@ -18,6 +14,7 @@ import {
PersonSuitIcon,
} from "@navikt/aksel-icons";
import { MedisinskrinImage } from "../../../../img/ImageComponents";
+import { Checkbox, ExpansionCard, Heading, TextField } from "@navikt/ds-react";
export const texts = {
title: "Deltakere i møtet",
@@ -32,14 +29,6 @@ export const texts = {
"Dersom behandleren ikke deltok i møtet, men likevel ønsker å motta referat, krever det et samtykke fra arbeidstakeren.",
};
-const DeltakereBoks = styled.div`
- margin-bottom: 4em;
-`;
-
-const Header = styled(Systemtittel)`
- margin-bottom: 1.5em;
-`;
-
const deltakerIconProps = {
role: "img",
focusable: false,
@@ -47,18 +36,15 @@ const deltakerIconProps = {
height: 24,
};
-const StyledEkspanderbartpanel = styled(EkspanderbartpanelBase)`
- margin-bottom: 0.5em;
- border: 1px solid ${navFarger.navGra60};
-`;
-
interface DeltakerEkspanderbartPanelProps {
+ ariaLabel: string;
tittel: ReactNode;
children: ReactNode;
harValideringsfeil?: boolean;
}
const DeltakerEkspanderbartPanel = ({
+ ariaLabel,
tittel,
children,
harValideringsfeil,
@@ -71,14 +57,16 @@ const DeltakerEkspanderbartPanel = ({
}, [harValideringsfeil]);
return (
- setOpen(!open)}
- tittel={tittel}
+ setOpen(!open)}
+ aria-label={ariaLabel}
>
- {children}
-
+ {tittel}
+ {children}
+
);
};
@@ -86,7 +74,7 @@ interface DeltakerTekstProps {
color?: string;
}
-const DeltakerTekst = styled(Undertittel)`
+const DeltakerTekst = styled(Heading)`
margin-left: 0.5em;
${(props) =>
props.color && {
@@ -102,9 +90,11 @@ const DeltakerBehandler = ({ behandler }: DeltakerBehandlerProps) => {
const {
values: { behandlerDeltatt },
} = useFormState();
+ const tittelTekst = behandlerDeltokTekst(behandler, behandlerDeltatt);
return (
{
alt="Medisinskrin-ikon"
{...deltakerIconProps}
/>
-
- {behandlerDeltokTekst(behandler, behandlerDeltatt)}
-
+ {tittelTekst}
}
>
-
- {texts.behandlerTekst}
-
+ {texts.behandlerTekst}
{({ input }) => (
-
+
+ {texts.behandlerDeltokLabel}
+
)}
{({ input }) => (
-
+
+ {texts.behandlerMottaReferatLabel}
+
)}
- {texts.behandlerReferatSamtykke}
+ {texts.behandlerReferatSamtykke}
);
@@ -147,32 +137,38 @@ const DeltakerArbeidsgiver = () => {
name="naermesteLeder">
{({ input, meta }) => {
const harValideringsfeil = meta.submitFailed && !!meta.error;
- const tittelFarge = harValideringsfeil ? navFarger.redError : undefined;
+ const tittelFarge = harValideringsfeil
+ ? "var(--a-text-danger)"
+ : undefined;
+ const tittelTekst = `Fra arbeidsgiver: ${input.value || ""}`;
return (
- {`Fra arbeidsgiver: ${
- input.value || ""
- }`}
+
+ {tittelTekst}
+
}
>
-
- {texts.arbeidsgiverTekst}
+ {texts.arbeidsgiverTekst}
);
@@ -190,20 +186,22 @@ const Deltakere = ({ behandler }: DeltakereProps): ReactElement => {
const { data: veilederinfo } = useAktivVeilederinfoQuery();
return (
-
-
+
+
+ {texts.title}
+
- {`Arbeidstaker: ${navbruker?.navn}`}
+ {`Arbeidstaker: ${navbruker?.navn}`}
- {`Fra NAV: ${veilederinfo?.navn}`}
+ {`Fra NAV: ${veilederinfo?.navn}`}
{behandler &&
}
-
+
);
};
diff --git a/test/dialogmote/ReferatMellomlagreTest.tsx b/test/dialogmote/ReferatMellomlagreTest.tsx
index 01cc49e7a..f42eb45ea 100644
--- a/test/dialogmote/ReferatMellomlagreTest.tsx
+++ b/test/dialogmote/ReferatMellomlagreTest.tsx
@@ -4,18 +4,12 @@ import Referat, {
} from "../../src/components/dialogmote/referat/Referat";
import { DialogmoteDTO } from "@/data/dialogmote/types/dialogmoteTypes";
import { expect } from "chai";
-import {
- changeTextInput,
- clickButton,
- getCheckbox,
- getTextInput,
-} from "../testUtils";
+import { changeTextInput, clickButton, getTextInput } from "../testUtils";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { dialogmoteRoutePath } from "@/routers/AppRouter";
import {
annenDeltakerFunksjon,
annenDeltakerNavn,
- behandlerDeltakerTekst,
dialogmoteMedBehandler,
dialogmoteMedMellomlagretReferat,
dialogmoteMedMellomlagretReferatBehandlerIkkeDeltatt,
@@ -82,19 +76,24 @@ describe("ReferatMellomlagreTest", () => {
expect(screen.getByDisplayValue(moteTekster.konklusjonTekst)).to.exist;
expect(screen.getByDisplayValue(annenDeltakerNavn)).to.exist;
expect(screen.getByDisplayValue(annenDeltakerFunksjon)).to.exist;
- const checkedStandardtekst = getCheckbox(referatStandardTekst.label, true);
+ const checkedStandardtekst = screen.getByRole("checkbox", {
+ checked: true,
+ name: referatStandardTekst.label,
+ });
expect(checkedStandardtekst).to.exist;
});
it("preutfyller referat-skjema behandler-deltakelse fra dialogmote", () => {
renderReferat(dialogmoteMedMellomlagretReferatBehandlerIkkeDeltatt);
- clickButton(`Medisinskrin-ikon ${behandlerDeltakerTekst}, deltok ikke`);
-
- expect(getCheckbox(deltakereSkjemaTexts.behandlerDeltokLabel, false)).to
- .exist;
- expect(getCheckbox(deltakereSkjemaTexts.behandlerMottaReferatLabel, false))
- .to.exist;
+ const behandlerDeltokInput: HTMLInputElement = screen.getByLabelText(
+ deltakereSkjemaTexts.behandlerDeltokLabel
+ );
+ expect(behandlerDeltokInput.checked).to.be.false;
+ const behandlerMottarReferatInput: HTMLInputElement = screen.getByLabelText(
+ deltakereSkjemaTexts.behandlerMottaReferatLabel
+ );
+ expect(behandlerMottarReferatInput.checked).to.be.false;
});
});
diff --git a/test/dialogmote/ReferatTest.tsx b/test/dialogmote/ReferatTest.tsx
index 87c3176c0..5fcd06706 100644
--- a/test/dialogmote/ReferatTest.tsx
+++ b/test/dialogmote/ReferatTest.tsx
@@ -11,7 +11,6 @@ import { texts as valideringsTexts } from "../../src/utils/valideringUtils";
import {
changeTextInput,
clickButton,
- getCheckbox,
getFeilmeldingLink,
getTextInput,
getTooLongText,
@@ -89,8 +88,13 @@ describe("ReferatTest", () => {
})
).to.exist;
- clickButton("Fra arbeidsgiver: Tatten Tattover");
- const getFraArbeidsgiverInput = () => getTextInput("Navn");
+ expect(
+ screen.getByRole("region", {
+ name: "Fra arbeidsgiver: Tatten Tattover",
+ })
+ ).to.exist;
+
+ const getFraArbeidsgiverInput = () => screen.getByLabelText("Navn");
// Sjekk at 'Fra arbeidsgiver' valideres
changeTextInput(getFraArbeidsgiverInput(), "");
@@ -112,30 +116,34 @@ describe("ReferatTest", () => {
expect(screen.getByRole("heading", { name: behandlerDeltakerTekst })).to
.exist;
- clickButton(`Medisinskrin-ikon ${behandlerDeltakerTekst}`);
+ expect(
+ screen.getByRole("region", {
+ name: behandlerDeltakerTekst,
+ })
+ ).to.exist;
- expect(getCheckbox(deltakereSkjemaTexts.behandlerDeltokLabel, true)).to
- .exist;
- expect(getCheckbox(deltakereSkjemaTexts.behandlerMottaReferatLabel, true))
- .to.exist;
+ const behandlerDeltokInput: HTMLInputElement = screen.getByLabelText(
+ deltakereSkjemaTexts.behandlerDeltokLabel
+ );
+ expect(behandlerDeltokInput.checked).to.be.true;
+ const behandlerMottarReferatInput: HTMLInputElement = screen.getByLabelText(
+ deltakereSkjemaTexts.behandlerMottaReferatLabel
+ );
+ expect(behandlerMottarReferatInput.checked).to.be.true;
});
it("kan endre behandlers deltakelse", () => {
stubFerdigstillApi(apiMock(), dialogmoteMedBehandler.uuid);
renderReferat(dialogmoteMedBehandler);
passSkjemaTekstInput();
- clickButton(`Medisinskrin-ikon ${behandlerDeltakerTekst}`);
// Fjern avkrysning på deltakelse og motta referat
- const behandlerDeltokCheckbox = getCheckbox(
- deltakereSkjemaTexts.behandlerDeltokLabel,
- true
+ const behandlerDeltokCheckbox: HTMLInputElement = screen.getByLabelText(
+ deltakereSkjemaTexts.behandlerDeltokLabel
);
userEvent.click(behandlerDeltokCheckbox);
- const behandlerMottaReferatCheckbox = getCheckbox(
- deltakereSkjemaTexts.behandlerMottaReferatLabel,
- true
- );
+ const behandlerMottaReferatCheckbox: HTMLInputElement =
+ screen.getByLabelText(deltakereSkjemaTexts.behandlerMottaReferatLabel);
userEvent.click(behandlerMottaReferatCheckbox);
clickButton("Lagre og send");
diff --git a/test/testUtils.ts b/test/testUtils.ts
index ab62c88b5..d15c2d117 100644
--- a/test/testUtils.ts
+++ b/test/testUtils.ts
@@ -31,12 +31,6 @@ export const changeTextInput = (input: HTMLElement, value: string) =>
target: { value },
});
-export const getCheckbox = (name: string, checked: boolean) =>
- screen.getByRole("checkbox", {
- checked,
- name,
- });
-
export const maxLengthErrorMessage = (max: number) =>
`Maks ${max} tegn tillatt`;