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
cpt _ _ = do
sessions <- useSessions
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
treeReloadRef <- GUR.newI
......@@ -65,7 +69,7 @@ appCpt = R.hooksComponentWithModule thisModule "app" cpt where
let forested = forestLayout { appReload
, asyncTasksRef
, backend
, currentRoute: fst route
, currentRouteRef: routeRef
, frontends
, handed
, sessions: fst sessions
......@@ -75,7 +79,7 @@ appCpt = R.hooksComponentWithModule thisModule "app" cpt where
let forestedTB = forestLayoutWithTopBar { appReload
, asyncTasksRef
, backend
, currentRoute: fst route
, currentRouteRef: routeRef
, frontends
, handed
, sessions: fst sessions
......@@ -139,7 +143,7 @@ appCpt = R.hooksComponentWithModule thisModule "app" cpt where
appReload
, asyncTasksRef
, backend
, currentRoute: fst route
, currentRouteRef: routeRef
, frontends
, handed
, sessions: fst sessions
......@@ -162,7 +166,7 @@ appCpt = R.hooksComponentWithModule thisModule "app" cpt where
simpleLayout { handed } [
explorerLayout { asyncTasksRef
, backend
, currentRoute: fst route
, currentRouteRef: routeRef
, frontends
, graphId
, handed: fst handed
......@@ -190,7 +194,7 @@ appCpt = R.hooksComponentWithModule thisModule "app" cpt where
appReload
, asyncTasksRef
, backend
, currentRoute: fst route
, currentRouteRef: routeRef
, frontends
, handed
, sessions: fst sessions
......
......@@ -25,15 +25,15 @@ thisModule :: String
thisModule = "Gargantext.Components.Forest"
type Props = (
appReload :: GUR.ReloadS
, asyncTasksRef :: R.Ref (Maybe GAT.Reductor)
, backend :: R.State (Maybe Backend)
, currentRoute :: AppRoute
, frontends :: Frontends
, handed :: Handed
, sessions :: Sessions
, showLogin :: R.Setter Boolean
, treeReloadRef :: GUR.ReloadWithInitializeRef
appReload :: GUR.ReloadS
, asyncTasksRef :: R.Ref (Maybe GAT.Reductor)
, backend :: R.State (Maybe Backend)
, currentRouteRef :: R.Ref AppRoute
, frontends :: Frontends
, handed :: Handed
, sessions :: Sessions
, showLogin :: R.Setter Boolean
, treeReloadRef :: GUR.ReloadWithInitializeRef
)
forest :: R2.Component Props
......@@ -45,7 +45,7 @@ forest = R.createElement forestCpt
cpt { appReload
, asyncTasksRef
, backend
, currentRoute
, currentRouteRef
, frontends
, handed
, sessions
......@@ -56,37 +56,52 @@ forest = R.createElement forestCpt
asyncTasks <- GAT.useTasks appReload reload
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
R.useEffect' $ do
R.setRef asyncTasksRef $ Just asyncTasks
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
where
trees = tree <$> unSessions sessions
tree s@(Session {treeId}) =
treeView { appReload
, asyncTasks
, currentRoute
, frontends
, handed
, openNodes
, reload
, root: treeId
, session: s
} []
-- R2.useCache (
-- frontends
-- /\ R.readRef currentRouteRef
-- /\ sessions
-- /\ fst openNodes
-- /\ fst appReload
-- /\ fst reload
-- /\ (fst asyncTasks).storage
-- /\ handed
-- )
-- (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 showLogin backend = H.div { className: "row" } [
......@@ -111,15 +126,15 @@ plus handed showLogin backend = H.div { className: "row" } [
-------------------------
type ForestLayoutProps = (
appReload :: GUR.ReloadS
, asyncTasksRef :: R.Ref (Maybe GAT.Reductor)
, backend :: R.State (Maybe Backend)
, currentRoute :: AppRoute
, frontends :: Frontends
, handed :: R.State Handed
, sessions :: Sessions
, showLogin :: R.Setter Boolean
, treeReloadRef :: GUR.ReloadWithInitializeRef
appReload :: GUR.ReloadS
, asyncTasksRef :: R.Ref (Maybe GAT.Reductor)
, backend :: R.State (Maybe Backend)
, currentRouteRef :: R.Ref AppRoute
, frontends :: Frontends
, handed :: R.State Handed
, sessions :: Sessions
, showLogin :: R.Setter Boolean
, treeReloadRef :: GUR.ReloadWithInitializeRef
)
forestLayout :: R2.Component ForestLayoutProps
......@@ -167,7 +182,7 @@ forestLayoutRaw props = R.createElement forestLayoutRawCpt props
cpt { appReload
, asyncTasksRef
, backend
, currentRoute
, currentRouteRef
, frontends
, handed
, sessions
......@@ -183,7 +198,7 @@ forestLayoutRaw props = R.createElement forestLayoutRawCpt props
forest { appReload
, asyncTasksRef
, backend
, currentRoute
, currentRouteRef
, frontends
, handed: fst handed
, sessions
......
......@@ -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.Upload (uploadFile, uploadArbitraryFile)
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.Routes (AppRoute)
import Gargantext.Routes as GR
......@@ -46,13 +46,13 @@ thisModule = "Gargantext.Components.Forest.Tree"
------------------------------------------------------------------------
type CommonProps = (
appReload :: GUR.ReloadS
, currentRoute :: AppRoute
, frontends :: Frontends
, handed :: GT.Handed
, openNodes :: R.State OpenNodes
, reload :: GUR.ReloadS
, session :: Session
appReload :: GUR.ReloadS
, currentRouteRef :: R.Ref AppRoute
, frontends :: Frontends
, handed :: GT.Handed
, openNodes :: R.State OpenNodes
, reload :: GUR.ReloadS
, session :: Session
)
------------------------------------------------------------------------
......@@ -70,7 +70,7 @@ treeView = R.createElement elCpt
cpt { appReload
, asyncTasks
, currentRoute
, currentRouteRef
, frontends
, handed
, openNodes
......@@ -80,7 +80,7 @@ treeView = R.createElement elCpt
} _children = do
pure $ treeLoadView { appReload
, asyncTasks
, currentRoute
, currentRouteRef
, frontends
, handed
, openNodes
......@@ -97,7 +97,7 @@ treeLoadView = R.createElement elCpt
cpt { appReload
, asyncTasks
, currentRoute
, currentRouteRef
, frontends
, handed
, openNodes
......@@ -108,7 +108,7 @@ treeLoadView = R.createElement elCpt
let fetch _ = getNodeTree session root
let paint loaded = loadedTreeViewFirstLevel { appReload
, asyncTasks
, currentRoute
, currentRouteRef
, frontends
, handed
, openNodes
......@@ -142,7 +142,7 @@ loadedTreeViewFirstLevel = R.createElement elCpt
cpt { appReload
, asyncTasks
, currentRoute
, currentRouteRef
, frontends
, handed
, openNodes
......@@ -155,7 +155,7 @@ loadedTreeViewFirstLevel = R.createElement elCpt
H.div { className: if handed == GT.RightHanded then "righthanded" else "lefthanded" } [
toHtmlFirstLevel { appReload
, asyncTasks
, currentRoute
, currentRouteRef
, frontends
, handed
, openNodes
......@@ -187,7 +187,7 @@ toHtmlFirstLevel = R.createElement elCpt
cpt p@{ appReload
, asyncTasks
, currentRoute
, currentRouteRef
, frontends
, handed
, openNodes
......@@ -216,7 +216,7 @@ toHtmlFirstLevel = R.createElement elCpt
pure $ H.li { className: if A.null ary then "no-children" else "with-children" } $
[ nodeSpan { appReload
, asyncTasks
, currentRoute
, currentRouteRef
, dispatch: pAction
, folderOpen
, frontends
......@@ -275,7 +275,7 @@ childNodeFirstLevel = R.createElement elCpt
cpt props@{ appReload
, asyncTasks
, currentRoute
, currentRouteRef
, folderOpen
, id
, frontends
......@@ -289,7 +289,7 @@ childNodeFirstLevel = R.createElement elCpt
let fetch _ = getNodeTreeFirstLevel session id
let paint loaded = childNodeFirstLevelPaint { appReload
, asyncTasks
, currentRoute
, currentRouteRef
, folderOpen
, frontends
, handed
......
......@@ -43,16 +43,16 @@ thisModule = "Gargantext.Components.Forest.Tree.Node"
-- Main Node
type NodeMainSpanProps = (
appReload :: GUR.ReloadS
, asyncTasks :: GAT.Reductor
, currentRoute :: Routes.AppRoute
, folderOpen :: R.State Boolean
, frontends :: Frontends
, id :: ID
, isLeaf :: IsLeaf
, name :: Name
, nodeType :: GT.NodeType
, setPopoverRef :: R.Ref (Maybe (Boolean -> Effect Unit))
appReload :: GUR.ReloadS
, asyncTasks :: GAT.Reductor
, currentRouteRef :: R.Ref Routes.AppRoute
, folderOpen :: R.State Boolean
, frontends :: Frontends
, id :: ID
, isLeaf :: IsLeaf
, name :: Name
, nodeType :: GT.NodeType
, setPopoverRef :: R.Ref (Maybe (Boolean -> Effect Unit))
| CommonProps
)
......@@ -75,7 +75,7 @@ nodeMainSpan = R.createElement nodeMainSpanCpt
cpt props@{ appReload
, asyncTasks: (asyncTasks /\ dispatchAsyncTasks)
, currentRoute
, currentRouteRef
, dispatch
, folderOpen
, frontends
......@@ -101,7 +101,7 @@ nodeMainSpan = R.createElement nodeMainSpanCpt
GT.LeftHanded -> reverse
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)
$ ordering
......
......@@ -43,15 +43,15 @@ thisModule :: String
thisModule = "Gargantext.Components.GraphExplorer"
type LayoutProps = (
asyncTasksRef :: R.Ref (Maybe GAT.Reductor)
, backend :: R.State (Maybe Backend)
, currentRoute :: AppRoute
, frontends :: Frontends
, graphId :: GET.GraphId
, handed :: Types.Handed
, session :: Session
, sessions :: Sessions
, showLogin :: R.State Boolean
asyncTasksRef :: R.Ref (Maybe GAT.Reductor)
, backend :: R.State (Maybe Backend)
, currentRouteRef :: R.Ref AppRoute
, frontends :: Frontends
, graphId :: GET.GraphId
, handed :: Types.Handed
, session :: Session
, sessions :: Sessions
, showLogin :: R.State Boolean
)
type Props =
......@@ -95,7 +95,7 @@ explorerCpt = R.hooksComponentWithModule thisModule "explorer" cpt
where
cpt props@{ asyncTasksRef
, backend
, currentRoute
, currentRouteRef
, frontends
, graph
, graphId
......@@ -163,7 +163,7 @@ explorerCpt = R.hooksComponentWithModule thisModule "explorer" cpt
, RH.div { className: "row graph-row" } $ mainLayout handed $
tree { asyncTasksRef
, backend
, currentRoute
, currentRouteRef
, frontends
, handed
, reload: treeReload
......@@ -220,12 +220,12 @@ explorerCpt = R.hooksComponentWithModule thisModule "explorer" cpt
tree :: Record TreeProps -> R.Element
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"} [
forest { appReload: reload
, asyncTasksRef
, backend
, currentRoute
, currentRouteRef
, frontends
, handed
, sessions
......@@ -242,16 +242,16 @@ explorerCpt = R.hooksComponentWithModule thisModule "explorer" cpt
type TreeProps =
(
asyncTasksRef :: R.Ref (Maybe GAT.Reductor)
, backend :: R.State (Maybe Backend)
, currentRoute :: AppRoute
, frontends :: Frontends
, handed :: Types.Handed
, reload :: GUR.ReloadS
, sessions :: Sessions
, show :: Boolean
, showLogin :: R.Setter Boolean
, treeReloadRef :: GUR.ReloadWithInitializeRef
asyncTasksRef :: R.Ref (Maybe GAT.Reductor)
, backend :: R.State (Maybe Backend)
, currentRouteRef :: R.Ref AppRoute
, frontends :: Frontends
, handed :: Types.Handed
, reload :: GUR.ReloadS
, sessions :: Sessions
, show :: Boolean
, showLogin :: R.Setter Boolean
, treeReloadRef :: GUR.ReloadWithInitializeRef
)
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