Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
purescript-gargantext
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Grégoire Locqueville
purescript-gargantext
Commits
83b75761
Commit
83b75761
authored
Nov 12, 2020
by
Przemyslaw Kaminski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[forest] refactoring of forest view with children
parent
2bdf5821
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
112 additions
and
80 deletions
+112
-80
App.purs
src/Gargantext/Components/App.purs
+88
-60
Forest.purs
src/Gargantext/Components/Forest.purs
+24
-20
No files found.
src/Gargantext/Components/App.purs
View file @
83b75761
...
@@ -35,7 +35,6 @@ import Gargantext.Routes (AppRoute(..))
...
@@ -35,7 +35,6 @@ import Gargantext.Routes (AppRoute(..))
import Gargantext.Sessions (Sessions, useSessions)
import Gargantext.Sessions (Sessions, useSessions)
import Gargantext.Sessions as Sessions
import Gargantext.Sessions as Sessions
import Gargantext.Types as GT
import Gargantext.Types as GT
import Gargantext.Utils.Reactix as R2
thisModule :: String
thisModule :: String
thisModule = "Gargantext.Components.App"
thisModule = "Gargantext.Components.App"
...
@@ -67,61 +66,78 @@ appCpt = R.hooksComponentWithModule thisModule "app" cpt where
...
@@ -67,61 +66,78 @@ appCpt = R.hooksComponentWithModule thisModule "app" cpt where
let backends = fromFoldable defaultBackends
let backends = fromFoldable defaultBackends
let ff f session = R.fragment [ f session, footer { session } ]
let ff f session = R.fragment [ f session, footer { session } ]
let forested child = forestLayout { appReload: reload
let forested = forestLayout { appReload: reload
, asyncTasksRef
, asyncTasksRef
, backend
, backend
, child
, frontends
, frontends
, handed
, handed
, route: fst route
, route: fst route
, sessions: fst sessions
, sessions: fst sessions
, showLogin: snd showLogin
, showLogin: snd showLogin
, treeReloadRef
, treeReloadRef
}
}
let defaultView _ = forested [
let defaultView _ = forested $ homeLayout { backend
homeLayout { backend
, lang: LL_EN
, lang: LL_EN
, publicBackend
, publicBackend
, sessions
, sessions
, visible: showLogin
, visible: showLogin
}
}
]
let mCurrentRoute = fst route
let mCurrentRoute = fst route
let withSession sid f = maybe' defaultView (ff f) (Sessions.lookup sid (fst sessions))
let withSession sid f = maybe' defaultView (ff f) (Sessions.lookup sid (fst sessions))
let sessionUpdate s = snd sessions $ Sessions.Update s
let sessionUpdate s = snd sessions $ Sessions.Update s
pure $ case fst showLogin of
pure $ case fst showLogin of
true -> forested
$ login { backend, backends, sessions, visible: showLogin }
true -> forested
[ login { backend, backends, sessions, visible: showLogin } ]
false ->
false ->
case fst route of
case fst route of
Annuaire sid nodeId -> withSession sid $ \session -> forested $ annuaireLayout { frontends, nodeId, session }
Annuaire sid nodeId -> withSession sid $ \session -> forested [
ContactPage sid aId nodeId -> withSession sid $ \session -> forested $ annuaireUserLayout {
annuaireLayout { frontends, nodeId, session }
annuaireId: aId
]
, appReload: reload
ContactPage sid aId nodeId -> withSession sid $ \session -> forested [
, asyncTasksRef
annuaireUserLayout {
, frontends
annuaireId: aId
, nodeId
, appReload: reload
, session
, asyncTasksRef
, treeReloadRef
, frontends
}
, nodeId
Corpus sid nodeId -> withSession sid $ \session -> forested $ corpusLayout { nodeId, session }
, session
CorpusDocument sid corpusId listId nodeId -> withSession sid $ \session -> forested $ documentLayout { corpusId: Just corpusId, nodeId, listId, session }
, treeReloadRef
Dashboard sid nodeId -> withSession sid $ \session -> forested $ dashboardLayout { nodeId, session }
}
]
Corpus sid nodeId -> withSession sid $ \session -> forested [
corpusLayout { nodeId, session }
]
CorpusDocument sid corpusId listId nodeId -> withSession sid $ \session -> forested [
documentLayout { corpusId: Just corpusId, nodeId, listId, session }
]
Dashboard sid nodeId -> withSession sid $ \session -> forested [
dashboardLayout { nodeId, session }
]
Document sid listId nodeId ->
Document sid listId nodeId ->
withSession sid $
withSession sid $
\session -> forested $ documentLayout { corpusId: Nothing, nodeId, listId, session }
\session -> forested [
Folder sid nodeId -> withSession sid $ \session -> forested $ corpusLayout { nodeId, session }
documentLayout { corpusId: Nothing, nodeId, listId, session }
FolderPrivate sid nodeId -> withSession sid $ \session -> forested $ corpusLayout { nodeId, session }
]
FolderPublic sid nodeId -> withSession sid $ \session -> forested $ corpusLayout { nodeId, session }
Folder sid nodeId -> withSession sid $ \session -> forested [ corpusLayout { nodeId, session } ]
FolderShared sid nodeId -> withSession sid $ \session -> forested $ corpusLayout { nodeId, session }
FolderPrivate sid nodeId -> withSession sid $ \session -> forested [ corpusLayout { nodeId, session } ]
Home -> forested $ homeLayout { backend, lang: LL_EN, publicBackend, sessions, visible: showLogin }
FolderPublic sid nodeId -> withSession sid $ \session -> forested [ corpusLayout { nodeId, session } ]
Lists sid nodeId -> withSession sid $ \session -> forested $ listsLayout {
FolderShared sid nodeId -> withSession sid $ \session -> forested [ corpusLayout { nodeId, session } ]
appReload: reload
Home -> forested [
, asyncTasksRef
homeLayout { backend, lang: LL_EN, publicBackend, sessions, visible: showLogin }
, nodeId
]
, session
Lists sid nodeId -> withSession sid $ \session -> forested [
, sessionUpdate
listsLayout {
, treeReloadRef
appReload: reload
}
, asyncTasksRef
, nodeId
, session
, sessionUpdate
, treeReloadRef
}
]
Login -> login { backend, backends, sessions, visible: showLogin }
Login -> login { backend, backends, sessions, visible: showLogin }
PGraphExplorer sid graphId ->
PGraphExplorer sid graphId ->
withSession sid $
withSession sid $
...
@@ -137,20 +153,32 @@ appCpt = R.hooksComponentWithModule thisModule "app" cpt where
...
@@ -137,20 +153,32 @@ appCpt = R.hooksComponentWithModule thisModule "app" cpt where
, sessions: (fst sessions)
, sessions: (fst sessions)
, showLogin
, showLogin
}
}
RouteFile sid nodeId -> withSession sid $ \session -> forested $ fileLayout { nodeId, session }
RouteFile sid nodeId -> withSession sid $ \session -> forested [ fileLayout { nodeId, session } ]
RouteFrameCalc sid nodeId -> withSession sid $ \session -> forested $ frameLayout { nodeId, nodeType: GT.NodeFrameCalc, session }
RouteFrameCalc sid nodeId -> withSession sid $ \session -> forested [
RouteFrameWrite sid nodeId -> withSession sid $ \session -> forested $ frameLayout { nodeId, nodeType: GT.NodeFrameWrite, session }
frameLayout { nodeId, nodeType: GT.NodeFrameCalc, session }
RouteFrameCode sid nodeId -> withSession sid $ \session -> forested $ frameLayout { nodeId, nodeType: GT.NodeFrameNotebook, session }
]
Team sid nodeId -> withSession sid $ \session -> forested $ corpusLayout { nodeId, session }
RouteFrameWrite sid nodeId -> withSession sid $ \session -> forested [
Texts sid nodeId -> withSession sid $ \session -> forested $ textsLayout { frontends, nodeId, session, sessionUpdate }
frameLayout { nodeId, nodeType: GT.NodeFrameWrite, session }
UserPage sid nodeId -> withSession sid $ \session -> forested $ userLayout {
]
appReload: reload
RouteFrameCode sid nodeId -> withSession sid $ \session -> forested [
, asyncTasksRef
frameLayout { nodeId, nodeType: GT.NodeFrameNotebook, session }
, frontends
]
, nodeId
Team sid nodeId -> withSession sid $ \session -> forested [
, session
corpusLayout { nodeId, session }
, treeReloadRef
]
}
Texts sid nodeId -> withSession sid $ \session -> forested [
textsLayout { frontends, nodeId, session, sessionUpdate }
]
UserPage sid nodeId -> withSession sid $ \session -> forested [
userLayout {
appReload: reload
, asyncTasksRef
, frontends
, nodeId
, session
, treeReloadRef
}
]
-- Simple layout does not accommodate the tree
-- Simple layout does not accommodate the tree
simpleLayout :: R.State GT.Handed -> R.Element -> R.Element
simpleLayout :: R.State GT.Handed -> R.Element -> R.Element
...
...
src/Gargantext/Components/Forest.purs
View file @
83b75761
...
@@ -118,7 +118,6 @@ type ForestLayoutProps = (
...
@@ -118,7 +118,6 @@ type ForestLayoutProps = (
appReload :: ReloadS
appReload :: ReloadS
, asyncTasksRef :: R.Ref (Maybe GAT.Reductor)
, asyncTasksRef :: R.Ref (Maybe GAT.Reductor)
, backend :: R.State (Maybe Backend)
, backend :: R.State (Maybe Backend)
, child :: R.Element
, frontends :: Frontends
, frontends :: Frontends
, handed :: R.State Handed
, handed :: R.State Handed
, route :: AppRoute
, route :: AppRoute
...
@@ -127,8 +126,8 @@ type ForestLayoutProps = (
...
@@ -127,8 +126,8 @@ type ForestLayoutProps = (
, treeReloadRef :: R.Ref (Maybe ReloadS)
, treeReloadRef :: R.Ref (Maybe ReloadS)
)
)
forestLayout :: Record ForestLayoutProps -> R.Element
forestLayout :: Record ForestLayoutProps ->
Array R.Element ->
R.Element
forestLayout props = R.createElement forestLayoutCpt props
[]
forestLayout props = R.createElement forestLayoutCpt props
forestLayoutCpt :: R.Component ForestLayoutProps
forestLayoutCpt :: R.Component ForestLayoutProps
forestLayoutCpt = R.hooksComponentWithModule thisModule "forestLayout" cpt
forestLayoutCpt = R.hooksComponentWithModule thisModule "forestLayout" cpt
...
@@ -145,13 +144,12 @@ forestLayoutMainCpt = R.hooksComponentWithModule thisModule "forestLayoutMain" c
...
@@ -145,13 +144,12 @@ forestLayoutMainCpt = R.hooksComponentWithModule thisModule "forestLayoutMain" c
cpt { appReload
cpt { appReload
, asyncTasksRef
, asyncTasksRef
, backend
, backend
, child
, frontends
, frontends
, handed
, handed
, route
, route
, sessions
, sessions
, showLogin
, showLogin
, treeReloadRef }
_
= do
, treeReloadRef }
children
= do
let ordering =
let ordering =
case fst handed of
case fst handed of
LeftHanded -> reverse
LeftHanded -> reverse
...
@@ -159,21 +157,27 @@ forestLayoutMainCpt = R.hooksComponentWithModule thisModule "forestLayoutMain" c
...
@@ -159,21 +157,27 @@ forestLayoutMainCpt = R.hooksComponentWithModule thisModule "forestLayoutMain" c
pure $ R2.row $ ordering [
pure $ R2.row $ ordering [
H.div { className: "col-md-2", style: { paddingTop: "60px" } }
H.div { className: "col-md-2", style: { paddingTop: "60px" } }
[ forest { appReload
[ forest { appReload
, asyncTasksRef
, asyncTasksRef
, backend
, backend
, frontends
, frontends
, handed: fst handed
, handed: fst handed
, route
, route
, sessions
, sessions
, showLogin
, showLogin
, treeReloadRef } ]
, treeReloadRef } ]
, mainPage child
, mainPage child
ren
]
]
mainPage :: Array R.Element -> R.Element
mainPage = R.createElement mainPageCpt {}
mainPage :: R.Element -> R.Element
mainPageCpt :: R.Component ()
mainPage child =
mainPageCpt = R.hooksComponentWithModule thisModule "mainPage" cpt
H.div {className: "col-md-10"}
where
[ H.div {id: "page-wrapper"}
cpt {} children = do
[ H.div {className: "container-fluid"} [ child ] ] ]
pure $ H.div {className: "col-md-10"} [
H.div {id: "page-wrapper"} [
H.div {className: "container-fluid"} children
]
]
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment