Skip to content

Commit

Permalink
summerer antall svar for tema fra spørsmål
Browse files Browse the repository at this point in the history
  • Loading branch information
SiLar92 committed Oct 18, 2024
1 parent 4834790 commit 92711c5
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 41 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { IASak } from "../../../domenetyper/domenetyper";
import { useHentKartleggingResultat } from "../../../api/lydia-api";
import styled from "styled-components";
import { TemaResultat } from "./TemaResultat";
import { TemaResultatDto } from "../../../domenetyper/iaSakKartleggingResultat";

const Container = styled.div`
padding-top: 1rem;
Expand All @@ -20,8 +21,6 @@ export const BehovsvurderingResultat = ({
iaSak: IASak;
behovsvurderingId: string;
}) => {
//const kartleggingResultat = dummyKartleggingResultat;
//const { loading: lasterKartleggingResultat } =
const { data: kartleggingResultat, loading: lasterKartleggingResultat } =
useHentKartleggingResultat(
iaSak.orgnr,
Expand All @@ -39,13 +38,15 @@ export const BehovsvurderingResultat = ({

return (
<Container>
{kartleggingResultat.spørsmålMedSvarPerTema.map((tema) => (
<TemaResultat
key={tema.navn}
spørsmålMedSvar={tema.spørsmålMedSvar}
navn={tema.navn}
/>
))}
{kartleggingResultat.spørsmålMedSvarPerTema.map(
(tema: TemaResultatDto) => (
<TemaResultat
key={tema.navn}
spørsmålResultat={tema.spørsmålMedSvar}
navn={tema.navn}
/>
),
)}
</Container>
);
};
6 changes: 2 additions & 4 deletions client/src/Pages/Virksomhet/Kartlegging/EksportVisning.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -318,13 +318,11 @@ function EksportInnhold({

return (
<Container>
<BodyShort>
{virksomhetsnavn}
</BodyShort>
<BodyShort>{virksomhetsnavn}</BodyShort>
{kartleggingResultat.spørsmålMedSvarPerTema.map((tema) => (
<TemaResultat
key={tema.navn}
spørsmålMedSvar={tema.spørsmålMedSvar}
spørsmålResultat={tema.spørsmålMedSvar}
navn={tema.navn}
erIEksportMode={true}
headingSize="large"
Expand Down
35 changes: 17 additions & 18 deletions client/src/Pages/Virksomhet/Kartlegging/TemaResultat.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { Heading, HeadingProps, HStack } from "@navikt/ds-react";
import styled from "styled-components";
import BarChart from "./Grafer/BarChart";
import { PersonGroupFillIcon } from "@navikt/aksel-icons";
import { SpørsmålResultatDto } from "../../../domenetyper/iaSakKartleggingResultat";

const TemaContainer = styled.div`
display: grid;
Expand All @@ -19,41 +20,39 @@ const TemaGrafContainer = styled.div`
padding: 2rem;
`;

type SpørsmålMedSvar = {
spørsmålId: string;
tekst: string;
flervalg: boolean;
svarListe: { tekst: string; svarId: string; antallSvar: number }[];
};
interface Props {
navn: string;
spørsmålMedSvar: SpørsmålMedSvar[];
spørsmålResultat: SpørsmålResultatDto[];
erIEksportMode?: boolean;
headingSize?: HeadingProps["size"];
}

export const TemaResultat = ({
navn,
spørsmålMedSvar,
spørsmålResultat,
erIEksportMode = false,
headingSize = "medium",
}: Props) => {
return (
<>
<HStack justify="space-between" align="center">
<Heading
level="3"
size={headingSize}
>
<Heading level="3" size={headingSize}>
{navn}
</Heading>
<AntallDeltakere antallDeltakere={3} />
<AntallDeltakere
antallDeltakere={spørsmålResultat
.map(
(spørsmål: SpørsmålResultatDto) =>
spørsmål.antallDeltakereSomHarSvart,
)
.reduce(
(accumulator, current) => accumulator + current,
)}
/>
</HStack>
<TemaContainer>
{spørsmålMedSvar.map((spørsmål) => (
<TemaGrafContainer
key={spørsmål.spørsmålId}
>
{spørsmålResultat.map((spørsmål: SpørsmålResultatDto) => (
<TemaGrafContainer key={spørsmål.spørsmålId}>
<BarChart
horizontal={spørsmål.flervalg}
spørsmål={spørsmål}
Expand All @@ -74,7 +73,7 @@ const StyledDeltakere = styled(HStack)`
`;

export function AntallDeltakere({
antallDeltakere
antallDeltakere,
}: {
antallDeltakere: number;
}) {
Expand Down
4 changes: 2 additions & 2 deletions client/src/api/lydia-api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ import {
} from "../domenetyper/iaSakKartlegging";
import {
IASakKartleggingResultat,
iaSakKartleggingResultatSchema,
behovsvurderingResultatSchema,
} from "../domenetyper/iaSakKartleggingResultat";
import { IaSakProsess, iaSakProsessSchema } from "../domenetyper/iaSakProsess";
import { MineSaker, mineSakerListSchema } from "../domenetyper/mineSaker";
Expand Down Expand Up @@ -810,7 +810,7 @@ export const useHentKartleggingResultat = (
) => {
return useSwrTemplate<IASakKartleggingResultat>(
`${kartleggingPath}/${orgnummer}/${saksnummer}/${kartleggingId}`,
iaSakKartleggingResultatSchema,
behovsvurderingResultatSchema,
);
};

Expand Down
21 changes: 13 additions & 8 deletions client/src/domenetyper/iaSakKartleggingResultat.ts
Original file line number Diff line number Diff line change
@@ -1,29 +1,34 @@
import { z } from "zod";
export const kartleggingSvarAlternativ = z.object({
export const svaralternativResultatSchema = z.object({
svarId: z.string(),
tekst: z.string(),
antallSvar: z.number(),
});

export const kartleggingSpørsmål = z.object({
export const spørsmålResultatSchema = z.object({
spørsmålId: z.string(),
tekst: z.string(),
flervalg: z.boolean(),
svarListe: z.array(kartleggingSvarAlternativ),
antallDeltakereSomHarSvart: z.number(),
svarListe: z.array(svaralternativResultatSchema),
});

export const spørsmålMedSvarPerTema = z.object({
export type SpørsmålResultatDto = z.infer<typeof spørsmålResultatSchema>;

export const temaResultatSchema = z.object({
navn: z.string(),
spørsmålMedSvar: z.array(kartleggingSpørsmål),
spørsmålMedSvar: z.array(spørsmålResultatSchema),
});

export const iaSakKartleggingResultatSchema = z.object({
export type TemaResultatDto = z.infer<typeof temaResultatSchema>;

export const behovsvurderingResultatSchema = z.object({
kartleggingId: z.string(),
antallUnikeDeltakereMedMinstEttSvar: z.number(),
antallUnikeDeltakereSomHarSvartPåAlt: z.number(),
spørsmålMedSvarPerTema: z.array(spørsmålMedSvarPerTema),
spørsmålMedSvarPerTema: z.array(temaResultatSchema),
});

export type IASakKartleggingResultat = z.infer<
typeof iaSakKartleggingResultatSchema
typeof behovsvurderingResultatSchema
>;

0 comments on commit 92711c5

Please sign in to comment.