@@ -91,6 +91,8 @@ regularScale = "scale3d(1.0, 1.0, 1.0)"
9191
9292scaledUp = "scale3d(1.1, 1.1, 1.1)"
9393
94+scaledCompletely = "scale3d(2.0, 2.0, 2.0)"
95+
9496defaultSprings =
9597 { x: 0.0
9698 , y: 0.0
@@ -100,7 +102,7 @@ defaultSprings =
100102 , transform: "scale3d(1.0,1.0,1.0)"
101103 }
102104
103−springsteen init rectsRef positionsRef arg mx my down springs = do
105+springsteen init windowSize rectsRef positionsRef arg mx my down tap springs = do
104106 init
105107 rects <- readRef rectsRef
106108 positionsBefore <- readRef positionsRef
@@ -122,24 +124,25 @@ springsteen init rectsRef positionsRef arg mx my down springs = do
122124 currentRect = rects !!! (positions !!! i)
123125 leftOffset = currentRect.left - originalRect.left
124126 topOffset = currentRect.top - originalRect.top
125− case i == arg, down, overlapsOther of
126− true, true, _ ->
127− defaultSprings
128− { x = mx + leftOffset
129− , y = my + topOffset
130− , zIndex = 1
131− , transform = scaledUp
132− , shadow = 20
133− , immediate = \n -> n == "x" || n == "y" || n == "zIndex"
134− }
135− false, true, Just { index, value }
127+ case down, overlapsOther of
128+ true, _
129+ | i == arg ->
130+ defaultSprings
131+ { x = mx + leftOffset
132+ , y = my + topOffset
133+ , zIndex = 1
134+ , transform = scaledUp
135+ , shadow = 20
136+ , immediate = \n -> n == "x" || n == "y" || n == "zIndex"
137+ }
138+ true, Just { index, value }
136139 | index == i ->
137140 defaultSprings
138141 { x = rectDragged.left - currentRect.left + leftOffset
139142 , y = rectDragged.top - currentRect.top + topOffset
140143 , immediate = const false
141144 }
142− _, _, _ ->
145+ _, _ ->
143146 defaultSprings
144147 { x = leftOffset
145148 , y = topOffset
@@ -187,8 +190,8 @@ makeComponent = do
187190 mempty
188191 theme ∷ CSSTheme <- useTheme
189192 bindDragProps <-
190− useDrag (justifill { filterTaps: true }) \{ arg, down, movement: mx /\ my } ->
191− springsteen init rectsRef positionsRef arg mx my down springs
193+ useDrag (justifill { filterTaps: true }) \{ arg, down, movement: mx /\ my, tap } ->
194+ springsteen init windowSize rectsRef positionsRef arg mx my down tap springs
192195 let
193196 renderSpells =
194197 mapWithIndex \i (spell /\ style) ->
@@ -205,7 +208,8 @@ makeComponent = do
205208 `withDragProps`
206209 bindDragProps i
207210 pure
208− $ jsx grid {} (renderSpells (spells `zip` springs.styles))
211+ $ jsx grid {}
212+ $ renderSpells (spells `zip` springs.styles)
209213
210214foreign import unsafeArraySetAt ∷ ∀ a. Int -> a -> Array a -> Array a
211215