Skip to content

Commit e82539d

Browse files
committed
- Update test to render ident without "(HOVEDPERSON)" suffix
- Add warning for duplicate related idents in HendelseIdDataVisning - Change Alert component to StyledAlert for import notification - Refactor related persons handling to ensure uniqueness - Adjust button class for consistent styling #deploy-test-dolly-frontend
1 parent 12f0d57 commit e82539d

3 files changed

Lines changed: 45 additions & 10 deletions

File tree

apps/dolly-frontend/src/main/js/src/__tests__/pages/gruppe/PersonVisning/PersonMiljoeinfo/HendelseIdDataVisning.test.tsx

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ describe('HendelseIdDataVisning', () => {
5555

5656
it('should render ident trigger button when ident is provided', () => {
5757
render(<HendelseIdDataVisning ident="12345678901" />)
58-
expect(screen.getByText('12345678901 (HOVEDPERSON)')).toBeInTheDocument()
58+
expect(screen.getByText('12345678901')).toBeInTheDocument()
5959
})
6060

6161
it('should render one trigger button per related person', () => {
@@ -109,6 +109,24 @@ describe('HendelseIdDataVisning', () => {
109109
)
110110
})
111111

112+
it('should only show one imported warning for duplicate related idents', () => {
113+
mockUseHendelseId.mockReturnValue({
114+
data: makeRelatertResponse([]),
115+
loading: false,
116+
error: undefined,
117+
})
118+
render(
119+
<HendelseIdDataVisning
120+
ident="12345678901"
121+
relatertePersoner={[
122+
{ type: 'BARN', id: '11111111111' },
123+
{ type: 'BARN', id: '11111111111' },
124+
]}
125+
/>,
126+
)
127+
expect(screen.getAllByText(/importert/i)).toHaveLength(1)
128+
})
129+
112130
it('should render one accordion header per infoElement for main person', () => {
113131
mockUseHendelseId.mockReturnValue({
114132
data: makeMainResponse([

apps/dolly-frontend/src/main/js/src/pages/gruppe/PersonVisning/PersonMiljoeinfo/DataVisning.less

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,3 +80,7 @@
8080
margin-right: 0;
8181
margin-bottom: 8px;
8282
}
83+
84+
.hendelse-miljoe-knapp {
85+
line-height: normal;
86+
}

apps/dolly-frontend/src/main/js/src/pages/gruppe/PersonVisning/PersonMiljoeinfo/HendelseIdDataVisning.tsx

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { TitleValue } from '@/components/ui/titleValue/TitleValue'
99
import { useHendelseId } from '@/utils/hooks/useHendelseId'
1010
import { codeToNorskLabel } from '@/utils/DataFormatter'
1111
import { ApiFeilmelding } from '@/pages/gruppe/PersonVisning/PersonMiljoeinfo/PdlDataVisning'
12+
import StyledAlert from '@/components/ui/alert/StyledAlert'
1213

1314
export type RelatertPerson = {
1415
type: string
@@ -70,9 +71,9 @@ const hendelseHarFeil = (hendelse: Hendelse): boolean =>
7071

7172
const ImportertRelasjonMelding = () => {
7273
return (
73-
<Alert variant="warning" size="small" className="hendelse-importert-relasjon">
74+
<StyledAlert variant="info" size="small" className="hendelse-importert-relasjon">
7475
{IMPORTERT_RELASJON_MESSAGE}
75-
</Alert>
76+
</StyledAlert>
7677
)
7778
}
7879

@@ -228,7 +229,7 @@ const HendelseTooltip = ({ triggerText, ident, relatertIdent }: HendelseTooltipP
228229
overlayStyle={{ opacity: 1 }}
229230
destroyTooltipOnHide={{ keepParent: false }}
230231
>
231-
<button type="button" className="miljoe-knapp">
232+
<button type="button" className="miljoe-knapp hendelse-miljoe-knapp">
232233
{triggerText}
233234
</button>
234235
</DollyTooltip>
@@ -277,6 +278,15 @@ export const HendelseIdDataVisning = ({
277278
if (!ident) {
278279
return null
279280
}
281+
const unikeRelatertePersoner =
282+
relatertePersoner?.reduce<RelatertPerson[]>((acc, person) => {
283+
if (acc.some((existing) => existing.id === person.id)) {
284+
return acc
285+
}
286+
acc.push(person)
287+
return acc
288+
}, []) ?? []
289+
const harRelatertePersoner = unikeRelatertePersoner.length > 0
280290
const [relasjonTilstand, setRelasjonTilstand] = React.useState<
281291
Record<string, { erImportertRelasjon: boolean; erAvklart: boolean }>
282292
>({})
@@ -291,10 +301,10 @@ export const HendelseIdDataVisning = ({
291301
!errorHovedperson &&
292302
Boolean(typedHovedpersonData?.hovedperson) &&
293303
(typedHovedpersonData?.hovedperson?.ordrer?.length ?? 0) === 0
294-
const harImportertRelasjon = (relatertePersoner ?? []).some(
304+
const harImportertRelasjon = unikeRelatertePersoner.some(
295305
(person) => relasjonTilstand[person.id]?.erImportertRelasjon,
296306
)
297-
const alleRelaterteAvklart = (relatertePersoner ?? []).every(
307+
const alleRelaterteAvklart = unikeRelatertePersoner.every(
298308
(person) => relasjonTilstand[person.id]?.erAvklart,
299309
)
300310
const skalViseKunImportvarsel = erImportertHovedperson || harImportertRelasjon
@@ -324,17 +334,20 @@ export const HendelseIdDataVisning = ({
324334

325335
return (
326336
<div className="flexbox--flex-wrap">
327-
{erImportertHovedperson && <ImportertRelasjonMelding />}
337+
{skalViseKunImportvarsel && <ImportertRelasjonMelding />}
328338
{visHovedpersonTooltip && (
329-
<HendelseTooltip triggerText={`${ident} (HOVEDPERSON)`} ident={ident} />
339+
<HendelseTooltip
340+
triggerText={harRelatertePersoner ? `${ident} (HOVEDPERSON)` : ident}
341+
ident={ident}
342+
/>
330343
)}
331-
{relatertePersoner?.map((person) => (
344+
{unikeRelatertePersoner.map((person) => (
332345
<RelatertHendelseElement
333346
key={`${person.type}-${person.id}`}
334347
ident={ident}
335348
person={person}
336349
visTooltip={!skalViseKunImportvarsel}
337-
visImportMelding={!erImportertHovedperson}
350+
visImportMelding={false}
338351
onImportertChange={oppdaterImportertRelasjon}
339352
/>
340353
))}

0 commit comments

Comments
 (0)