@@ -377,6 +377,7 @@ showNonEditableWorkingOverrideTree treeDyn = do
377377 untilReady (lift nonEditableLoading) $
378378 divClass "padded" $
379379 showWorkingOverrideTree'
380+ (const False)
380381 (is (_Ctor' @"CustomConfigValue"))
381382 (\_ _ -> ())
382383 (\_ k v -> renderRow k v $> pure ())
@@ -400,6 +401,8 @@ showOverrideTree ::
400401 , Ord tk
401402 , Ord tv
402403 ) =>
404+ -- | Value should be shown by default
405+ (tv -> Bool) ->
403406 -- | Value is modified
404407 (tv -> Bool) ->
405408 -- | Prepare the fixpoint data
@@ -409,19 +412,21 @@ showOverrideTree ::
409412 ConfigTree tk tv ->
410413 -- | Should we render anything
411414 m [Dynamic t x]
412−showOverrideTree isModified prepareData renderValue ct = do
415+showOverrideTree isShown isModified prepareData renderValue ct = do
413416 memoRef <- newRef mempty
414417 flip runReaderT memoRef $
415− showWorkingOverrideTree' isModified prepareData ((fmap . fmap . fmap) lift renderValue) ct (pure True) never
418+ showWorkingOverrideTree' isShown isModified prepareData ((fmap . fmap . fmap) lift renderValue) ct (pure True) never
416419
417420showWorkingOverrideTree' ::
418421 ( MonadWidget t m
419422 , Renderable tk
420423 , Show x
421− , MonadReader (Ref m (Map (ConfigTree tk tv) Bool)) m
424+ , MonadReader (Ref m (Map (Text, ConfigTree tk tv) Bool)) m
422425 , Ord tv
423426 , Ord tk
424427 ) =>
428+ -- | Value should be shown by default
429+ (tv -> Bool) ->
425430 -- | Value is modified
426431 (tv -> Bool) ->
427432 -- | Prepare the fixpoint data
@@ -434,7 +439,7 @@ showWorkingOverrideTree' ::
434439 -- | Force open/close all subtrees
435440 Event t Bool ->
436441 m [Dynamic t x]
437−showWorkingOverrideTree' isModified prepareData renderValue (ConfigTree m) shouldRenderDyn' forceSubtreesEv = do
442+showWorkingOverrideTree' isShown isModified prepareData renderValue (ConfigTree m) shouldRenderDyn' forceSubtreesEv = do
438443 shouldRenderDyn <- holdUniqDyn shouldRenderDyn'
439444 (appEndo . fold -> f) <- for (OM.assocs m) $ \(k, (mv, _)) -> do
440445 xMaybe <- for mv $ \v -> mdo
@@ -462,7 +467,8 @@ showWorkingOverrideTree' isModified prepareData renderValue (ConfigTree m) shoul
462467 then "collapse--expanded"
463468 else mempty
464469 (ovs, openDyn) <- elDynClass "div" wrapperClass $ do
465− modified <- configTreeHasLeaf isModified subtree
470+ modified <- configTreeHasLeaf "isModified" isModified subtree
471+ shown <- configTreeHasLeaf "isShown" isShown subtree
466472 (traceEvent "clickEv" -> clickEv) <-
467473 treeButton
468474 TreeButtonConfig
@@ -471,11 +477,12 @@ showWorkingOverrideTree' isModified prepareData renderValue (ConfigTree m) shoul
471477 , visible = shouldRenderDyn
472478 , forceState = forceSubtreesEv
473479 }
474− buttonIsOpen <- holdDyn False $ leftmost [forceSubtreesEv, fst <$> clickEv]
480+ buttonIsOpen <- holdDyn shown $ leftmost [forceSubtreesEv, fst <$> clickEv]
475481 let selfForceSubtrees = fst <$> ffilter (isRight . snd) clickEv
476482 ovs' <-
477483 divClass "collapse__inner" $
478484 showWorkingOverrideTree'
485+ isShown
479486 isModified
480487 prepareData
481488 renderValue