diff --git a/src/Gargantext/Components/Forest.purs b/src/Gargantext/Components/Forest.purs index ef9561e8081a21cbe98a767d11aa703ce938d593..50300d91c3e25f6d23a1a6d89d283c1e7068f19c 100644 --- a/src/Gargantext/Components/Forest.purs +++ b/src/Gargantext/Components/Forest.purs @@ -91,7 +91,7 @@ forestCpt = here.component "forest" cpt where common = RX.pick props :: Record Common cp handed' sessions' _ = pure $ H.div { className: "forest" } - (A.cons (plus handed' showLogin backend) (trees handed' sessions')) + (A.cons (plus handed' showLogin) (trees handed' sessions')) trees handed' sessions' = (tree handed') <$> unSessions sessions' tree handed' s@(Session {treeId}) = treeLoader { forestOpen @@ -104,8 +104,8 @@ forestCpt = here.component "forest" cpt where , session: s , tasks } [] -plus :: Handed -> T.Box Boolean -> T.Box (Maybe Backend) -> R.Element -plus handed showLogin backend = H.div { className: "row" } +plus :: Handed -> T.Box Boolean -> R.Element +plus handed showLogin = H.div { className: "row" } [ H.button { className: buttonClass , on: { click } , title } diff --git a/src/Gargantext/Components/Forest/Tree.purs b/src/Gargantext/Components/Forest/Tree.purs index 5c1ffcd3fce91e235ae176230fc44f0556cf4ecb..c3911e5e18fe745b1b6dcd7d5a411e0be43b0e4a 100644 --- a/src/Gargantext/Components/Forest/Tree.purs +++ b/src/Gargantext/Components/Forest/Tree.purs @@ -54,7 +54,7 @@ type Global = ( frontends :: Frontends , handed :: Handed , route :: T.Box AppRoute - , tasks :: T.Box GAT.Storage + , tasks :: T.Box GAT.Storage | Universal ) -- Shared by every component here @@ -102,20 +102,18 @@ treeCpt = here.component "tree" cpt where cpt p@{ session, tree: NTree (LNode { id, name, nodeType }) children } _ = do setPopoverRef <- R.useRef Nothing folderOpen <- T2.useMemberBox nodeId p.forestOpen - open <- T.useLive T.unequal folderOpen - pure $ H.ul { className: ulClass } - [ H.div { className: divClass } -- TODO: naughty div should not be in a ul - [ H.li { className: childrenClass children } - [ nodeSpan (nsprops { folderOpen, name, id, nodeType, setPopoverRef, isLeaf }) - (renderChildren open) - ] + folderOpen' <- T.useLive T.unequal folderOpen + pure $ H.ul { className: ulClass <> " " <> handedClass } + [ H.li { className: childrenClass children } + [ nodeSpan (nsprops { folderOpen, name, id, nodeType, setPopoverRef, isLeaf }) + (renderChildren folderOpen') ] ] where isLeaf = A.null children nodeId = mkNodeId session id ulClass = switchHanded "ml" "mr" p.handed <> "-auto tree" - divClass = switchHanded "left" "right" p.handed <> "handed" + handedClass = switchHanded "left" "right" p.handed <> "handed" children' = A.sortWith fTreeID pubChildren pubChildren = if isPublic nodeType then map (map pub) children else children renderChildren false = [] diff --git a/src/Gargantext/Components/Router.purs b/src/Gargantext/Components/Router.purs index f32c56a17760abc48204192fa9a25362457dac1e..b4f23468dfdd053817db7ca8be43a351a041a429 100644 --- a/src/Gargantext/Components/Router.purs +++ b/src/Gargantext/Components/Router.purs @@ -59,11 +59,10 @@ routerCpt = here.component "router" cpt where let sessionProps sId = Record.merge { session, sessionId: sId } props let sessionNodeProps sId nId = Record.merge { nodeId: nId } $ sessionProps sId - showLogin <- T.useLive T.unequal boxes.showLogin route' <- T.useLive T.unequal boxes.route pure $ R.fragment - [ if showLogin then login' boxes else H.div {} [] + [ loginModal { boxes } [] , case route' of GR.Annuaire s n -> annuaire (sessionNodeProps s n) [] GR.ContactPage s a n -> contact (Record.merge { annuaireId: a } $ sessionNodeProps s n) [] @@ -88,6 +87,22 @@ routerCpt = here.component "router" cpt where GR.UserPage s n -> user (sessionNodeProps s n) [] ] + +type LoginModalProps = ( + boxes :: Boxes + ) + +loginModal :: R2.Component LoginModalProps +loginModal = R.createElement loginModalCpt + +loginModalCpt :: R.Component LoginModalProps +loginModalCpt = here.component "loginModal" cpt + where + cpt { boxes: boxes@{ showLogin } } _ = do + showLogin' <- T.useLive T.unequal showLogin + + pure $ if showLogin' then login' boxes else H.div {} [] + forested :: R2.Component Props forested = R.createElement forestedCpt