Skip to content

Commit 60d5cdd

Browse files
committed
fix(DHIS2-19253): fix issue with changelog going into infinite loop for line listing
1 parent 4c3adc6 commit 60d5cdd

File tree

2 files changed

+25
-18
lines changed

2 files changed

+25
-18
lines changed

src/components/AppDetails/useChangelog.js

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { useDataQuery } from '@dhis2/app-runtime'
2+
import { useEffect, useState } from 'react'
23

34
const changelogQuery = {
45
changelog: {
@@ -8,30 +9,35 @@ const changelogQuery = {
89
}
910

1011
const useChangelog = ({ appId, hasChangelog }) => {
11-
const { data, refetch: fetchChangelog } = useDataQuery(changelogQuery, {
12+
const [changelog, setChangelog] = useState({})
13+
14+
const { refetch: fetchChangelog } = useDataQuery(changelogQuery, {
1215
lazy: true,
13-
variables: {
14-
id: appId,
15-
},
16-
})
16+
onComplete: (data) => {
17+
const changelog = new Changelog(data?.changelog?.changelog)
1718

18-
if (data) {
19-
const changelog = new Changelog(data?.changelog?.changelog)
19+
const changelogByVersion = changelog?.data?.reduce?.(
20+
(acc, item) => {
21+
acc[item.version] = item.rawChangeSummary
2022

21-
const changelogByVersion = changelog?.data?.reduce?.((acc, item) => {
22-
acc[item.version] = item.rawChangeSummary
23+
return acc
24+
},
25+
{}
26+
)
2327

24-
return acc
25-
}, {})
28+
setChangelog(changelogByVersion)
29+
},
30+
})
2631

27-
return changelogByVersion
28-
}
32+
useEffect(() => {
33+
if (appId && hasChangelog) {
34+
fetchChangelog({
35+
id: appId,
36+
})
37+
}
38+
}, [appId, fetchChangelog, hasChangelog])
2939

30-
if (!hasChangelog) {
31-
return {}
32-
} else {
33-
fetchChangelog()
34-
}
40+
return changelog
3541
}
3642

3743
class Changelog {

src/core-apps.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export const coreApps = [
1313
{ name: 'Event Visualizer', shortName: 'event-visualizer' },
1414
{ name: 'Import/Export', shortName: 'import-export' },
1515
{ name: 'Interpretations', shortName: 'interpretation' },
16+
{ name: 'Line Listing', shortName: 'line-listing' },
1617
{ name: 'Maintenance', shortName: 'maintenance' },
1718
{ name: 'Maps', shortName: 'maps' },
1819
{ name: 'Menu Management', shortName: 'menu-management' },

0 commit comments

Comments
 (0)