Commit 2a74df72 authored by Przemyslaw Kaminski's avatar Przemyslaw Kaminski

[tree] currentRoute -> currentRouteRef

parent 61edeb56
...@@ -47,6 +47,10 @@ appCpt = R.hooksComponentWithModule thisModule "app" cpt where ...@@ -47,6 +47,10 @@ appCpt = R.hooksComponentWithModule thisModule "app" cpt where
cpt _ _ = do cpt _ _ = do
sessions <- useSessions sessions <- useSessions
route <- useHashRouter router Home route <- useHashRouter router Home
routeRef <- R.useRef $ fst route
R.useEffect' $ do
if R.readRef routeRef /= fst route then R.setRef routeRef (fst route) else pure unit
asyncTasksRef <- R.useRef Nothing asyncTasksRef <- R.useRef Nothing
treeReloadRef <- GUR.newI treeReloadRef <- GUR.newI
...@@ -65,7 +69,7 @@ appCpt = R.hooksComponentWithModule thisModule "app" cpt where ...@@ -65,7 +69,7 @@ appCpt = R.hooksComponentWithModule thisModule "app" cpt where
let forested = forestLayout { appReload let forested = forestLayout { appReload
, asyncTasksRef , asyncTasksRef
, backend , backend
, currentRoute: fst route , currentRouteRef: routeRef
, frontends , frontends
, handed , handed
, sessions: fst sessions , sessions: fst sessions
...@@ -75,7 +79,7 @@ appCpt = R.hooksComponentWithModule thisModule "app" cpt where ...@@ -75,7 +79,7 @@ appCpt = R.hooksComponentWithModule thisModule "app" cpt where
let forestedTB = forestLayoutWithTopBar { appReload let forestedTB = forestLayoutWithTopBar { appReload
, asyncTasksRef , asyncTasksRef
, backend , backend
, currentRoute: fst route , currentRouteRef: routeRef
, frontends , frontends
, handed , handed
, sessions: fst sessions , sessions: fst sessions
...@@ -139,7 +143,7 @@ appCpt = R.hooksComponentWithModule thisModule "app" cpt where ...@@ -139,7 +143,7 @@ appCpt = R.hooksComponentWithModule thisModule "app" cpt where
appReload appReload
, asyncTasksRef , asyncTasksRef
, backend , backend
, currentRoute: fst route , currentRouteRef: routeRef
, frontends , frontends
, handed , handed
, sessions: fst sessions , sessions: fst sessions
...@@ -162,7 +166,7 @@ appCpt = R.hooksComponentWithModule thisModule "app" cpt where ...@@ -162,7 +166,7 @@ appCpt = R.hooksComponentWithModule thisModule "app" cpt where
simpleLayout { handed } [ simpleLayout { handed } [
explorerLayout { asyncTasksRef explorerLayout { asyncTasksRef
, backend , backend
, currentRoute: fst route , currentRouteRef: routeRef
, frontends , frontends
, graphId , graphId
, handed: fst handed , handed: fst handed
...@@ -190,7 +194,7 @@ appCpt = R.hooksComponentWithModule thisModule "app" cpt where ...@@ -190,7 +194,7 @@ appCpt = R.hooksComponentWithModule thisModule "app" cpt where
appReload appReload
, asyncTasksRef , asyncTasksRef
, backend , backend
, currentRoute: fst route , currentRouteRef: routeRef
, frontends , frontends
, handed , handed
, sessions: fst sessions , sessions: fst sessions
......
...@@ -25,15 +25,15 @@ thisModule :: String ...@@ -25,15 +25,15 @@ thisModule :: String
thisModule = "Gargantext.Components.Forest" thisModule = "Gargantext.Components.Forest"
type Props = ( type Props = (
appReload :: GUR.ReloadS appReload :: GUR.ReloadS
, asyncTasksRef :: R.Ref (Maybe GAT.Reductor) , asyncTasksRef :: R.Ref (Maybe GAT.Reductor)
, backend :: R.State (Maybe Backend) , backend :: R.State (Maybe Backend)
, currentRoute :: AppRoute , currentRouteRef :: R.Ref AppRoute
, frontends :: Frontends , frontends :: Frontends
, handed :: Handed , handed :: Handed
, sessions :: Sessions , sessions :: Sessions
, showLogin :: R.Setter Boolean , showLogin :: R.Setter Boolean
, treeReloadRef :: GUR.ReloadWithInitializeRef , treeReloadRef :: GUR.ReloadWithInitializeRef
) )
forest :: R2.Component Props forest :: R2.Component Props
...@@ -45,7 +45,7 @@ forest = R.createElement forestCpt ...@@ -45,7 +45,7 @@ forest = R.createElement forestCpt
cpt { appReload cpt { appReload
, asyncTasksRef , asyncTasksRef
, backend , backend
, currentRoute , currentRouteRef
, frontends , frontends
, handed , handed
, sessions , sessions
...@@ -56,37 +56,52 @@ forest = R.createElement forestCpt ...@@ -56,37 +56,52 @@ forest = R.createElement forestCpt
asyncTasks <- GAT.useTasks appReload reload asyncTasks <- GAT.useTasks appReload reload
openNodes <- R2.useLocalStorageState R2.openNodesKey (Set.empty :: OpenNodes) openNodes <- R2.useLocalStorageState R2.openNodesKey (Set.empty :: OpenNodes)
let tree s@(Session {treeId}) =
treeView { appReload
, asyncTasks
, currentRouteRef
, frontends
, handed
, openNodes
, reload
, root: treeId
, session: s
} []
let trees = tree <$> unSessions sessions
-- TODO If `treeReloadRef` is set, `reload` state should be updated -- TODO If `treeReloadRef` is set, `reload` state should be updated
R.useEffect' $ do R.useEffect' $ do
R.setRef asyncTasksRef $ Just asyncTasks R.setRef asyncTasksRef $ Just asyncTasks
GUR.initializeI treeReloadRef reload GUR.initializeI treeReloadRef reload
R2.useCache (
frontends
/\ currentRoute
/\ sessions
/\ fst openNodes
/\ fst appReload
/\ fst reload
/\ (fst asyncTasks).storage
/\ handed
)
(cpt' openNodes asyncTasks appReload reload showLogin backend)
cpt' openNodes asyncTasks appReload reload showLogin backend (frontends /\ currentRoute /\ sessions /\ _ /\ _ /\ _ /\ _ /\ handed) = do
pure $ H.div { className: "forest" } $ [plus handed showLogin backend] <> trees pure $ H.div { className: "forest" } $ [plus handed showLogin backend] <> trees
where
trees = tree <$> unSessions sessions -- R2.useCache (
tree s@(Session {treeId}) = -- frontends
treeView { appReload -- /\ R.readRef currentRouteRef
, asyncTasks -- /\ sessions
, currentRoute -- /\ fst openNodes
, frontends -- /\ fst appReload
, handed -- /\ fst reload
, openNodes -- /\ (fst asyncTasks).storage
, reload -- /\ handed
, root: treeId -- )
, session: s -- (cpt' openNodes asyncTasks appReload reload showLogin backend currentRouteRef)
} [] -- cpt' openNodes asyncTasks appReload reload showLogin backend currentRouteRef (frontends /\ _ /\ sessions /\ _ /\ _ /\ _ /\ _ /\ handed) = do
-- pure $ H.div { className: "forest" } $ [plus handed showLogin backend] <> trees
-- where
-- trees = tree <$> unSessions sessions
-- tree s@(Session {treeId}) =
-- treeView { appReload
-- , asyncTasks
-- , currentRouteRef
-- , frontends
-- , handed
-- , openNodes
-- , reload
-- , root: treeId
-- , session: s
-- } []
plus :: Handed -> R.Setter Boolean -> R.State (Maybe Backend) -> R.Element plus :: Handed -> R.Setter Boolean -> R.State (Maybe Backend) -> R.Element
plus handed showLogin backend = H.div { className: "row" } [ plus handed showLogin backend = H.div { className: "row" } [
...@@ -111,15 +126,15 @@ plus handed showLogin backend = H.div { className: "row" } [ ...@@ -111,15 +126,15 @@ plus handed showLogin backend = H.div { className: "row" } [
------------------------- -------------------------
type ForestLayoutProps = ( type ForestLayoutProps = (
appReload :: GUR.ReloadS appReload :: GUR.ReloadS
, asyncTasksRef :: R.Ref (Maybe GAT.Reductor) , asyncTasksRef :: R.Ref (Maybe GAT.Reductor)
, backend :: R.State (Maybe Backend) , backend :: R.State (Maybe Backend)
, currentRoute :: AppRoute , currentRouteRef :: R.Ref AppRoute
, frontends :: Frontends , frontends :: Frontends
, handed :: R.State Handed , handed :: R.State Handed
, sessions :: Sessions , sessions :: Sessions
, showLogin :: R.Setter Boolean , showLogin :: R.Setter Boolean
, treeReloadRef :: GUR.ReloadWithInitializeRef , treeReloadRef :: GUR.ReloadWithInitializeRef
) )
forestLayout :: R2.Component ForestLayoutProps forestLayout :: R2.Component ForestLayoutProps
...@@ -167,7 +182,7 @@ forestLayoutRaw props = R.createElement forestLayoutRawCpt props ...@@ -167,7 +182,7 @@ forestLayoutRaw props = R.createElement forestLayoutRawCpt props
cpt { appReload cpt { appReload
, asyncTasksRef , asyncTasksRef
, backend , backend
, currentRoute , currentRouteRef
, frontends , frontends
, handed , handed
, sessions , sessions
...@@ -183,7 +198,7 @@ forestLayoutRaw props = R.createElement forestLayoutRawCpt props ...@@ -183,7 +198,7 @@ forestLayoutRaw props = R.createElement forestLayoutRawCpt props
forest { appReload forest { appReload
, asyncTasksRef , asyncTasksRef
, backend , backend
, currentRoute , currentRouteRef
, frontends , frontends
, handed: fst handed , handed: fst handed
, sessions , sessions
......
...@@ -31,7 +31,7 @@ import Gargantext.Components.Forest.Tree.Node.Action.Contact as Contact ...@@ -31,7 +31,7 @@ import Gargantext.Components.Forest.Tree.Node.Action.Contact as Contact
import Gargantext.Components.Forest.Tree.Node.Action.Update (updateRequest) import Gargantext.Components.Forest.Tree.Node.Action.Update (updateRequest)
import Gargantext.Components.Forest.Tree.Node.Action.Upload (uploadFile, uploadArbitraryFile) import Gargantext.Components.Forest.Tree.Node.Action.Upload (uploadFile, uploadArbitraryFile)
import Gargantext.Components.Forest.Tree.Node.Tools.FTree (FTree, LNode(..), NTree(..)) import Gargantext.Components.Forest.Tree.Node.Tools.FTree (FTree, LNode(..), NTree(..))
import Gargantext.Ends (Frontends, toUrl) import Gargantext.Ends (Frontends)
import Gargantext.Hooks.Loader (useLoader) import Gargantext.Hooks.Loader (useLoader)
import Gargantext.Routes (AppRoute) import Gargantext.Routes (AppRoute)
import Gargantext.Routes as GR import Gargantext.Routes as GR
...@@ -46,13 +46,13 @@ thisModule = "Gargantext.Components.Forest.Tree" ...@@ -46,13 +46,13 @@ thisModule = "Gargantext.Components.Forest.Tree"
------------------------------------------------------------------------ ------------------------------------------------------------------------
type CommonProps = ( type CommonProps = (
appReload :: GUR.ReloadS appReload :: GUR.ReloadS
, currentRoute :: AppRoute , currentRouteRef :: R.Ref AppRoute
, frontends :: Frontends , frontends :: Frontends
, handed :: GT.Handed , handed :: GT.Handed
, openNodes :: R.State OpenNodes , openNodes :: R.State OpenNodes
, reload :: GUR.ReloadS , reload :: GUR.ReloadS
, session :: Session , session :: Session
) )
------------------------------------------------------------------------ ------------------------------------------------------------------------
...@@ -70,7 +70,7 @@ treeView = R.createElement elCpt ...@@ -70,7 +70,7 @@ treeView = R.createElement elCpt
cpt { appReload cpt { appReload
, asyncTasks , asyncTasks
, currentRoute , currentRouteRef
, frontends , frontends
, handed , handed
, openNodes , openNodes
...@@ -80,7 +80,7 @@ treeView = R.createElement elCpt ...@@ -80,7 +80,7 @@ treeView = R.createElement elCpt
} _children = do } _children = do
pure $ treeLoadView { appReload pure $ treeLoadView { appReload
, asyncTasks , asyncTasks
, currentRoute , currentRouteRef
, frontends , frontends
, handed , handed
, openNodes , openNodes
...@@ -97,7 +97,7 @@ treeLoadView = R.createElement elCpt ...@@ -97,7 +97,7 @@ treeLoadView = R.createElement elCpt
cpt { appReload cpt { appReload
, asyncTasks , asyncTasks
, currentRoute , currentRouteRef
, frontends , frontends
, handed , handed
, openNodes , openNodes
...@@ -108,7 +108,7 @@ treeLoadView = R.createElement elCpt ...@@ -108,7 +108,7 @@ treeLoadView = R.createElement elCpt
let fetch _ = getNodeTree session root let fetch _ = getNodeTree session root
let paint loaded = loadedTreeViewFirstLevel { appReload let paint loaded = loadedTreeViewFirstLevel { appReload
, asyncTasks , asyncTasks
, currentRoute , currentRouteRef
, frontends , frontends
, handed , handed
, openNodes , openNodes
...@@ -142,7 +142,7 @@ loadedTreeViewFirstLevel = R.createElement elCpt ...@@ -142,7 +142,7 @@ loadedTreeViewFirstLevel = R.createElement elCpt
cpt { appReload cpt { appReload
, asyncTasks , asyncTasks
, currentRoute , currentRouteRef
, frontends , frontends
, handed , handed
, openNodes , openNodes
...@@ -155,7 +155,7 @@ loadedTreeViewFirstLevel = R.createElement elCpt ...@@ -155,7 +155,7 @@ loadedTreeViewFirstLevel = R.createElement elCpt
H.div { className: if handed == GT.RightHanded then "righthanded" else "lefthanded" } [ H.div { className: if handed == GT.RightHanded then "righthanded" else "lefthanded" } [
toHtmlFirstLevel { appReload toHtmlFirstLevel { appReload
, asyncTasks , asyncTasks
, currentRoute , currentRouteRef
, frontends , frontends
, handed , handed
, openNodes , openNodes
...@@ -187,7 +187,7 @@ toHtmlFirstLevel = R.createElement elCpt ...@@ -187,7 +187,7 @@ toHtmlFirstLevel = R.createElement elCpt
cpt p@{ appReload cpt p@{ appReload
, asyncTasks , asyncTasks
, currentRoute , currentRouteRef
, frontends , frontends
, handed , handed
, openNodes , openNodes
...@@ -216,7 +216,7 @@ toHtmlFirstLevel = R.createElement elCpt ...@@ -216,7 +216,7 @@ toHtmlFirstLevel = R.createElement elCpt
pure $ H.li { className: if A.null ary then "no-children" else "with-children" } $ pure $ H.li { className: if A.null ary then "no-children" else "with-children" } $
[ nodeSpan { appReload [ nodeSpan { appReload
, asyncTasks , asyncTasks
, currentRoute , currentRouteRef
, dispatch: pAction , dispatch: pAction
, folderOpen , folderOpen
, frontends , frontends
...@@ -275,7 +275,7 @@ childNodeFirstLevel = R.createElement elCpt ...@@ -275,7 +275,7 @@ childNodeFirstLevel = R.createElement elCpt
cpt props@{ appReload cpt props@{ appReload
, asyncTasks , asyncTasks
, currentRoute , currentRouteRef
, folderOpen , folderOpen
, id , id
, frontends , frontends
...@@ -289,7 +289,7 @@ childNodeFirstLevel = R.createElement elCpt ...@@ -289,7 +289,7 @@ childNodeFirstLevel = R.createElement elCpt
let fetch _ = getNodeTreeFirstLevel session id let fetch _ = getNodeTreeFirstLevel session id
let paint loaded = childNodeFirstLevelPaint { appReload let paint loaded = childNodeFirstLevelPaint { appReload
, asyncTasks , asyncTasks
, currentRoute , currentRouteRef
, folderOpen , folderOpen
, frontends , frontends
, handed , handed
......
...@@ -43,16 +43,16 @@ thisModule = "Gargantext.Components.Forest.Tree.Node" ...@@ -43,16 +43,16 @@ thisModule = "Gargantext.Components.Forest.Tree.Node"
-- Main Node -- Main Node
type NodeMainSpanProps = ( type NodeMainSpanProps = (
appReload :: GUR.ReloadS appReload :: GUR.ReloadS
, asyncTasks :: GAT.Reductor , asyncTasks :: GAT.Reductor
, currentRoute :: Routes.AppRoute , currentRouteRef :: R.Ref Routes.AppRoute
, folderOpen :: R.State Boolean , folderOpen :: R.State Boolean
, frontends :: Frontends , frontends :: Frontends
, id :: ID , id :: ID
, isLeaf :: IsLeaf , isLeaf :: IsLeaf
, name :: Name , name :: Name
, nodeType :: GT.NodeType , nodeType :: GT.NodeType
, setPopoverRef :: R.Ref (Maybe (Boolean -> Effect Unit)) , setPopoverRef :: R.Ref (Maybe (Boolean -> Effect Unit))
| CommonProps | CommonProps
) )
...@@ -75,7 +75,7 @@ nodeMainSpan = R.createElement nodeMainSpanCpt ...@@ -75,7 +75,7 @@ nodeMainSpan = R.createElement nodeMainSpanCpt
cpt props@{ appReload cpt props@{ appReload
, asyncTasks: (asyncTasks /\ dispatchAsyncTasks) , asyncTasks: (asyncTasks /\ dispatchAsyncTasks)
, currentRoute , currentRouteRef
, dispatch , dispatch
, folderOpen , folderOpen
, frontends , frontends
...@@ -101,7 +101,7 @@ nodeMainSpan = R.createElement nodeMainSpanCpt ...@@ -101,7 +101,7 @@ nodeMainSpan = R.createElement nodeMainSpanCpt
GT.LeftHanded -> reverse GT.LeftHanded -> reverse
GT.RightHanded -> identity GT.RightHanded -> identity
let isSelected = Just currentRoute == Routes.nodeTypeAppRoute nodeType (sessionId session) id let isSelected = Just (R.readRef currentRouteRef) == Routes.nodeTypeAppRoute nodeType (sessionId session) id
pure $ H.span (dropProps droppedFile isDragOver) pure $ H.span (dropProps droppedFile isDragOver)
$ ordering $ ordering
......
...@@ -43,15 +43,15 @@ thisModule :: String ...@@ -43,15 +43,15 @@ thisModule :: String
thisModule = "Gargantext.Components.GraphExplorer" thisModule = "Gargantext.Components.GraphExplorer"
type LayoutProps = ( type LayoutProps = (
asyncTasksRef :: R.Ref (Maybe GAT.Reductor) asyncTasksRef :: R.Ref (Maybe GAT.Reductor)
, backend :: R.State (Maybe Backend) , backend :: R.State (Maybe Backend)
, currentRoute :: AppRoute , currentRouteRef :: R.Ref AppRoute
, frontends :: Frontends , frontends :: Frontends
, graphId :: GET.GraphId , graphId :: GET.GraphId
, handed :: Types.Handed , handed :: Types.Handed
, session :: Session , session :: Session
, sessions :: Sessions , sessions :: Sessions
, showLogin :: R.State Boolean , showLogin :: R.State Boolean
) )
type Props = type Props =
...@@ -95,7 +95,7 @@ explorerCpt = R.hooksComponentWithModule thisModule "explorer" cpt ...@@ -95,7 +95,7 @@ explorerCpt = R.hooksComponentWithModule thisModule "explorer" cpt
where where
cpt props@{ asyncTasksRef cpt props@{ asyncTasksRef
, backend , backend
, currentRoute , currentRouteRef
, frontends , frontends
, graph , graph
, graphId , graphId
...@@ -163,7 +163,7 @@ explorerCpt = R.hooksComponentWithModule thisModule "explorer" cpt ...@@ -163,7 +163,7 @@ explorerCpt = R.hooksComponentWithModule thisModule "explorer" cpt
, RH.div { className: "row graph-row" } $ mainLayout handed $ , RH.div { className: "row graph-row" } $ mainLayout handed $
tree { asyncTasksRef tree { asyncTasksRef
, backend , backend
, currentRoute , currentRouteRef
, frontends , frontends
, handed , handed
, reload: treeReload , reload: treeReload
...@@ -220,12 +220,12 @@ explorerCpt = R.hooksComponentWithModule thisModule "explorer" cpt ...@@ -220,12 +220,12 @@ explorerCpt = R.hooksComponentWithModule thisModule "explorer" cpt
tree :: Record TreeProps -> R.Element tree :: Record TreeProps -> R.Element
tree { show: false } = RH.div { id: "tree" } [] tree { show: false } = RH.div { id: "tree" } []
tree { asyncTasksRef, backend, frontends, handed, currentRoute, reload, sessions, showLogin, treeReloadRef } = tree { asyncTasksRef, backend, frontends, handed, currentRouteRef, reload, sessions, showLogin, treeReloadRef } =
RH.div {className: "col-md-2 graph-tree"} [ RH.div {className: "col-md-2 graph-tree"} [
forest { appReload: reload forest { appReload: reload
, asyncTasksRef , asyncTasksRef
, backend , backend
, currentRoute , currentRouteRef
, frontends , frontends
, handed , handed
, sessions , sessions
...@@ -242,16 +242,16 @@ explorerCpt = R.hooksComponentWithModule thisModule "explorer" cpt ...@@ -242,16 +242,16 @@ explorerCpt = R.hooksComponentWithModule thisModule "explorer" cpt
type TreeProps = type TreeProps =
( (
asyncTasksRef :: R.Ref (Maybe GAT.Reductor) asyncTasksRef :: R.Ref (Maybe GAT.Reductor)
, backend :: R.State (Maybe Backend) , backend :: R.State (Maybe Backend)
, currentRoute :: AppRoute , currentRouteRef :: R.Ref AppRoute
, frontends :: Frontends , frontends :: Frontends
, handed :: Types.Handed , handed :: Types.Handed
, reload :: GUR.ReloadS , reload :: GUR.ReloadS
, sessions :: Sessions , sessions :: Sessions
, show :: Boolean , show :: Boolean
, showLogin :: R.Setter Boolean , showLogin :: R.Setter Boolean
, treeReloadRef :: GUR.ReloadWithInitializeRef , treeReloadRef :: GUR.ReloadWithInitializeRef
) )
type MSidebarProps = type MSidebarProps =
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment