Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

wip #958

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

wip #958

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ export const SendButtons = ({ document }: FinishProps) => {
const { data: documents = [] } = useGetDocumentsQuery(typeof data !== 'undefined' ? data.id : skipToken);
const remove = useRemoveDocument();
const { close, setValidationErrors } = useContext(ModalContext);
const [suggestedBrevmottakere] = useSuggestedBrevmottakere(document);
const [suggestedBrevmottakere] = useSuggestedBrevmottakere(document.mottakerList, document.templateId);
const reachableSuggestedRecipients = suggestedBrevmottakere.filter((s) => s.reachable);

if (oppgaveIsLoading || data === undefined) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,24 @@ import { getIsRolQuestions } from '@app/components/documents/new-documents/helpe
import { AnnenInngaaende } from '@app/components/documents/new-documents/modal/annen-inngaaende';
import { FinishButton } from '@app/components/documents/new-documents/modal/finish-button';
import { Errors } from '@app/components/documents/new-documents/modal/finish-document/errors';
import { Receipients } from '@app/components/documents/new-documents/modal/finish-document/recipients';
import { MottattDato } from '@app/components/documents/new-documents/modal/mottatt-dato';
import { PDFPreview } from '@app/components/documents/new-documents/modal/pdf-preview/pdf-preview';
import { SetDocumentType } from '@app/components/documents/new-documents/new-document/set-type';
import { DocumentDate } from '@app/components/documents/new-documents/shared/document-date';
import { DocumentIcon } from '@app/components/documents/new-documents/shared/document-icon';
import { SetFilename } from '@app/components/documents/set-filename';
import { isSendError } from '@app/components/receivers/is-send-error';
import { Receivers } from '@app/components/receivers/receivers';
import { useNoFlickerReloadPdf } from '@app/components/view-pdf/no-flicker-reload';
import { getIsIncomingDocument } from '@app/functions/is-incoming-document';
import { useOppgaveId } from '@app/hooks/oppgavebehandling/use-oppgave-id';
import { useCanEditDocument } from '@app/hooks/use-can-document/use-can-edit-document';
import { useAttachments } from '@app/hooks/use-parent-document';
import { useSetTitleMutation } from '@app/redux-api/oppgaver/mutations/documents';
import {
useFinishDocumentMutation,
useSetMottakerListMutation,
useSetTitleMutation,
} from '@app/redux-api/oppgaver/mutations/documents';
import {
DISTRIBUTION_TYPE_NAMES,
DOCUMENT_TYPE_NAMES,
Expand All @@ -25,7 +30,7 @@ import {
import { CalendarIcon, CheckmarkIcon } from '@navikt/aksel-icons';
import { Button, HStack, Modal, Tag, VStack } from '@navikt/ds-react';
import { skipToken } from '@reduxjs/toolkit/query';
import { useState } from 'react';
import { useMemo, useState } from 'react';
import { styled } from 'styled-components';
import { DeleteDocumentButton } from './delete-button';
import { SetParentDocument } from './set-parent';
Expand All @@ -38,6 +43,17 @@ interface Props {

// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: ¯\_(ツ)_/¯
export const DocumentModalContent = ({ document, parentDocument, containsRolAttachments }: Props) => {
const [setMottakerList] = useSetMottakerListMutation();
const [, { error: finishError }] = useFinishDocumentMutation({
fixedCacheKey: document.id,
});
const sendErrors = useMemo(() => {
if (isSendError(finishError)) {
return finishError.data.sections.find((s) => s.section === 'mottakere')?.properties ?? [];
}

return [];
}, [finishError]);
const canEditDocument = useCanEditDocument(document, parentDocument);
const { pdfOrSmartDocuments, journalfoerteDocuments } = useAttachments(document.id);
const [setTitle] = useSetTitleMutation();
Expand All @@ -49,6 +65,10 @@ export const DocumentModalContent = ({ document, parentDocument, containsRolAtta
: `/api/kabal-api/behandlinger/${oppgaveId}/dokumenter/mergedocuments/${document.id}/pdf`;
const noFlickerReload = useNoFlickerReloadPdf(pdfUrl, setPdfLoading);

if (oppgaveId === skipToken) {
return null;
}

const icon = <DocumentIcon type={document.type} />;

const isNotat = document.dokumentTypeId === DistribusjonsType.NOTAT;
Expand Down Expand Up @@ -77,13 +97,7 @@ export const DocumentModalContent = ({ document, parentDocument, containsRolAtta
<HStack align="end" gap="2" wrap={false}>
<StyledSetFilename
tittel={document.tittel}
setFilename={(title) => {
if (oppgaveId === skipToken) {
return;
}

setTitle({ oppgaveId, dokumentId: document.id, title });
}}
setFilename={(title) => setTitle({ oppgaveId, dokumentId: document.id, title })}
/>
<Button
size="small"
Expand Down Expand Up @@ -114,7 +128,14 @@ export const DocumentModalContent = ({ document, parentDocument, containsRolAtta
<AnnenInngaaende document={document} canEditDocument={canEditDocument} />
) : null}

{canEditDocument && !isNotat && isMainDocument ? <Receipients {...document} /> : null}
{canEditDocument && !isNotat && isMainDocument ? (
<Receivers
setMottakerList={(mottakerList) => setMottakerList({ oppgaveId, dokumentId: document.id, mottakerList })}
mottakere={document.mottakerList}
templateId={document.templateId}
sendErrors={sendErrors}
/>
) : null}

<Errors updatePdf={noFlickerReload.onReload} />
</VStack>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { EditAddress } from '@app/components/documents/new-documents/modal/finish-document/address/edit-address';
import { ReadAddress } from '@app/components/documents/new-documents/modal/finish-document/address/read-address';
import type { Addresses } from '@app/components/documents/new-documents/modal/finish-document/address/types';
import { EditAddress } from '@app/components/receivers/address/edit-address';
import { ReadAddress } from '@app/components/receivers/address/read-address';
import type { Addresses } from '@app/components/receivers/address/types';
import { HandlingEnum, type IAddress } from '@app/types/documents/recipients';
import type { IPart } from '@app/types/oppgave-common';
import { useEffect, useState } from 'react';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { StaticDataContext } from '@app/components/app/static-data-context';
import { Option } from '@app/components/documents/new-documents/modal/finish-document/address/country/option';
import { Option } from '@app/components/receivers/address/country/option';
import type { CountryCode } from '@app/types/common';
import { ArrowUndoIcon } from '@navikt/aksel-icons';
import { Button, HStack, Search, Tag, Tooltip } from '@navikt/ds-react';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { StaticDataContext } from '@app/components/app/static-data-context';
import { Country } from '@app/components/documents/new-documents/modal/finish-document/address/country/country';
import { AddressField } from '@app/components/documents/new-documents/modal/finish-document/address/field';
import { AddressState, Container } from '@app/components/documents/new-documents/modal/finish-document/address/layout';
import { Postnummer } from '@app/components/documents/new-documents/modal/finish-document/address/postnummer';
import type { Addresses } from '@app/components/documents/new-documents/modal/finish-document/address/types';
import { Country } from '@app/components/receivers/address/country/country';
import { AddressField } from '@app/components/receivers/address/field';
import { AddressState, Container } from '@app/components/receivers/address/layout';
import { Postnummer } from '@app/components/receivers/address/postnummer';
import type { Addresses } from '@app/components/receivers/address/types';
import { areAddressesEqual } from '@app/functions/are-addresses-equal';
import type { IAddress } from '@app/types/documents/recipients';
import { ArrowUndoIcon } from '@navikt/aksel-icons';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,22 +27,3 @@ const getBackgroundColor = (state: AddressState) => {
return 'var(--a-surface-warning-subtle)';
}
};

export const StyledRecipient = styled.div<{ $accent: string }>`
display: flex;
flex-direction: column;
border-radius: var(--a-border-radius-medium);
padding: 0;
margin-bottom: var(--a-spacing-2);
border-top-width: 1px;
border-bottom-width: 1px;
border-right-width: 1px;
border-left-width: var(--a-spacing-1);
border-style: solid;
border-color: var(--a-border-default);
border-left-color: ${({ $accent }) => $accent};

&:last-child {
margin-bottom: 0;
}
`;
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { StaticDataContext } from '@app/components/app/static-data-context';
import { AddressField } from '@app/components/documents/new-documents/modal/finish-document/address/field';
import { AddressField } from '@app/components/receivers/address/field';
import { BodyShort, HStack, Label, VStack } from '@navikt/ds-react';
import { useContext, useId } from 'react';
import { styled } from 'styled-components';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { StaticDataContext } from '@app/components/app/static-data-context';
import { AddressState, Container } from '@app/components/documents/new-documents/modal/finish-document/address/layout';
import type { Addresses } from '@app/components/documents/new-documents/modal/finish-document/address/types';
import { AddressState, Container } from '@app/components/receivers/address/layout';
import type { Addresses } from '@app/components/receivers/address/types';
import { areAddressesEqual } from '@app/functions/are-addresses-equal';
import { isNotNull } from '@app/functions/is-not-type-guards';
import { type IAddress, isNorwegianAddress } from '@app/types/documents/recipients';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
import { CopyIdButton } from '@app/components/copy-button/copy-id-button';
import { StyledRecipient } from '@app/components/documents/new-documents/modal/finish-document/address/layout';
import { getInitalHandling } from '@app/components/documents/new-documents/modal/finish-document/functions';
import { Options } from '@app/components/documents/new-documents/modal/finish-document/options';
import { PartStatusList } from '@app/components/part-status-list/part-status-list';
import { EditPart } from '@app/components/part/edit-part';
import { getInitalHandling } from '@app/components/receivers/functions';
import type { IErrorProperty } from '@app/components/receivers/is-send-error';
import { Options } from '@app/components/receivers/options';
import { StyledRecipient } from '@app/components/receivers/styled-components';
import type { IMottaker } from '@app/types/documents/documents';
import { IdType } from '@app/types/oppgave-common';
import type { TemplateIdEnum } from '@app/types/smart-editor/template-enums';
import { Buildings3Icon, PersonIcon, TrashIcon } from '@navikt/aksel-icons';
import { Button, HStack, Label, Tag, Tooltip } from '@navikt/ds-react';
import { styled } from 'styled-components';
import type { IErrorProperty } from './is-send-error';

interface Props {
mottakerList: IMottaker[];
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Address } from '@app/components/documents/new-documents/modal/finish-document/address/address';
import { Address } from '@app/components/receivers/address/address';
import { areAddressesEqual } from '@app/functions/are-addresses-equal';
import type { IMottaker } from '@app/types/documents/documents';
import { HandlingEnum, type IAddress } from '@app/types/documents/recipients';
Expand Down
Loading