diff --git a/src/api/driftApi.ts b/src/api/driftApi.ts index eb79f8a5b..8b67643b7 100644 --- a/src/api/driftApi.ts +++ b/src/api/driftApi.ts @@ -136,3 +136,14 @@ export async function sendPersonhendelser(args: { hendelser: File }): Promise> { + const formData = new FormData(); + formData.append('file', args.hendelser); + + return apiClient({ + url: `/drift/personhendelser/dry`, + method: 'POST', + body: formData, + }); +} diff --git a/src/pages/drift/components/personhendelser/Personhendelser.module.less b/src/pages/drift/components/personhendelser/Personhendelser.module.less index 7c9cba909..02dc432fd 100644 --- a/src/pages/drift/components/personhendelser/Personhendelser.module.less +++ b/src/pages/drift/components/personhendelser/Personhendelser.module.less @@ -1,6 +1,16 @@ @import '@styles/variables.less'; .modalBody { + > :not(:last-child) { + margin-bottom: @spacing; + } +} + +.tabPanel { + padding: @spacing-s 0; +} + +.panelInnholdContainer { display: flex; flex-direction: column; gap: @spacing-s; diff --git a/src/pages/drift/components/personhendelser/Personhendelser.tsx b/src/pages/drift/components/personhendelser/Personhendelser.tsx index df63af2f9..3b0eecadc 100644 --- a/src/pages/drift/components/personhendelser/Personhendelser.tsx +++ b/src/pages/drift/components/personhendelser/Personhendelser.tsx @@ -1,5 +1,5 @@ import * as RemoteData from '@devexperts/remote-data-ts'; -import { Alert, Button, Modal } from '@navikt/ds-react'; +import { Alert, Button, Modal, Tabs } from '@navikt/ds-react'; import { useState } from 'react'; import * as driftApi from '~src/api/driftApi'; @@ -30,7 +30,9 @@ const Personhendelser = () => { const PersonhendelserModal = (props: { visModal: boolean; onClose: () => void }) => { const [sendPersonhendelserStatus, sendPersonHendelser] = useApiCall(driftApi.sendPersonhendelser); + const [dryRunStatus, dryRun] = useApiCall(driftApi.dryRunPersonhendelser); const [personhendelserCSV, setPersonhendelserCSV] = useState>(null); + const [personhendelserCSVDry, setPersonhendelserCSVDry] = useState>(null); const handleSubmit = () => { if (!personhendelserCSV) { @@ -39,6 +41,13 @@ const PersonhendelserModal = (props: { visModal: boolean; onClose: () => void }) } sendPersonHendelser({ hendelser: personhendelserCSV }); }; + const handleDryRun = () => { + if (!personhendelserCSVDry) { + console.log('No file selected'); + return; + } + dryRun({ hendelser: personhendelserCSVDry }); + }; return ( void }) header={{ heading: 'Personhendelser' }} > - (e.target.files ? setPersonhendelserCSV(e.target.files[0]) : null)} - /> + + + + + + +
+ (e.target.files ? setPersonhendelserCSVDry(e.target.files[0]) : null)} + /> + + {RemoteData.isFailure(dryRunStatus) && } + {RemoteData.isSuccess(dryRunStatus) && ( + Dry run av personhendelser OK 👍🤌 + )} + +
+
+ +
+ (e.target.files ? setPersonhendelserCSV(e.target.files[0]) : null)} + /> - {RemoteData.isFailure(sendPersonhendelserStatus) && ( - - )} - {RemoteData.isSuccess(sendPersonhendelserStatus) && ( - Oppdatering av personhendelser OK 👍🤌 - )} - + {RemoteData.isFailure(sendPersonhendelserStatus) && ( + + )} + {RemoteData.isSuccess(sendPersonhendelserStatus) && ( + Oppdatering av personhendelser OK 👍🤌 + )} + +
+
+
);