Skip to content

Commit b01de9b

Browse files
make req_tree more flexible
1 parent 96303f9 commit b01de9b

File tree

1 file changed

+20
-10
lines changed
  • frontends/main/src/app-pages/ProductPages

1 file changed

+20
-10
lines changed

frontends/main/src/app-pages/ProductPages/util.ts

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,30 @@ enum HeadingIds {
1515
const getElectiveSubtree = (
1616
program: V2Program,
1717
): V2ProgramRequirement | undefined => {
18-
return program.req_tree[0]?.children?.find(
19-
(child) =>
20-
child.data.node_type === V2ProgramRequirementDataNodeTypeEnum.Operator &&
21-
child.data.elective_flag,
22-
)
18+
const find = (
19+
nodes: V2ProgramRequirement[],
20+
): V2ProgramRequirement | undefined =>
21+
nodes?.find(
22+
(child) =>
23+
child.data.node_type ===
24+
V2ProgramRequirementDataNodeTypeEnum.Operator &&
25+
child.data.elective_flag,
26+
)
27+
return find(program.req_tree) ?? find(program.req_tree[0]?.children || [])
2328
}
2429
const getRequiredSubtree = (
2530
program: V2Program,
2631
): V2ProgramRequirement | undefined => {
27-
return program?.req_tree?.[0]?.children?.find(
28-
(child) =>
29-
child.data.node_type === V2ProgramRequirementDataNodeTypeEnum.Operator &&
30-
!child.data.elective_flag,
31-
)
32+
const find = (
33+
nodes: V2ProgramRequirement[],
34+
): V2ProgramRequirement | undefined =>
35+
nodes?.find(
36+
(child) =>
37+
child.data.node_type ===
38+
V2ProgramRequirementDataNodeTypeEnum.Operator &&
39+
!child.data.elective_flag,
40+
)
41+
return find(program.req_tree) ?? find(program.req_tree[0]?.children || [])
3242
}
3343

3444
export { HeadingIds, getElectiveSubtree, getRequiredSubtree }

0 commit comments

Comments
 (0)