Skip to content

Commit 892d17f

Browse files
committed
Bugfix for valg av mal i ident og org som etter navigering frem og tilbake kunne være stuck
Fjernet GruppeOversiktConnector og refaktorert GruppeOversikt Fikset andre diverse mindre bugs #deploy-test-dolly-backend
1 parent 71b2f5d commit 892d17f

File tree

7 files changed

+94
-91
lines changed

7 files changed

+94
-91
lines changed

apps/dolly-frontend/src/main/js/package-lock.json

+24-24
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/dolly-frontend/src/main/js/src/allRoutes.tsx

+1-3
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@ const OrganisasjonTenorSoekPage = lazyWithPreload(
88
() => import('@/pages/organisasjoner/OrganisasjonTenorSoek/OrganisasjonTenorSoekPage'),
99
)
1010
const NyansettelserPage = lazyWithPreload(() => import('@/pages/nyansettelser/NyansettelserPage'))
11-
const GruppeOversikt = lazyWithPreload(
12-
() => import('@/pages/gruppeOversikt/GruppeOversiktConnector'),
13-
)
11+
const GruppeOversikt = lazyWithPreload(() => import('@/pages/gruppeOversikt/GruppeOversikt'))
1412
const Organisasjon = lazyWithPreload(() => import('@/pages/organisasjoner/Organisasjoner'))
1513
const MinSide = lazyWithPreload(() => import('@/pages/minSide/MinSide'))
1614
const UI = lazyWithPreload(() => import('@/pages/ui/index'))

apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/startModal/MalVelgerIdent.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ export const MalVelgerIdent = ({ brukernavn, gruppeId }: MalVelgerProps) => {
6060
opts.mal = undefined
6161
const options = BVOptions(opts, gruppeId, dollyEnvironments)
6262
formMethods.reset(options.initialValues)
63-
formMethods.setValue('mal', undefined)
63+
formMethods.setValue('mal', null)
6464
formMethods.setValue('gruppeId', gruppeId)
6565
}
6666
}
@@ -70,13 +70,13 @@ export const MalVelgerIdent = ({ brukernavn, gruppeId }: MalVelgerProps) => {
7070
const options = BVOptions(opts, gruppeId, dollyEnvironments)
7171
toggleMalAktiv()
7272
formMethods.reset(options.initialValues)
73-
formMethods.setValue('mal', undefined)
73+
formMethods.setValue('mal', null)
7474
formMethods.setValue('gruppeId', gruppeId)
7575
}
7676

7777
const handleBrukerChange = (event: { value: string }) => {
7878
setBruker(event.value)
79-
formMethods.setValue('mal', undefined)
79+
formMethods.setValue('mal', null)
8080
}
8181

8282
const valgtMalValue = formMethods.watch('mal')

apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg0/Steg0.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@ const Steg0 = () => {
2929
<div className="start-bestilling-modal">
3030
{!isOrganisasjon && (
3131
<>
32-
<div className="dolly-panel dolly-panel-open">
33-
<VelgGruppe formMethods={formMethods} title={'Hvilken gruppe vil du bestille til?'} />
34-
</div>
3532
{isNyIdent && (
3633
<div className="dolly-panel dolly-panel-open">
3734
<VelgIdenttype />
3835
</div>
3936
)}
37+
<div className="dolly-panel dolly-panel-open">
38+
<VelgGruppe formMethods={formMethods} title={'Hvilken gruppe vil du bestille til?'} />
39+
</div>
4040
</>
4141
)}
4242
<div className="dolly-panel dolly-panel-open">
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import React, { useEffect, useState } from 'react'
1+
import React, { useCallback, useEffect, useMemo, useState } from 'react'
22
import useBoolean from '@/utils/hooks/useBoolean'
33
import NavButton from '@/components/ui/button/NavButton/NavButton'
44
import Icon from '@/components/ui/icon/Icon'
55
import Liste from './Liste'
66
import { useCurrentBruker } from '@/utils/hooks/useBruker'
77
import { useGrupper } from '@/utils/hooks/useGruppe'
8-
import { useDispatch } from 'react-redux'
8+
import { useDispatch, useSelector } from 'react-redux'
99
import { setSidetall, setVisning } from '@/ducks/finnPerson'
1010
import { Hjelpetekst } from '@/components/hjelpetekst/Hjelpetekst'
1111
import { bottom } from '@popperjs/core'
@@ -15,15 +15,15 @@ import { TestComponentSelectors } from '#/mocks/Selectors'
1515
import FinnPersonBestilling from '@/pages/gruppeOversikt/FinnPersonBestilling'
1616
import { RedigerGruppe } from '@/components/redigerGruppe/RedigerGruppe'
1717

18-
type GruppeOversiktProps = {
19-
importerteZIdenter: any
20-
sidetall: number
21-
sideStoerrelse: number
22-
gruppeInfo: any
23-
searchActive: boolean
18+
type RootState = {
19+
search: any
20+
finnPerson: {
21+
sidetall: number
22+
sideStoerrelse: number
23+
}
2424
}
2525

26-
export enum VisningType {
26+
export const enum VisningType {
2727
MINE = 'mine',
2828
ALLE = 'alle',
2929
FAVORITTER = 'favoritter',
@@ -47,29 +47,57 @@ const StyledDiv = styled.div`
4747
}
4848
`
4949

50-
const GruppeOversikt = ({ searchActive, sideStoerrelse, sidetall }: GruppeOversiktProps) => {
51-
const {
52-
currentBruker: { brukerId, brukertype },
53-
} = useCurrentBruker()
54-
const [visningType, setVisningType] = useState(VisningType.MINE)
50+
const GruppeOversikt: React.FC = () => {
51+
const searchActive = useSelector((state: RootState) => Boolean(state.search))
52+
const sidetall = useSelector((state: RootState) => state.finnPerson.sidetall)
53+
const sideStoerrelse = useSelector((state: RootState) => state.finnPerson.sideStoerrelse)
54+
55+
const dispatch = useDispatch()
56+
const { currentBruker } = useCurrentBruker()
57+
const { brukerId, brukertype } = currentBruker
58+
59+
const [visningType, setVisningType] = useState<VisningType>(VisningType.MINE)
5560
const [visNyGruppeState, visNyGruppe, skjulNyGruppe] = useBoolean(false)
61+
5662
const { grupper, loading } = useGrupper(
5763
sidetall,
5864
sideStoerrelse,
5965
visningType === VisningType.ALLE ? null : brukerId,
6066
)
61-
const dispatch = useDispatch()
6267

6368
useEffect(() => {
6469
dispatch(setVisning('personer'))
65-
}, [])
70+
}, [dispatch])
6671

67-
const byttVisning = (value: VisningType) => {
68-
setVisningType(value)
69-
dispatch(setSidetall(0))
70-
}
72+
const isBankIdBruker = useMemo(() => brukertype === 'BANKID', [brukertype])
7173

72-
const bankIdBruker = brukertype === 'BANKID'
74+
const gruppeDetaljer = useMemo(
75+
() => ({
76+
pageSize: sideStoerrelse,
77+
antallPages:
78+
visningType === VisningType.FAVORITTER
79+
? Math.ceil((grupper?.favoritter?.length || 0) / sideStoerrelse)
80+
: grupper?.antallPages,
81+
antallElementer:
82+
visningType === VisningType.FAVORITTER
83+
? grupper?.favoritter?.length
84+
: grupper?.antallElementer,
85+
}),
86+
[grupper, sideStoerrelse, visningType],
87+
)
88+
89+
const items = useMemo(
90+
() => (visningType === VisningType.FAVORITTER ? grupper?.favoritter : grupper?.contents),
91+
[grupper, visningType],
92+
)
93+
94+
const handleVisningChange = useCallback(
95+
(value: VisningType) => {
96+
setVisningType(value)
97+
dispatch(setSidetall(0))
98+
},
99+
[dispatch],
100+
)
73101

74102
return (
75103
<div className="oversikt-container">
@@ -79,11 +107,10 @@ const GruppeOversikt = ({ searchActive, sideStoerrelse, sidetall }: GruppeOversi
79107
className="page-header flexbox--align-center--justify-start"
80108
>
81109
<h1>Grupper</h1>
82-
<Hjelpetekst placement={bottom}>
83-
Gruppene inneholder alle personene dine (FNR/DNR/NPID).
84-
</Hjelpetekst>
110+
<Hjelpetekst placement={bottom}>temp</Hjelpetekst>
85111
</div>
86112
</div>
113+
87114
<div className="toolbar gruppe--full">
88115
<StyledNavButton
89116
data-testid={TestComponentSelectors.BUTTON_NY_GRUPPE}
@@ -92,55 +119,45 @@ const GruppeOversikt = ({ searchActive, sideStoerrelse, sidetall }: GruppeOversi
92119
>
93120
Ny gruppe
94121
</StyledNavButton>
95-
{!bankIdBruker && <FinnPersonBestilling />}
122+
{!isBankIdBruker && <FinnPersonBestilling />}
96123
</div>
97124

98125
{visNyGruppeState && <RedigerGruppe onCancel={skjulNyGruppe} />}
99126

100127
<StyledDiv className="gruppe--flex-column-center">
101128
<ToggleGroup
102129
value={visningType}
103-
onChange={byttVisning}
104-
size={'small'}
130+
onChange={handleVisningChange}
131+
size="small"
105132
style={{ backgroundColor: '#ffffff' }}
106133
>
107134
<StyledToggleItem
108135
data-testid={TestComponentSelectors.TOGGLE_MINE}
109136
value={VisningType.MINE}
110137
>
111-
<Icon kind={'man-silhouette'} />
138+
<Icon kind="man-silhouette" />
112139
Mine
113140
</StyledToggleItem>
114141
<StyledToggleItem
115142
data-testid={TestComponentSelectors.TOGGLE_FAVORITTER}
116143
value={VisningType.FAVORITTER}
117144
>
118-
<Icon kind={'star-light'} />
145+
<Icon kind="star-light" />
119146
Favoritter
120147
</StyledToggleItem>
121148
<StyledToggleItem
122149
data-testid={TestComponentSelectors.TOGGLE_ALLE}
123150
value={VisningType.ALLE}
124151
>
125-
<Icon kind={'group-light'} />
152+
<Icon kind="group-light" />
126153
Alle
127154
</StyledToggleItem>
128155
</ToggleGroup>
129156
</StyledDiv>
130157

131158
<Liste
132-
gruppeDetaljer={{
133-
pageSize: sideStoerrelse,
134-
antallPages:
135-
visningType === VisningType.FAVORITTER
136-
? grupper?.favoritter?.length / sideStoerrelse
137-
: grupper?.antallPages,
138-
antallElementer:
139-
visningType === VisningType.FAVORITTER
140-
? grupper?.favoritter?.length
141-
: grupper?.antallElementer,
142-
}}
143-
items={visningType === VisningType.FAVORITTER ? grupper?.favoritter : grupper?.contents}
159+
gruppeDetaljer={gruppeDetaljer}
160+
items={items}
144161
isFetching={loading}
145162
searchActive={searchActive}
146163
visSide={sidetall}
@@ -149,4 +166,5 @@ const GruppeOversikt = ({ searchActive, sideStoerrelse, sidetall }: GruppeOversi
149166
</div>
150167
)
151168
}
169+
152170
export default GruppeOversikt

apps/dolly-frontend/src/main/js/src/pages/gruppeOversikt/GruppeOversiktConnector.tsx

-13
This file was deleted.

apps/dolly-frontend/src/main/js/src/pages/organisasjoner/MalVelgerOrganisasjon.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ export const MalVelgerOrganisasjon = ({ brukernavn, gruppeId }: MalVelgerProps)
5454
formMethods.setValue('mal', mal.value)
5555
} else {
5656
opts.mal = undefined
57-
formMethods.setValue('mal', undefined)
57+
formMethods.setValue('mal', null)
5858
const options = BVOptions(opts, gruppeId, dollyEnvironments)
5959
formMethods.reset(options.initialValues)
6060
}
@@ -63,14 +63,14 @@ export const MalVelgerOrganisasjon = ({ brukernavn, gruppeId }: MalVelgerProps)
6363
const handleMalEnable = () => {
6464
opts.mal = undefined
6565
toggleMalAktiv()
66-
formMethods.setValue('mal', undefined)
66+
formMethods.setValue('mal', null)
6767
const options = BVOptions(opts, gruppeId, dollyEnvironments)
6868
formMethods.reset(options.initialValues)
6969
}
7070

7171
const handleBrukerChange = (event: { value: string }) => {
7272
setBruker(event.value)
73-
formMethods.setValue('mal', undefined)
73+
formMethods.setValue('mal', null)
7474
}
7575

7676
return (

0 commit comments

Comments
 (0)