diff --git a/src/Component/Editor.purs b/src/Component/Editor.purs index fcd5a15..46254a4 100644 --- a/src/Component/Editor.purs +++ b/src/Component/Editor.purs @@ -15,7 +15,6 @@ import Data.Lens (over, preview, set, view) import Data.List.Lazy as List import Data.Map as Map import Data.Maybe (Maybe(..), fromMaybe, maybe) -import Data.Newtype (unwrap) import Data.Set as Set import Data.Symbol (SProxy(..)) import Data.Tuple (Tuple(..), uncurry) @@ -32,7 +31,7 @@ import Lunarbox.Component.Editor.Tree as TreeC import Lunarbox.Component.Icon (icon) import Lunarbox.Component.Utils (container) import Lunarbox.Config (Config) -import Lunarbox.Control.Monad.Effect (print, printString) +import Lunarbox.Control.Monad.Effect (printString) import Lunarbox.Data.Dataflow.Expression (printSource) import Lunarbox.Data.Dataflow.Native.Prelude (loadPrelude) import Lunarbox.Data.Dataflow.Type (numberOfInputs) @@ -44,7 +43,7 @@ import Lunarbox.Data.Editor.Node.NodeDescriptor (onlyEditable) import Lunarbox.Data.Editor.Node.NodeId (NodeId(..)) import Lunarbox.Data.Editor.Node.PinLocation (Pin(..)) import Lunarbox.Data.Editor.Project (_projectNodeGroup, emptyProject) -import Lunarbox.Data.Editor.State (State, Tab(..), _atColorMap, _atNode, _atNodeData, _currentFunction, _currentNodeGroup, _currentNodes, _currentTab, _expression, _function, _functions, _isSelected, _lastMousePosition, _nextId, _nodeData, _panelIsOpen, _partialFrom, _partialTo, _typeMap, _valueMap, compile, getSceneMousePosition, initializeFunction, removeConnection, setCurrentFunction, tabIcon, tryConnecting) +import Lunarbox.Data.Editor.State (State, Tab(..), _atColorMap, _atNode, _atNodeData, _currentFunction, _currentTab, _expression, _function, _functions, _isSelected, _lastMousePosition, _nextId, _nodeData, _panelIsOpen, _partialFrom, _partialTo, _typeMap, compile, getSceneMousePosition, initializeFunction, removeConnection, setCurrentFunction, tabIcon, tryConnecting) import Lunarbox.Data.Graph as G import Lunarbox.Data.Vector (Vec2) import Lunarbox.Page.Editor.EmptyEditor (emptyEditor) @@ -146,8 +145,6 @@ component = state'''' = over _functions (G.insertEdge name currentFunction) state''' void $ put $ compile $ setId state'''' ChangeTab newTab -> do - s <- gets $ view _valueMap - print s oldTab <- gets $ view _currentTab modify_ if (oldTab == newTab) then @@ -193,10 +190,6 @@ component = modify_ $ tryConnecting <<< setFrom e <- gets $ view _expression printString $ printSource e - a <- gets $ view _currentNodeGroup - b <- gets $ preview _currentNodes - print b - (print :: Maybe (Array _) -> _) $ G.edges <$> _.nodes <$> unwrap <$> a RemoveConnection from to -> do modify_ $ removeConnection from to diff --git a/src/Data/Editor/Project.purs b/src/Data/Editor/Project.purs index 8336efb..0164b1d 100644 --- a/src/Data/Editor/Project.purs +++ b/src/Data/Editor/Project.purs @@ -15,7 +15,6 @@ module Lunarbox.Data.Editor.Project import Prelude import Data.Lens (Lens', Traversal', _Just, set, view) import Data.Lens.At (at) -import Data.Lens.Index (ix) import Data.Lens.Record (prop) import Data.Maybe (Maybe(..)) import Data.Newtype (class Newtype) diff --git a/src/Data/Editor/State.purs b/src/Data/Editor/State.purs index a5a7deb..4828fd9 100644 --- a/src/Data/Editor/State.purs +++ b/src/Data/Editor/State.purs @@ -261,12 +261,11 @@ tryConnecting state = currentNodeGroup <- preview _currentNodeGroup state currentFunction <- view _currentFunction state let - state' = over (_nodes currentFunction) (G.insertEdge toId from) state + state' = over _currentNodes (G.insertEdge from toId) state state'' = set - ( _atNode currentFunction toId - <<< _Just + ( _atCurrentNode toId <<< _nodeInput toIndex ) (Just from) diff --git a/src/Data/Graph.purs b/src/Data/Graph.purs index 9d3b949..ea368a2 100644 --- a/src/Data/Graph.purs +++ b/src/Data/Graph.purs @@ -25,7 +25,7 @@ import Data.Lens.At (class At) import Data.Lens.Index (class Index) import Data.List (List) import Data.Map as Map -import Data.Maybe (Maybe, maybe) +import Data.Maybe (Maybe(..), maybe) import Data.Newtype (class Newtype, over, unwrap) import Data.Set (Set) import Data.Set as Set @@ -88,7 +88,7 @@ singleton :: forall k v. Ord k => k -> v -> Graph k v singleton k v = Graph $ Map.singleton k $ Tuple v Set.empty insert :: forall k v. Ord k => k -> v -> Graph k v -> Graph k v -insert k v (Graph m) = Graph $ Map.insert k (Tuple v Set.empty) m +insert key value (Graph m) = Graph $ Map.alter (Just <<< (maybe (Tuple value Set.empty) $ lmap $ const value)) key m lookup :: forall k v. Ord k => k -> Graph k v -> Maybe v lookup k = map fst <<< Map.lookup k <<< unwrap