From 9b7726a70157c19e591f558ee7d85488fb98bcb9 Mon Sep 17 00:00:00 2001 From: Max Wilson Date: Sat, 27 Jan 2024 11:45:37 -0800 Subject: [PATCH] (gree) Fix bug #55. --- src/Core/Menus.fs | 4 ++-- test/Chargen.Accept.fs | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/Core/Menus.fs b/src/Core/Menus.fs index 057a07f..74d3589 100644 --- a/src/Core/Menus.fs +++ b/src/Core/Menus.fs @@ -96,7 +96,7 @@ let render (render: 'reactElement RenderApi) (menus: MenuOutput list) = for (isChecked, key, child) in selections do let renderChild (label: string, children) = if isChecked then render.checked'(label, key, children) else render.unchecked(label, key) - let childReact = recur isChecked ((if collapse then collapsedRender key else render), renderChild) child + let childReact = recur (not isChecked) ((if collapse then collapsedRender key else render), renderChild) child childReact ] if collapse then @@ -104,7 +104,7 @@ let render (render: 'reactElement RenderApi) (menus: MenuOutput list) = else renderMe(defaultArg label "Choose one:", children) | And(label, grants) -> - let childReacts = grants |> List.map (recur true (render, render.unconditional)) + let childReacts = grants |> List.map (recur shortCircuit (render, render.unconditional)) match label with | Some label -> renderMe(label, childReacts) diff --git a/test/Chargen.Accept.fs b/test/Chargen.Accept.fs index 5f4cb56..588e7a4 100644 --- a/test/Chargen.Accept.fs +++ b/test/Chargen.Accept.fs @@ -234,11 +234,13 @@ let units = testList "Unit.Chargen" [ pseudoActual (Fragment [ Checked("Sword and Dagger", key "Sword and Dagger", [ - Unchecked("Rapier +4", key "Sword and Dagger-Rapier") - Unchecked("Broadsword +4", key "Sword and Dagger-Broadsword") - Unchecked("Shortsword +4", key "Sword and Dagger-Shortsword") + Checked("Choose one:", key "Sword and Dagger", [ + Unchecked("Rapier +4", key "Sword and Dagger-Rapier") + Unchecked("Broadsword +4", key "Sword and Dagger-Broadsword") + Unchecked("Shortsword +4", key "Sword and Dagger-Shortsword") + ]) + Checked("Main-gauche +1", key "Sword and Dagger", []) ]) - Checked("Main-gauche +1", key "Sword and Dagger", []) ]) ] []