Skip to content

Commit

Permalink
Ny melding (#2551)
Browse files Browse the repository at this point in the history
* Sett opp struktur for ny melding

* Bruk Tanstack Form og Zod

* Legg til "velg sak"

* Legg til feilhåndtering

* Send melding

* Heading og label

* Kommentar

* Åpne/lukk til egen komponent

* Håndter oppgaveliste

* Sett knapptype

* Lenke til meldinger

* Lint

* Bruk checkbox fra Aksel

* Bruk atom direkte

* Fjern fra utbetaling

* Infer type

* Forbedre validering av melding og forenkle validering av fnr og enhetsId

* Fjern useFodselsnummer

* Enhet fra atom

* Send inn children riktig

* Feilmeldinger

* Flytt ut schema

* Fjern non-null assertions

* Dra ut useSendMelding

* Bruk generert client

* Bruk generert type

* Spesifiser suspending

* Dra ut i komponent

* Dra ut i komponent

* Unsafe fix

* Bruk Select

* Ikke sååå granulere filer

* Trekk ut komponent

* Format/lint

* Format/lint

* Format/lint
  • Loading branch information
oddgfa authored Jan 30, 2025
1 parent ca01369 commit a3d8d9c
Show file tree
Hide file tree
Showing 34 changed files with 713 additions and 53 deletions.
4 changes: 2 additions & 2 deletions src/app/brukerprofil/useUrlNyPersonforvalter.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { usePersonAtomValue } from 'src/lib/state/context';
import aktoridResource from '../../rest/resources/aktoridResource';
import baseurls from '../../rest/resources/baseurlsResource';
import { useFodselsnummer } from '../../utils/customHooks';

function useUrlNyPersonforvalter() {
const baseUrlResource = baseurls.useFetch();
const fnr = useFodselsnummer();
const fnr = usePersonAtomValue();
const aktoridResponse = aktoridResource.useFetch(fnr ?? '');

if (!aktoridResponse.data || !baseUrlResource.data) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { guid } from 'nav-frontend-js-utils';
import { Undertittel } from 'nav-frontend-typografi';
import { type FormEvent, useCallback, useMemo, useRef, useState } from 'react';
import { useDispatch } from 'react-redux';
import { usePersonAtomValue } from 'src/lib/state/context';
import styled from 'styled-components';
import { type FetchError, post } from '../../../../api/api';
import { apiBaseUri } from '../../../../api/config';
Expand All @@ -18,7 +19,6 @@ import dialogResource from '../../../../rest/resources/dialogResource';
import journalsakResource from '../../../../rest/resources/journalsakResource';
import tildelteoppgaver from '../../../../rest/resources/tildelteoppgaverResource';
import theme from '../../../../styles/personOversiktTheme';
import { useFodselsnummer } from '../../../../utils/customHooks';
import { loggError } from '../../../../utils/logger/frontendLogger';
import { erJournalfort } from '../../infotabs/meldinger/utils/meldingerUtils';
import ReflowBoundry from '../ReflowBoundry';
Expand Down Expand Up @@ -73,7 +73,7 @@ function FortsettDialogContainer(props: Props) {
[props.defaultOppgaveDestinasjon, props.traad.traadType]
);

const fnr = useFodselsnummer();
const fnr = usePersonAtomValue();
const tittelId = useRef(guid());
const [state, setState] = useState<FortsettDialogState>(initialState);
const valgtEnhet = useValgtenhet().enhetId;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { AlertStripeFeil } from 'nav-frontend-alertstriper';
import { type JSX, useState } from 'react';
import { useDispatch } from 'react-redux';
import { usePersonAtomValue } from 'src/lib/state/context';
import { RespectConflictError, postWithConflictVerification } from '../../../../api/api';
import { apiBaseUri } from '../../../../api/config';
import { CenteredLazySpinner } from '../../../../components/LazySpinner';
Expand All @@ -12,7 +13,7 @@ import type {
} from '../../../../models/meldinger/meldinger';
import { setIngenValgtTraadDialogpanel } from '../../../../redux/oppgave/actions';
import tildelteoppgaverResource from '../../../../rest/resources/tildelteoppgaverResource';
import { useFodselsnummer, useOnMount } from '../../../../utils/customHooks';
import { useOnMount } from '../../../../utils/customHooks';
import { loggError } from '../../../../utils/logger/frontendLogger';

interface NotFinishedOpprettHenvendelse {
Expand All @@ -33,7 +34,7 @@ function useOpprettHenvendelse(traad: Traad): OpprettHenvendelseReturns {
const [response, setResponse] = useState<OpprettHenvendelseResponse | undefined>();
const tildelteoppgaver = tildelteoppgaverResource.useFetch();
const dispatch = useDispatch();
const fnr = useFodselsnummer();
const fnr = usePersonAtomValue();

useOnMount(function getBehandlingsId() {
const request: OpprettHenvendelseRequestV2 = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { useQueryClient } from '@tanstack/react-query';
import { Block } from '@tanstack/react-router';
import { type FormEvent, useCallback, useMemo, useState } from 'react';
import { usePersonAtomValue } from 'src/lib/state/context';
import { post } from '../../../../api/api';
import { apiBaseUri } from '../../../../api/config';
import IfFeatureToggleOn from '../../../../components/featureToggle/IfFeatureToggleOn';
Expand All @@ -9,7 +10,6 @@ import { useValgtenhet } from '../../../../context/valgtenhet-state';
import { Meldingstype, type SendMeldingRequestV2, type Traad, TraadType } from '../../../../models/meldinger/meldinger';
import dialogResource from '../../../../rest/resources/dialogResource';
import journalsakResource from '../../../../rest/resources/journalsakResource';
import { useFodselsnummer } from '../../../../utils/customHooks';
import useDraft, { type Draft } from '../use-draft';
import { useAlertOnNavigation } from '../useAlertOnNavigation';
import SendNyMelding, { OppgavelisteValg, type SendNyMeldingState } from './SendNyMelding';
Expand All @@ -35,7 +35,7 @@ function SendNyMeldingContainer(props: Props) {
}),
[props.defaultOppgaveDestinasjon]
);
const fnr = useFodselsnummer();
const fnr = usePersonAtomValue();

const valgtEnhet = useValgtenhet().enhetId;
const [state, setState] = useState<SendNyMeldingState>(initialState);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ import { AlertStripeFeil, AlertStripeSuksess } from 'nav-frontend-alertstriper';
import { Flatknapp, Hovedknapp } from 'nav-frontend-knapper';
import { Ingress, Normaltekst, Undertittel } from 'nav-frontend-typografi';
import { useState } from 'react';
import { usePersonAtomValue } from 'src/lib/state/context';
import styled from 'styled-components';
import { post } from '../../../../../../../api/api';
import { apiBaseUri } from '../../../../../../../api/config';
import { useValgtenhet } from '../../../../../../../context/valgtenhet-state';
import type { Traad } from '../../../../../../../models/meldinger/meldinger';
import dialogResource from '../../../../../../../rest/resources/dialogResource';
import journalsakResource from '../../../../../../../rest/resources/journalsakResource';
import { useFodselsnummer } from '../../../../../../../utils/customHooks';
import { formatterDatoMedMaanedsnavnOrNull } from '../../../../../../../utils/date-utils';
import { loggError } from '../../../../../../../utils/logger/frontendLogger';
import { ENDASH } from '../../../../../../../utils/string-utils';
Expand Down Expand Up @@ -50,7 +50,7 @@ export function JournalforSak(props: Props) {
const queryClient = useQueryClient();
const valgtEnhet = useValgtenhet().enhetId;
const kategori = sakKategori(props.sak);
const fnr = useFodselsnummer();
const fnr = usePersonAtomValue();
const [submitting, setSubmitting] = useState(false);
const [error, setError] = useState<string | null>(null);
const [journalforingSuksess, setJournalforingSuksess] = useState(false);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { useEffect, useMemo, useState } from 'react';
import type { UseFormReturn } from 'react-hook-form';
import { usePersonAtomValue } from 'src/lib/state/context';
import { apiBaseUri, postConfig } from '../../../../../../../api/config';
import type { Enhet } from '../../../../../../../models/meldinger/oppgave';
import { useFodselsnummer } from '../../../../../../../utils/customHooks';
import { loggError, loggEvent } from '../../../../../../../utils/logger/frontendLogger';
import type { OppgaveSkjemaForm } from './oppgaveInterfaces';

function useForeslatteEnheter({ watch }: UseFormReturn<OppgaveSkjemaForm>) {
const fnr = useFodselsnummer();
const fnr = usePersonAtomValue();

const temakode = watch('valgtTema');
const typekode = watch('valgtOppgavetype');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,14 @@ import { TabsPure } from 'nav-frontend-tabs';
import type { TabProps } from 'nav-frontend-tabs/lib/tab';
import { Undertittel } from 'nav-frontend-typografi';
import { createRef } from 'react';
import { usePersonAtomValue } from 'src/lib/state/context';
import styled from 'styled-components';
import ErrorBoundary from '../../../../../components/ErrorBoundary';
import { TilbakePil } from '../../../../../components/common-styled-components';
import type { Dokument, Journalpost } from '../../../../../models/saksoversikt/journalpost';
import type { SakstemaSoknadsstatus } from '../../../../../models/saksoversikt/sakstema';
import theme, { pxToRem } from '../../../../../styles/personOversiktTheme';
import { useFocusOnMount, useFodselsnummer } from '../../../../../utils/customHooks';
import { useFocusOnMount } from '../../../../../utils/customHooks';
import { useHentAlleSakstemaFraResourceV2 } from '../useSakstemaURLState';
import { aggregertSakstemaV2 } from '../utils/saksoversiktUtilsV2';
import DokumentVisning from './SaksDokumentVisning';
Expand Down Expand Up @@ -60,7 +61,7 @@ function DokumentOgVedlegg(props: Props) {
const match = useMatchRoute();
const fullscreen = match({ to: '/saker' });
const navigate = useNavigate();
const fodselsnummer = useFodselsnummer();
const fodselsnummer = usePersonAtomValue();
const { alleSakstema } = useHentAlleSakstemaFraResourceV2();

useFocusOnMount(ref);
Expand Down
4 changes: 2 additions & 2 deletions src/app/personside/infotabs/ytelser/useBrukersYtelser.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import type { UseQueryResult } from '@tanstack/react-query';
import { AlertStripeAdvarsel } from 'nav-frontend-alertstriper';
import { type ReactNode, useMemo } from 'react';
import { usePersonAtomValue } from 'src/lib/state/context';
import type { FetchError } from '../../../../api/api';
import { type Ytelse, getYtelseIdDato } from '../../../../models/ytelse/ytelse-utils';
import type { FraTilDato } from '../../../../redux/utbetalinger/types';
import { useForeldrepenger } from '../../../../rest/resources/foreldrepengerResource';
import { usePleiepenger } from '../../../../rest/resources/pleiepengerResource';
import { useSykepenger } from '../../../../rest/resources/sykepengerResource';
import { useTiltakspenger } from '../../../../rest/resources/tiltakspengerResource';
import { useFodselsnummer } from '../../../../utils/customHooks';
import { datoSynkende } from '../../../../utils/date-utils';

interface Returns {
Expand Down Expand Up @@ -55,7 +55,7 @@ function placeholder(resource: UseQueryResult<any, FetchError>, tekster: Placeho
}

function useBrukersYtelser(periode: FraTilDato): Returns {
const fnr = useFodselsnummer();
const fnr = usePersonAtomValue();
const foreldrepengerResponse = useForeldrepenger(fnr, periode.fra, periode.til);
const pleiepengerResponse = usePleiepenger(fnr, periode.fra, periode.til);
const sykepengerResponse = useSykepenger(fnr, periode.fra, periode.til);
Expand Down
23 changes: 23 additions & 0 deletions src/components/melding/AvsluttDialogEtterSending.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import { Checkbox, CheckboxGroup, Label, VStack } from '@navikt/ds-react';
import { MeldingsType } from 'src/components/melding/VelgMeldingsType';

interface AvsluttDialogEtterSendingProps {
meldingsType: MeldingsType;
setMeldingsType: (meldingsType: MeldingsType) => void;
}

export default function AvsluttDialogEtterSending({ meldingsType, setMeldingsType }: AvsluttDialogEtterSendingProps) {
return (
<VStack gap="1">
<CheckboxGroup legend="Avslutt dialog etter sending">
<Checkbox
value={MeldingsType.Infomelding}
checked={meldingsType === MeldingsType.Infomelding}
onChange={() => setMeldingsType(MeldingsType.Infomelding)}
>
<Label>Gjør om til infomelding</Label>
</Checkbox>
</CheckboxGroup>
</VStack>
);
}
29 changes: 29 additions & 0 deletions src/components/melding/LukkbarNyMelding.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { ChatIcon, MinusIcon } from '@navikt/aksel-icons';
import { Button, HStack } from '@navikt/ds-react';
import { useState } from 'react';
import NyMelding from 'src/components/melding/NyMelding';

export function LukkbarNyMelding() {
const [isOpen, setIsOpen] = useState(false);

return (
<HStack>
{!isOpen && (
<Button type="button" icon={<ChatIcon title="Skriv ny melding" />} onClick={() => setIsOpen(true)} />
)}
{isOpen && (
<NyMelding
lukkeKnapp={
<Button
type="button"
icon={<MinusIcon title="Lukk" />}
variant="tertiary"
size="small"
onClick={() => setIsOpen(false)}
/>
}
/>
)}
</HStack>
);
}
Loading

0 comments on commit a3d8d9c

Please sign in to comment.