From 49c6991e631956ade91193d4d2807dbfee4eb13a Mon Sep 17 00:00:00 2001 From: ebelegu Date: Wed, 14 Aug 2024 13:58:31 +0200 Subject: [PATCH] =?UTF-8?q?Testprodusent-=20OppdaterKalenderavtale=20st?= =?UTF-8?q?=C3=B8tter=20tilstand?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Komponenter/KalenderAvtale.tsx | 374 ++++++++++-------- 1 file changed, 218 insertions(+), 156 deletions(-) diff --git a/test-produsent/src/Komponenter/KalenderAvtale.tsx b/test-produsent/src/Komponenter/KalenderAvtale.tsx index 424d11180..3414d6386 100644 --- a/test-produsent/src/Komponenter/KalenderAvtale.tsx +++ b/test-produsent/src/Komponenter/KalenderAvtale.tsx @@ -1,5 +1,5 @@ -import {gql, useMutation} from "@apollo/client"; -import {print} from "graphql/language"; +import { gql, useMutation } from '@apollo/client'; +import { print } from 'graphql/language'; import React, { useContext, useState, @@ -7,14 +7,14 @@ import React, { useEffect, forwardRef, useImperativeHandle, -} from "react"; -import {Mutation} from "../api/graphql-types.ts"; -import {Button, Checkbox, Heading, TextField, ToggleGroup} from "@navikt/ds-react"; -import cssClasses from "./KalenderAvtale.module.css"; -import {Prism as SyntaxHighlighter} from 'react-syntax-highlighter'; -import {darcula} from 'react-syntax-highlighter/dist/esm/styles/prism'; -import {GrupperingsidContext} from "../App.tsx"; -import {EksternVarsel, formateEksternVarsel, formaterPåminnelse} from "./EksternVarsling.tsx"; +} from 'react'; +import { KalenderavtaleTilstand, Mutation } from '../api/graphql-types.ts'; +import { Button, Checkbox, Heading, Select, TextField, ToggleGroup } from '@navikt/ds-react'; +import cssClasses from './KalenderAvtale.module.css'; +import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter'; +import { darcula } from 'react-syntax-highlighter/dist/esm/styles/prism'; +import { GrupperingsidContext } from '../App.tsx'; +import { EksternVarsel, formateEksternVarsel, formaterPåminnelse } from './EksternVarsling.tsx'; const NY_KALENDERAVTALE = gql` mutation ( @@ -31,13 +31,8 @@ const NY_KALENDERAVTALE = gql` $erDigitalt: Boolean ) { nyKalenderavtale( - mottakere: [{ - altinn: { - serviceCode: "4936" - serviceEdition: "1" - } - }] - virksomhetsnummer: $virksomhetsnummer, + mottakere: [{ altinn: { serviceCode: "4936", serviceEdition: "1" } }] + virksomhetsnummer: $virksomhetsnummer grupperingsid: $grupperingsid eksternId: $eksternId startTidspunkt: $startTidspunkt @@ -59,41 +54,36 @@ const NY_KALENDERAVTALE = gql` } } } -` -const nullIfEmpty = (s: string | undefined) => s === "" || s === undefined ? null : s - +`; +const nullIfEmpty = (s: string | undefined) => (s === '' || s === undefined ? null : s); const datePlus = (days: number = 0, hours: number = 0) => { const date = new Date(); - date.setDate(date.getDate() + days) - date.setHours(date.getHours() + hours) - return date -} + date.setDate(date.getDate() + days); + date.setHours(date.getHours() + hours); + return date; +}; export const NyKalenderAvtale: FunctionComponent = () => { - const [nyKalenderavtale, { - data, - loading, - error - }] = useMutation>(NY_KALENDERAVTALE) + const [nyKalenderavtale, { data, loading, error }] = + useMutation>(NY_KALENDERAVTALE); - const [påminnelse, setPåminnelse] = useState(false) + const [påminnelse, setPåminnelse] = useState(false); - const grupperingsid = useContext(GrupperingsidContext) + const grupperingsid = useContext(GrupperingsidContext); const grupperingsidRef = React.useRef(null); - const virksomhetsnummerRef = React.useRef(null) - const tekstRef = React.useRef(null) - const startTidspunktRef = React.useRef(null) - const sluttTidspunktRef = React.useRef(null) - const eksternIdRef = React.useRef(null) - const lokasjonRef = React.useRef(null) - const lenkeRef = React.useRef(null) + const virksomhetsnummerRef = React.useRef(null); + const tekstRef = React.useRef(null); + const startTidspunktRef = React.useRef(null); + const sluttTidspunktRef = React.useRef(null); + const eksternIdRef = React.useRef(null); + const lokasjonRef = React.useRef(null); + const lenkeRef = React.useRef(null); const merkelappRef = React.useRef(null); const eksternVarselRef = React.useRef(null); - const handleSend = () => { nyKalenderavtale({ variables: { @@ -108,114 +98,163 @@ export const NyKalenderAvtale: FunctionComponent = () => { lokasjon: lokasjonRef.current?.hentLokasjon(), merkelapp: nullIfEmpty(merkelappRef.current?.value), eksterneVarsler: formateEksternVarsel(eksternVarselRef), - erDigitalt: lokasjonRef.current?.hentDigitalt() - } - }) - } + erDigitalt: lokasjonRef.current?.hentDigitalt(), + }, + }); + }; useEffect(() => { if (grupperingsidRef.current !== null) { - grupperingsidRef.current.value = grupperingsid + grupperingsidRef.current.value = grupperingsid; } }, [grupperingsid]); - return
- - {print(NY_KALENDERAVTALE)} - - -
-
- - - - - - - - - -
-
- -
- -
- setPåminnelse(v === "Send påminnelse")} - label="Påminnelse"> - Ingen - Send påminnelse - + return ( +
+ + {print(NY_KALENDERAVTALE)} + + +
+
+ + + + + + + + + +
+
+ +
+ +
+ setPåminnelse(v === 'Send påminnelse')} + label="Påminnelse" + > + Ingen + + Send påminnelse + + +
-
- - {loading &&

Laster...

} - {error && - {JSON.stringify(error, null, 2)}} - {data && - {JSON.stringify(data, null, 2)}} -
-} + {loading &&

Laster...

} + {error && ( + + {JSON.stringify(error, null, 2)} + + )} + {data && ( + + {JSON.stringify(data, null, 2)} + + )} +
+ ); +}; type Lokasjon = { - hentLokasjon: () => - { - adresse: string, - postnummer: string, - poststed: string - }, - hentDigitalt: () => boolean -} + hentLokasjon: () => { + adresse: string; + postnummer: string; + poststed: string; + }; + hentDigitalt: () => boolean; +}; const Lokasjon = forwardRef((_props, ref) => { const adresseRef = React.useRef(null); const postnummerRef = React.useRef(null); const poststedRef = React.useRef(null); - const [kunDigitalt, setKunDigitalt] = useState(true) - const [erDigitalt, setErDigitalt] = useState(false) + const [kunDigitalt, setKunDigitalt] = useState(true); + const [erDigitalt, setErDigitalt] = useState(false); useImperativeHandle(ref, () => ({ hentLokasjon: () => { - const adresse = nullIfEmpty(adresseRef.current?.value) - const postnummer = nullIfEmpty(postnummerRef.current?.value) - const poststed = nullIfEmpty(poststedRef.current?.value) + const adresse = nullIfEmpty(adresseRef.current?.value); + const postnummer = nullIfEmpty(postnummerRef.current?.value); + const poststed = nullIfEmpty(poststedRef.current?.value); if (adresse === null || postnummer === null || poststed === null) { - return null + return null; } return { adresse: adresse, postnummer: postnummer, - poststed: poststed - } + poststed: poststed, + }; }, - hentDigitalt: () => erDigitalt || kunDigitalt - })) - - return
-
- Lokasjon - setKunDigitalt(!kunDigitalt)} checked={kunDigitalt}> Kun digitalt + hentDigitalt: () => erDigitalt || kunDigitalt, + })); + + return ( +
+
+ + Lokasjon + + setKunDigitalt(!kunDigitalt)} checked={kunDigitalt}> + {' '} + Kun digitalt{' '} + +
+ {kunDigitalt ? null : ( + <> + + + + setErDigitalt(!erDigitalt)} checked={erDigitalt}> + {' '} + Digitalt{' '} + + + )}
- {kunDigitalt ? null : <> - - - - setErDigitalt(!erDigitalt)} checked={erDigitalt}> Digitalt - - } -
-}) - + ); +}); const OPPDATER_KALENDERAVTALE_MED_VARSLING = gql` mutation ( $id: ID! $lenke: String + $nyTilstand: KalenderavtaleTilstand $tekst: String $idempotenceKey: String $eksterneVarsler: [EksterntVarselInput!]! = [] @@ -225,6 +264,7 @@ const OPPDATER_KALENDERAVTALE_MED_VARSLING = gql` id: $id idempotencyKey: $idempotenceKey nyLenke: $lenke + nyTilstand: $nyTilstand nyTekst: $tekst nyLokasjon: $lokasjon eksterneVarsler: $eksterneVarsler @@ -238,16 +278,15 @@ const OPPDATER_KALENDERAVTALE_MED_VARSLING = gql` } } } -` +`; export const OppdaterKalenderAvtale: FunctionComponent = () => { - const [oppdaterKalenderavtale, { - data, - loading, - error - }] = useMutation>(OPPDATER_KALENDERAVTALE_MED_VARSLING) + const [oppdaterKalenderavtale, { data, loading, error }] = useMutation< + Pick + >(OPPDATER_KALENDERAVTALE_MED_VARSLING); const notifikasjonIdRef = React.useRef(null); + const nyTilstand = React.useRef(null); const lenkeRef = React.useRef(null); const tekstRef = React.useRef(null); const eksternVarselRef = React.useRef(null); @@ -256,41 +295,64 @@ export const OppdaterKalenderAvtale: FunctionComponent = () => { const handleSend = () => { oppdaterKalenderavtale({ variables: { - id: nullIfEmpty(notifikasjonIdRef.current?.value ?? ""), - lenke: nullIfEmpty(lenkeRef.current?.value ?? ""), - tekst: nullIfEmpty(tekstRef.current?.value ?? ""), + id: nullIfEmpty(notifikasjonIdRef.current?.value ?? ''), + lenke: nullIfEmpty(lenkeRef.current?.value ?? ''), + nyTilstand: nullIfEmpty(nyTilstand.current?.value ?? ''), + tekst: nullIfEmpty(tekstRef.current?.value ?? ''), eksterneVarsler: formateEksternVarsel(eksternVarselRef), - lokasjon: lokasjonRef.current?.hentLokasjon() - } - }) - } - - - return
- - - {print(OPPDATER_KALENDERAVTALE_MED_VARSLING)} - - -
-
- - - - - -
-
- -
- + lokasjon: lokasjonRef.current?.hentLokasjon(), + }, + }); + }; + + return ( +
+ + {print(OPPDATER_KALENDERAVTALE_MED_VARSLING)} + + +
+
+ + + + + + +
+
+ +
+ +
+ {loading &&

Laster...

} + {error && ( + + {JSON.stringify(error, null, 2)} + + )} + {data && ( + + {JSON.stringify(data, null, 2)} + + )}
- {loading &&

Laster...

} - {error && - {JSON.stringify(error, null, 2)}} - {data && {JSON.stringify(data, null, 2)}} - -
-} \ No newline at end of file + ); +};