@@ -377,6 +377,7 @@ showNonEditableWorkingOverrideTree treeDyn = do
377 untilReady (lift nonEditableLoading) $
377 untilReady (lift nonEditableLoading) $
378 divClass "padded" $
378 divClass "padded" $
379 showWorkingOverrideTree'
379 showWorkingOverrideTree'
380 (is (_Ctor' @"CustomConfigValue"))
381 (is (_Ctor' @"CustomConfigValue"))
381 (\_ _ -> ())
382 (\_ _ -> ())
382 (\_ k v -> renderRow k v $> pure ())
383 (\_ k v -> renderRow k v $> pure ())
@@ -400,6 +401,8 @@ showOverrideTree ::
404+ -- | Value should be shown by default
403 -- | Value is modified
406 -- | Value is modified
404 (tv -> Bool) ->
407 (tv -> Bool) ->
405 -- | Prepare the fixpoint data
408 -- | Prepare the fixpoint data
@@ -409,19 +412,21 @@ showOverrideTree ::
409 ConfigTree tk tv ->
412 ConfigTree tk tv ->
410 -- | Should we render anything
413 -- | Should we render anything
411 m [Dynamic t x]
414 m [Dynamic t x]
412−showOverrideTree isModified prepareData renderValue ct = do
415+showOverrideTree isShown isModified prepareData renderValue ct = do
413 memoRef <- newRef mempty
416 memoRef <- newRef mempty
414 flip runReaderT memoRef $
417 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
417showWorkingOverrideTree' ::
420showWorkingOverrideTree' ::
418 ( MonadWidget t m
421 ( MonadWidget t m
419 , Renderable tk
422 , Renderable tk
421− , MonadReader (Ref m (Map (ConfigTree tk tv) Bool)) m
424+ , MonadReader (Ref m (Map (Text, ConfigTree tk tv) Bool)) m
428+ -- | Value should be shown by default
425 -- | Value is modified
430 -- | Value is modified
426 (tv -> Bool) ->
431 (tv -> Bool) ->
427 -- | Prepare the fixpoint data
432 -- | Prepare the fixpoint data
@@ -434,7 +439,7 @@ showWorkingOverrideTree' ::
434 -- | Force open/close all subtrees
439 -- | Force open/close all subtrees
435 Event t Bool ->
440 Event t Bool ->
436 m [Dynamic t x]
441 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
438 shouldRenderDyn <- holdUniqDyn shouldRenderDyn'
443 shouldRenderDyn <- holdUniqDyn shouldRenderDyn'
439 (appEndo . fold -> f) <- for (OM.assocs m) $ \(k, (mv, _)) -> do
444 (appEndo . fold -> f) <- for (OM.assocs m) $ \(k, (mv, _)) -> do
440 xMaybe <- for mv $ \v -> mdo
445 xMaybe <- for mv $ \v -> mdo
@@ -462,7 +467,8 @@ showWorkingOverrideTree' isModified prepareData renderValue (ConfigTree m) shoul
462 then "collapse--expanded"
467 then "collapse--expanded"
463 else mempty
468 else mempty
464 (ovs, openDyn) <- elDynClass "div" wrapperClass $ do
469 (ovs, openDyn) <- elDynClass "div" wrapperClass $ do
465− modified <- configTreeHasLeaf isModified subtree
470+ modified <- configTreeHasLeaf "isModified" isModified subtree
471+ shown <- configTreeHasLeaf "isShown" isShown subtree
466 (traceEvent "clickEv" -> clickEv) <-
472 (traceEvent "clickEv" -> clickEv) <-
467 treeButton
473 treeButton
468 TreeButtonConfig
474 TreeButtonConfig
@@ -471,11 +477,12 @@ showWorkingOverrideTree' isModified prepareData renderValue (ConfigTree m) shoul
471 , visible = shouldRenderDyn
477 , visible = shouldRenderDyn
472 , forceState = forceSubtreesEv
478 , forceState = forceSubtreesEv
474− buttonIsOpen <- holdDyn False $ leftmost [forceSubtreesEv, fst <$> clickEv]
480+ buttonIsOpen <- holdDyn shown $ leftmost [forceSubtreesEv, fst <$> clickEv]
475 let selfForceSubtrees = fst <$> ffilter (isRight . snd) clickEv
481 let selfForceSubtrees = fst <$> ffilter (isRight . snd) clickEv
477 divClass "collapse__inner" $
483 divClass "collapse__inner" $
478 showWorkingOverrideTree'
484 showWorkingOverrideTree'
479 isModified
486 isModified
480 prepareData
487 prepareData
481 renderValue
488 renderValue