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
990eaab3
Commit
990eaab3
authored
Dec 11, 2019
by
Przemyslaw Kaminski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[Graph] multiselect works now
parent
85a9a63a
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
10 additions
and
16 deletions
+10
-16
GraphExplorer.purs
src/Gargantext/Components/GraphExplorer.purs
+9
-15
Controls.purs
src/Gargantext/Components/GraphExplorer/Controls.purs
+1
-1
No files found.
src/Gargantext/Components/GraphExplorer.purs
View file @
990eaab3
...
@@ -2,7 +2,6 @@ module Gargantext.Components.GraphExplorer where
...
@@ -2,7 +2,6 @@ module Gargantext.Components.GraphExplorer where
import Gargantext.Prelude hiding (max,min)
import Gargantext.Prelude hiding (max,min)
import Data.Array as A
import Data.FoldableWithIndex (foldMapWithIndex)
import Data.FoldableWithIndex (foldMapWithIndex)
import Data.Foldable (foldMap)
import Data.Foldable (foldMap)
import Data.Int (toNumber)
import Data.Int (toNumber)
...
@@ -13,7 +12,6 @@ import Data.Sequence as Seq
...
@@ -13,7 +12,6 @@ import Data.Sequence as Seq
import Data.Set as Set
import Data.Set as Set
import Data.Tuple (fst, snd, Tuple(..))
import Data.Tuple (fst, snd, Tuple(..))
import Data.Tuple.Nested ((/\))
import Data.Tuple.Nested ((/\))
import DOM.Simple.Console (log2)
import DOM.Simple.Types (Element)
import DOM.Simple.Types (Element)
import Effect.Aff (Aff)
import Effect.Aff (Aff)
import Math (log)
import Math (log)
...
@@ -80,6 +78,7 @@ explorerCpt = R.hooksComponent "G.C.GraphExplorer.explorer" cpt
...
@@ -80,6 +78,7 @@ explorerCpt = R.hooksComponent "G.C.GraphExplorer.explorer" cpt
dataRef <- R.useRef graph
dataRef <- R.useRef graph
graphRef <- R.useRef null
graphRef <- R.useRef null
controls <- Controls.useGraphControls graph
controls <- Controls.useGraphControls graph
multiSelectEnabledRef <- R.useRef $ fst controls.multiSelectEnabled
R.useEffect' $ do
R.useEffect' $ do
let readData = R.readRef dataRef
let readData = R.readRef dataRef
...
@@ -110,6 +109,7 @@ explorerCpt = R.hooksComponent "G.C.GraphExplorer.explorer" cpt
...
@@ -110,6 +109,7 @@ explorerCpt = R.hooksComponent "G.C.GraphExplorer.explorer" cpt
, elRef: graphRef
, elRef: graphRef
, graphId
, graphId
, graph
, graph
, multiSelectEnabledRef
}
}
, mSidebar graph mMetaData { frontends
, mSidebar graph mMetaData { frontends
, session
, session
...
@@ -169,27 +169,21 @@ type GraphProps = (
...
@@ -169,27 +169,21 @@ type GraphProps = (
, elRef :: R.Ref (Nullable Element)
, elRef :: R.Ref (Nullable Element)
, graphId :: GraphId
, graphId :: GraphId
, graph :: SigmaxTypes.SGraph
, graph :: SigmaxTypes.SGraph
, multiSelectEnabledRef :: R.Ref Boolean
)
)
graphView :: Record GraphProps -> R.Element
graphView :: Record GraphProps -> R.Element
--graphView sigmaRef props = R.createElement (R.memo el memoCmp) props []
--graphView sigmaRef props = R.createElement (R.memo el memoCmp) props []
graphView props = R.createElement el props []
graphView props = R.createElement graphViewCpt props []
graphViewCpt :: R.Component GraphProps
graphViewCpt = R.hooksComponent "GraphView" cpt
where
where
--memoCmp props1 props2 = props1.graphId == props2.graphId
cpt {controls, elRef, graphId, graph, multiSelectEnabledRef} _children = do
el = R.hooksComponent "GraphView" cpt
cpt {controls, elRef, graphId, graph} _children = do
-- TODO Cache this?
-- TODO Cache this?
let transformedGraph = transformGraph controls graph
let transformedGraph = transformGraph controls graph
multiSelectEnabledRef <- R.useRef $ fst controls.multiSelectEnabled
R.useEffect1' (fst controls.multiSelectEnabled) $ do
R.useEffect' $ do
let nodeColor {id, color} = [id, color]
let onlySelected g = Seq.filter (\n -> Set.member n.id (fst controls.selectedNodeIds)) $ SigmaxTypes.graphNodes g
log2 "[graphView] selectedNodeIds" $ A.fromFoldable $ fst controls.selectedNodeIds
log2 "[graphView] transformedGraph.nodes" $ A.fromFoldable $ map nodeColor $ onlySelected transformedGraph
log2 "[graphView] graph.nodes" $ A.fromFoldable $ map nodeColor $ onlySelected graph
R.setRef multiSelectEnabledRef $ fst controls.multiSelectEnabled
R.setRef multiSelectEnabledRef $ fst controls.multiSelectEnabled
pure $ Graph.graph {
pure $ Graph.graph {
...
...
src/Gargantext/Components/GraphExplorer/Controls.purs
View file @
990eaab3
...
@@ -148,7 +148,7 @@ useGraphControls graph = do
...
@@ -148,7 +148,7 @@ useGraphControls graph = do
cursorSize <- R.useState' 10.0
cursorSize <- R.useState' 10.0
graphStage <- R.useState' Graph.Init
graphStage <- R.useState' Graph.Init
multiSelectEnabled <- R.useState'
tru
e
multiSelectEnabled <- R.useState'
fals
e
nodeSize <- R.useState' $ Range.Closed { min: 0.0, max: 100.0 }
nodeSize <- R.useState' $ Range.Closed { min: 0.0, max: 100.0 }
showTree <- R.useState' false
showTree <- R.useState' false
selectedNodeIds <- R.useState' $ Set.empty
selectedNodeIds <- R.useState' $ Set.empty
...
...
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