Skip to content

Commit ed12d6c

Browse files
authoredFeb 11, 2025··
Fleksible kolonner på neste 10 oppgaver (#3648)
1 parent 33f5436 commit ed12d6c

File tree

6 files changed

+84
-85
lines changed

6 files changed

+84
-85
lines changed
 

‎src/client/app/api/queries/saksbehandlerQueries.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import { OppgaveStatus } from 'saksbehandler/oppgaveStatusTsType';
99
import Oppgave from 'saksbehandler/oppgaveTsType';
1010
import { SøkeboksOppgaveDto } from 'saksbehandler/sokeboks/SøkeboksOppgaveDto';
1111
import EndreOppgaveType from 'types/EndreOppgaveType';
12+
import { NesteOppgaverFraKoDto } from 'types/NesteOppgaverFraKoDto';
1213
import { OppgaveNøkkel } from 'types/OppgaveNøkkel';
13-
import OppgaveV3 from 'types/OppgaveV3';
1414
import { OppgavekøV3 } from 'types/OppgavekøV3Type';
1515
import { axiosInstance } from 'utils/reactQueryConfig';
1616

@@ -45,11 +45,11 @@ export const useAlleSaksbehandlerKoerV3 = (options?: Omit<UseQueryOptions<Oppgav
4545
...options,
4646
});
4747

48-
export const useSaksbehandlerNesteTiV3 = (
48+
export const useNesteOppgaverFraKø = (
4949
id: string,
50-
options?: Omit<UseQueryOptions<OppgaveV3[], Error>, 'queryKey'>,
50+
options?: Omit<UseQueryOptions<NesteOppgaverFraKoDto, Error>, 'queryKey'>,
5151
) =>
52-
useQuery<OppgaveV3[], Error, OppgaveV3[]>({
52+
useQuery<NesteOppgaverFraKoDto, Error, NesteOppgaverFraKoDto>({
5353
queryKey: [apiPaths.hentTiNesteIKoV3(id)],
5454
...options,
5555
});

‎src/client/app/saksbehandler/behandlingskoer/components/OppgavekoPanel.tsx

+6-5
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,12 @@ import { erKoV3, getKoId } from '../utils';
1515
import OppgavekoVelgerForm from './OppgavekoVelgerForm';
1616
import * as styles from './oppgavekoPanel.css';
1717
import OppgaverTabell from './oppgavetabeller/OppgaverTabell';
18-
import { OppgavetabellV3Container } from './oppgavetabeller/OppgavetabellV3Container';
18+
import { OppgavetabellV3 } from './oppgavetabeller/OppgavetabellV3';
1919

2020
interface OwnProps {
2121
apneOppgave: (oppgave: Oppgave) => void;
2222
}
2323

24-
/**
25-
* OppgavekoPanel
26-
*/
2724
const OppgavekoPanel: FunctionComponent<OwnProps> = ({ apneOppgave }) => {
2825
const [visBehandlingerIKo, setVisBehandlingerIKo] = useState<boolean>(false);
2926
const [loadingOppgaveFraKo, setLoadingOppgaveFraKo] = useState<boolean>(false);
@@ -126,7 +123,11 @@ const OppgavekoPanel: FunctionComponent<OwnProps> = ({ apneOppgave }) => {
126123

127124
{visBehandlingerIKo &&
128125
valgtOppgaveko &&
129-
(erKoV3(valgtOppgaveko.id) ? <OppgavetabellV3Container /> : <OppgaverTabell valgtKo={valgtOppgaveko} />)}
126+
(erKoV3(valgtOppgaveko.id) ? (
127+
<OppgavetabellV3 køId={valgtOppgavekoId} />
128+
) : (
129+
<OppgaverTabell valgtKo={valgtOppgaveko} />
130+
))}
130131
</div>
131132
</div>
132133
);

‎src/client/app/saksbehandler/behandlingskoer/components/oppgavetabeller/OppgaverTabellV3.tsx

-43
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
import React from 'react';
2+
import { FormattedMessage } from 'react-intl';
3+
import dayjs from 'dayjs';
4+
import { BodyShort, ErrorMessage, Loader, Table } from '@navikt/ds-react';
5+
import { useNesteOppgaverFraKø } from 'api/queries/saksbehandlerQueries';
6+
import * as styles from 'saksbehandler/behandlingskoer/components/oppgavetabeller/oppgaverTabell.css';
7+
import { getKoId } from 'saksbehandler/behandlingskoer/utils';
8+
import VerticalSpacer from 'sharedComponents/VerticalSpacer';
9+
10+
export const OppgavetabellV3 = ({ køId }: { køId: string }) => {
11+
const { data: { rader, kolonner } = {}, error, isLoading, isSuccess } = useNesteOppgaverFraKø(getKoId(køId));
12+
13+
if (isLoading) {
14+
return <Loader size="2xlarge" className={styles.spinner} />;
15+
}
16+
if (error) {
17+
return (
18+
<ErrorMessage>
19+
<FormattedMessage id="OppgaverTabell.KunneIkkeHenteOppgaver" />
20+
</ErrorMessage>
21+
);
22+
}
23+
24+
if (isSuccess && rader.length === 0) {
25+
return (
26+
<>
27+
<VerticalSpacer eightPx />
28+
<BodyShort size="small">
29+
<FormattedMessage id="OppgaverTabell.IngenOppgaver" />
30+
</BodyShort>
31+
</>
32+
);
33+
}
34+
35+
const kolonnekoder = Object.keys(kolonner);
36+
37+
return (
38+
<Table>
39+
<Table.Header>
40+
<Table.Row>
41+
{kolonnekoder.map((kode) => (
42+
<Table.HeaderCell key={kode}>{kolonner[kode]}</Table.HeaderCell>
43+
))}
44+
</Table.Row>
45+
</Table.Header>
46+
<Table.Body>
47+
{rader.map((rad) => {
48+
const { id } = rad;
49+
return (
50+
<Table.Row key={id}>
51+
{kolonnekoder.map((kode) => {
52+
const verdi = rad[kode] ?? '';
53+
if (/^\d{4}-\d{2}-\d{2}/.test(verdi)) {
54+
const dato = dayjs(verdi).format('DD.MM.YYYY');
55+
const tidspunkt = dayjs(verdi).format('DD.MM.YYYY kl. HH:mm:ss');
56+
return (
57+
<Table.DataCell key={kode} title={tidspunkt}>
58+
{dato}
59+
</Table.DataCell>
60+
);
61+
}
62+
return <Table.DataCell key={kode}>{verdi}</Table.DataCell>;
63+
})}
64+
</Table.Row>
65+
);
66+
})}
67+
</Table.Body>
68+
</Table>
69+
);
70+
};

‎src/client/app/saksbehandler/behandlingskoer/components/oppgavetabeller/OppgavetabellV3Container.tsx

-33
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export type NesteOppgaverFraKoDto = {
2+
kolonner: Record<string, string>;
3+
rader: Record<string, string>[];
4+
};

0 commit comments

Comments
 (0)
Please sign in to comment.