Skip to content

Commit 7cf9355

Browse files
authored
react-basic 2 (#2)
1 parent 85fef70 commit 7cf9355

File tree

4 files changed

+45
-31
lines changed

4 files changed

+45
-31
lines changed

bower.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
"url": "https://github.com/lumihq/purescript-react-dnd-basic.git"
88
},
99
"dependencies": {
10-
"purescript-prelude": "^4.0.0",
11-
"purescript-react-basic": "^1.0.0",
10+
"purescript-prelude": "^4.1.0",
11+
"purescript-react-basic": "^2.0.0",
1212
"purescript-nullable": "^4.0.0",
1313
"purescript-promises": "^3.0.0"
1414
},

examples/basic/src/Basic.purs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,21 @@ import Prelude
55
import Data.Array ((!!), drop, mapWithIndex, take)
66
import Data.Foldable (for_)
77
import Data.Maybe (Maybe(Nothing), fromMaybe, maybe)
8-
import React.Basic (ReactComponent, createElement, fragment, react)
8+
import React.Basic as React
99
import React.Basic.DOM as R
1010
import React.Basic.DOM.Events (targetChecked)
1111
import React.Basic.Events as Events
1212
import React.Basic.ReactDND (DragDrop, DragDropContextProps, DragDropItemType(..), createDragDrop, createDragDropContext)
1313
import React.Basic.ReactDND.Backends.HTML5Backend (html5Backend)
1414

15-
dndContext :: ReactComponent DragDropContextProps
15+
dndContext :: React.Component DragDropContextProps
1616
dndContext = createDragDropContext html5Backend
1717

1818
dnd :: DragDrop { itemId :: String, index :: Int }
1919
dnd = createDragDrop (DragDropItemType "TODO_ITEM")
2020

21-
component :: ReactComponent {}
22-
component = react { displayName: "BasicExample", initialState, receiveProps, render }
21+
component :: React.Component {}
22+
component = React.component { displayName: "BasicExample", initialState, receiveProps, render }
2323
where
2424
initialState =
2525
{ todos:
@@ -29,22 +29,22 @@ component = react { displayName: "BasicExample", initialState, receiveProps, ren
2929
]
3030
}
3131

32-
receiveProps _ _ _ =
32+
receiveProps _ =
3333
pure unit
3434

35-
render _ state setState =
36-
createElement dndContext
35+
render { state, setState } =
36+
React.element dndContext
3737
{ child:
38-
fragment
38+
React.fragment
3939
[ R.h1_ [ R.text "Todos" ]
4040
, R.p_ [ R.text "Drag to reorder the list:" ]
4141
, R.section_ (mapWithIndex renderTodo state.todos)
4242
]
4343
}
4444

4545
where
46-
renderTodo index todo =
47-
createElement dnd.dragSource
46+
renderTodo index todo =
47+
React.element dnd.dragSource
4848
{ beginDrag: \_ -> pure
4949
{ itemId: todo.id
5050
, index
@@ -54,7 +54,7 @@ component = react { displayName: "BasicExample", initialState, receiveProps, ren
5454
, isDragging: \{ item: draggingItem } ->
5555
pure $ maybe false (\i -> i.itemId == todo.id) draggingItem
5656
, render: \{ connectDragSource, isDragging } ->
57-
createElement dnd.dropTarget
57+
React.element dnd.dropTarget
5858
{ drop: \{ item: dragItem } -> do
5959
for_ (_.index <$> dragItem) \dragItemIndex ->
6060
setState \s -> s

package-lock.json

Lines changed: 21 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/React/Basic/ReactDND.purs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import Data.Maybe (Maybe)
2222
import Data.Nullable (Nullable, toMaybe, toNullable)
2323
import Effect (Effect)
2424
import Effect.Uncurried (mkEffectFn1)
25-
import React.Basic (JSX, ReactComponent, createElement, stateless)
25+
import React.Basic (Component, JSX, element, stateless)
2626

2727
data Backend
2828

@@ -89,9 +89,9 @@ type DragLayerProps item =
8989
}
9090

9191
type DragDrop item =
92-
{ dragSource :: ReactComponent (DragSourceProps item)
93-
, dropTarget :: ReactComponent (DropTargetProps item)
94-
, dragLayer :: ReactComponent (DragLayerProps item)
92+
{ dragSource :: Component (DragSourceProps item)
93+
, dropTarget :: Component (DropTargetProps item)
94+
, dragLayer :: Component (DragLayerProps item)
9595
}
9696

9797
createDragDrop
@@ -108,7 +108,7 @@ createDragDrop itemType =
108108
let jsDragSource = runFn2 unsafeCreateDragSource toMaybe itemType
109109
in stateless
110110
{ displayName: "DragSource"
111-
, render: \props -> createElement jsDragSource
111+
, render: \props -> element jsDragSource
112112
{ beginDrag: mkEffectFn1 props.beginDrag
113113
, endDrag: mkEffectFn1 props.endDrag
114114
, canDrag: mkEffectFn1 props.canDrag
@@ -121,7 +121,7 @@ createDragDrop itemType =
121121
let jsDropTarget = runFn2 unsafeCreateDropTarget toMaybe itemType
122122
in stateless
123123
{ displayName: "DropTarget"
124-
, render: \props -> createElement jsDropTarget
124+
, render: \props -> element jsDropTarget
125125
{ drop: mkEffectFn1 (map toNullable <<< props.drop)
126126
, hover: mkEffectFn1 props.hover
127127
, canDrop: mkEffectFn1 props.canDrop
@@ -133,26 +133,26 @@ createDragDrop itemType =
133133
let jsDragLayer = unsafeCreateDragLayer toMaybe
134134
in stateless
135135
{ displayName: "DragLayer"
136-
, render: createElement jsDragLayer
136+
, render: element jsDragLayer
137137
}
138138

139-
foreign import createDragDropContext :: Backend -> ReactComponent DragDropContextProps
139+
foreign import createDragDropContext :: Backend -> Component DragDropContextProps
140140

141141
foreign import unsafeCreateDragSource
142142
:: forall a
143143
. Fn2
144144
(Nullable ~> Maybe)
145145
DragDropItemType
146-
(ReactComponent { | a })
146+
(Component { | a })
147147

148148
foreign import unsafeCreateDropTarget
149149
:: forall a
150150
. Fn2
151151
(Nullable ~> Maybe)
152152
DragDropItemType
153-
(ReactComponent { | a })
153+
(Component { | a })
154154

155155
foreign import unsafeCreateDragLayer
156156
:: forall a
157157
. (Nullable ~> Maybe)
158-
-> ReactComponent { | a }
158+
-> Component { | a }

0 commit comments

Comments
 (0)