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
Show 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,21 +60,23 @@ graphCpt = R.hooksComponent "Graph" cpt
Right (container /\ sigma) -> do
Sigma.setSettings sigma props.sigmaSettings
good <- addRenderer container sigma
if good
if good
then
setLast last props
else
pure unit
R.setRef sigmaRef sigma
R.useEffect3 props.graph props.forceAtlas2Settings props.sigmaSettings
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
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
...
...
@@ -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
pure sigmaRef
updateSettings :: forall settings.
Sigma -> R.Ref settings -> settings -> Effect Bool
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