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
148
Issues
148
List
Board
Labels
Milestones
Merge Requests
2
Merge Requests
2
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
gargantext
purescript-gargantext
Commits
f5c319e9
Commit
f5c319e9
authored
Nov 05, 2019
by
Przemyslaw Kaminski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[Graph] some sigma fixes to current code
But still doesn't compile...
parent
bac07dd6
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
56 additions
and
38 deletions
+56
-38
Graph.purs
src/Gargantext/Components/Graph.purs
+18
-16
Sigmax.purs
src/Gargantext/Hooks/Sigmax.purs
+38
-22
No files found.
src/Gargantext/Components/Graph.purs
View file @
f5c319e9
...
...
@@ -38,8 +38,8 @@ type Props sigma fa2 =
)
type Last sigma fa2 =
( graph :: R.Ref (Maybe Graph)
)
, fa2 :: R.Ref (Maybe fa2)
)
( graph :: R.Ref (Maybe Graph)
, fa2 :: R.Ref (Maybe fa2)
, sigma :: R.Ref (Maybe sigma)
)
...
...
@@ -60,22 +60,24 @@ graphCpt = R.hooksComponent "Graph" cpt
Right (container /\ sigma) -> do
Sigma.setSettings sigma props.sigmaSettings
good <- addRenderer container sigma
if good
setLast last props
if good then
setLast last props
else
pure unit
R.setRef sigmaRef sigma
R.useEffect3 props.graph props.forceAtlas2Settings props.sigmaSettings
startSigma ref props.sigmaRef props.sigmaSettings props.forceAtlas2Settings props.graph
R.useEffect3 props.graph props.forceAtlas2Settings props.sigmaSettings $
startSigma ref props.sigmaRef props.sigmaSettings props.forceAtlas2Settings props.graph
pure $ RH.div { ref: containerRef, style: {height: "95%"} } []
graphEffect {graph, forceAtlas2Settings, sigmaSettings} =
R.useEffect3 graph forceAtlas2Settings sigmaSettings do
graphEffect {graph, forceAtlas2Settings, sigmaSettings} =
R.useEffect3 graph forceAtlas2Settings sigmaSettings $
pure unit
setLast :: forall s fa2. R.Ref (Record (Last s fa2)) -> R.Record (Props s fa2) -> Effect Unit
setLast ref {graph, forceAtlas2Settings, sigmaSettings} = R.setRef ref new where
new = {graph, fa2: forceAtlas2Settings, sigma: sigmaSettings}
setLast ref {graph, forceAtlas2Settings, sigmaSettings} = R.setRef ref new
where
new = {graph, fa2: forceAtlas2Settings, sigma: sigmaSettings}
assertContainer :: R.Ref (Nullable DOM.Element) -> Either (Effect Unit) DOM.Element
assertContainer ref = note err $ R.readNullableRef containerRef where
...
...
@@ -92,8 +94,8 @@ addRenderer container sigma = do
Right r -> pure True
Left e -> log2 "[G.C.Graph.graph] Error creating renderer: " e *> pure False
either err Right $ Sigma.sigma where
err = log2 "[G.C.Graph.graph] Error initialising sigma: "
--
either err Right $ Sigma.sigma where
--
err = log2 "[G.C.Graph.graph] Error initialising sigma: "
useSigma containerRef props = do
sigmaRef <- R2.nothingRef
...
...
@@ -107,8 +109,8 @@ useSigma containerRef props = do
log2 "[G.H.Sigmax.useSigma] Sigma initialised: " sigma
R.setRef sigmaRef sigma
pure $ Sigma.killSigma sigma
h sigma = do
log2 "[G.C.Graph.graph] Found sigma!" sigma
--
h sigma = do
--
log2 "[G.C.Graph.graph] Found sigma!" sigma
pure sigmaRef
where
named msg = "[G.C.Graph.useSigma] " <> msg
...
...
@@ -117,7 +119,7 @@ useSigma containerRef props = do
assertAddRenderer sigma container =
--
assertAddRenderer sigma container =
type SigmaSettings =
( animationsTime :: Number
...
...
src/Gargantext/Hooks/Sigmax.purs
View file @
f5c319e9
...
...
@@ -49,7 +49,8 @@ cleanupFirst sigma =
startSigma :: forall settings faSettings n e. R.Ref (Nullable Element) -> R.Ref (Maybe Sigma) -> settings -> faSettings -> Graph n e -> R.Hooks Unit
startSigma ref sigmaRef settings forceAtlas2Settings graph = do
{sigma, isNew} <- useSigma ref settings sigmaRef
--{sigma, isNew} <- useSigma ref settings sigmaRef
sigmaRef <- useSigma
useCanvasRenderer ref sigma
if isNew then do
...
...
@@ -72,22 +73,33 @@ startSigma ref sigmaRef settings forceAtlas2Settings graph = do
useSigma :: R.Hooks (R.Ref (Maybe Sigma))
useSigma = do
sigmaRef <- R2.nothingRef
R.useEffectOnce $ delay unit $ \_ ->
case Sigma.sigma unit of
Left e ->
log2 "[G.H.Sigmax.useSigma] Error initialising sigma: " e
sRef <- R2.nothingRef
cleanupRef <- R.useRef Seq.empty
sigmaRef <- R.useRef $ Just { sigma: sRef, cleanup: cleanupRef }
R.useEffectOnce $ delay unit $ \_ -> do
let s = Sigma.sigma unit
case s of
Left e -> do
pure $ log2 "[G.H.Sigmax.useSigma] Error initialising sigma: " e
Right sigma -> do
log2 "[G.H.Sigmax.useSigma] Sigma initialised: " sigma
R.setRef sigmaRef (Sigma.sigma unit)
_ <- pure $ log2 "[G.H.Sigmax.useSigma] Sigma initialised: " sigma
_ <- pure $ R.setRef sRef $ Just sigma
pure $ pure unit
updateSettings :: forall settings. Sigma -> R.Ref settings -> settings -> Effect Bool
pure sigmaRef
updateSettings :: forall settings. Eq settings => Sigma -> R.Ref settings -> settings -> Effect Boolean
updateSettings sigma ref settings =
| (R.readRef ref) == settings = pure false
| otherwise
= Sigma.setSettings sigma settings
*> pure $ R.setRef ref settings
*> pure true
if (R.readRef ref) == settings then
pure false
else
case R.readRef sigma.sigma of
Nothing -> pure false
Just s -> do
_ <- Sigma.setSettings s settings
_ <- pure $ R.setRef ref settings
pure true
-- | Manages a renderer for the sigma
useCanvasRenderer :: R.Ref (Nullable Element) -> Sigma -> R.Hooks Unit
...
...
@@ -112,14 +124,18 @@ useCanvasRenderer container sigma =
errorKillingMsg = "[useCanvasRenderer] Error killing renderer:"
killedMsg = "[useCanvasRenderer] Killed renderer"
createSigma :: forall settings err. settings -> Effect (Either err Sigma.Sigma)
createSigma settings = do
log2 "[useSigma] Initializing sigma with settings" settings
ret <- Sigma.sigma {settings}
ret <$ logStatus ret
where
logStatus (Left err) = log2 "[useSigma] Error during sigma creation:" err
logStatus (Right x) = log2 "[useSigma] Initialised sigma successfully:" x
--createSigma :: forall settings err. settings -> Effect (Either err Sigma.Sigma)
--createSigma settings = do
-- log2 "[useSigma] Initializing sigma with settings" settings
-- ret <- Sigma.sigma unit
-- case ret of
-- Left err -> pure unit
-- Right s -> Sigma.setSettings s settings
-- _ <- pure $ logStatus ret
-- pure ret
-- where
-- logStatus (Left err) = log2 "[useSigma] Error during sigma creation:" err
-- logStatus (Right x) = log2 "[useSigma] Initialised sigma successfully:" x
cleanupSigma :: Sigma -> String -> Effect Unit
cleanupSigma sigma context = traverse_ kill (readSigma sigma)
...
...
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