Skip to content

Commit c424a02

Browse files
committed
✨ Oppgavetabellen blir grået litt ut når det pågår henting fra backend
Det var overhodet ingen indikasjon til saksbehandlere om at det pågikk oppdatering av tabellinnholdet når man eksempelvis trykket seg til neste side eller valgte inn eller ut en egenskap (filtrering).
1 parent ae199bf commit c424a02

File tree

5 files changed

+31
-4
lines changed

5 files changed

+31
-4
lines changed

src/routes/oversikt/Oversikt.tsx

+7-2
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,11 @@ export const Oversikt = (): ReactElement => {
4040
const aktivTab = useAktivTab();
4141
const { allFilters } = useFilters();
4242

43-
useLoadingToast({ isLoading: oppgaveFeed.loading, message: 'Henter oppgaver' });
43+
// oppgaveFeed.oppgaver blir undefined hvis man velger inn eller ut egenskaper og det blir en request apollo client
44+
// ikke har gjort ennå
45+
const harIkkeHentetOppgaverForGjeldendeQuery = oppgaveFeed.oppgaver === undefined && oppgaveFeed.loading;
46+
47+
useLoadingToast({ isLoading: harIkkeHentetOppgaverForGjeldendeQuery, message: 'Henter oppgaver' });
4448
useKeyboardShortcuts();
4549
useFjernPersonFraApolloCache();
4650
useRefetchDriftsmeldinger();
@@ -58,11 +62,12 @@ export const Oversikt = (): ReactElement => {
5862
<section className={styles.Content}>
5963
{aktivTab === TabType.BehandletIdag ? (
6064
<BehandletIdagTable />
61-
) : oppgaveFeed.loading ? (
65+
) : harIkkeHentetOppgaverForGjeldendeQuery ? (
6266
<OppgaverTableSkeleton />
6367
) : oppgaveFeed.oppgaver ? (
6468
<OppgaverTable
6569
oppgaver={oppgaveFeed.oppgaver}
70+
loading={oppgaveFeed.loading}
6671
antallOppgaver={oppgaveFeed.antallOppgaver}
6772
numberOfPages={oppgaveFeed.numberOfPages}
6873
currentPage={oppgaveFeed.currentPage}

src/routes/oversikt/table/oppgaverTable/OppgaverTable.test.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ describe('OppgaverTable', () => {
1919
limit={14}
2020
setPage={() => {}}
2121
oppgaver={oppgaver}
22+
loading={false}
2223
/>,
2324
{ wrapper: ApolloWrapper },
2425
);
@@ -41,6 +42,7 @@ describe('OppgaverTable', () => {
4142
limit={14}
4243
setPage={() => {}}
4344
oppgaver={oppgaver}
45+
loading={false}
4446
/>,
4547
{ wrapper: ApolloWrapper },
4648
);

src/routes/oversikt/table/oppgaverTable/OppgaverTable.tsx

+12-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import classNames from 'classnames';
12
import React, { ReactElement } from 'react';
23

34
import { OppgaveTilBehandling } from '@io/graphql';
@@ -15,6 +16,7 @@ import styles from '../table.module.css';
1516

1617
interface OppgaverTableProps {
1718
oppgaver: OppgaveTilBehandling[];
19+
loading: boolean;
1820
antallOppgaver: number;
1921
numberOfPages: number;
2022
currentPage: number;
@@ -23,7 +25,15 @@ interface OppgaverTableProps {
2325
}
2426

2527
export const OppgaverTable = React.memo(
26-
({ oppgaver, antallOppgaver, numberOfPages, currentPage, limit, setPage }: OppgaverTableProps): ReactElement => {
28+
({
29+
oppgaver,
30+
loading,
31+
antallOppgaver,
32+
numberOfPages,
33+
currentPage,
34+
limit,
35+
setPage,
36+
}: OppgaverTableProps): ReactElement => {
2737
const tab = useAktivTab();
2838
const { activeFilters } = useFilters();
2939
const sort = useSorteringState();
@@ -32,7 +42,7 @@ export const OppgaverTable = React.memo(
3242
const setMultipleFilters = useSetMultipleFilters();
3343

3444
return (
35-
<div className={styles.TableContainer}>
45+
<div className={classNames(styles.TableContainer, loading && styles.Loading)}>
3646
<FilterChips
3747
activeFilters={activeFilters}
3848
setMultipleFilters={setMultipleFilters}

src/routes/oversikt/table/table.module.css

+9
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,15 @@
2020
vertical-align: bottom;
2121
}
2222

23+
.TableContainer tbody {
24+
transition: opacity 0.1s;
25+
}
26+
27+
.TableContainer.Loading tbody {
28+
opacity: 0.6;
29+
transition: opacity 0.1s;
30+
}
31+
2332
.Content {
2433
padding: 0;
2534
color: var(--a-text-default);

src/state/oppgaver.ts

+1
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ export const useOppgaveFeed = (): OppgaveFeedResponse => {
7070
filtrering: originalFiltreringRef.current,
7171
sortering: originalSorteringRef.current,
7272
},
73+
notifyOnNetworkStatusChange: true,
7374
initialFetchPolicy: 'network-only',
7475
nextFetchPolicy: 'cache-first',
7576
onError: () => {

0 commit comments

Comments
 (0)