Skip to content

Commit 3523e3d

Browse files
authored
Merge pull request #34 from carla-se/jsx-v4
Use JSX V4
2 parents 7b00703 + 430cea1 commit 3523e3d

File tree

7 files changed

+119
-132
lines changed

7 files changed

+119
-132
lines changed

bsconfig.json

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,13 @@
1111
"subdirs": true
1212
}
1313
],
14-
"bs-dependencies": [
15-
"@rescript/react",
16-
"rescript-webapi",
17-
"rescript-logger"
18-
],
19-
"bs-dev-dependencies": [
20-
"rescript-classnames"
21-
],
22-
"reason": {
23-
"react-jsx": 3
14+
"bs-dependencies": ["@rescript/react", "rescript-webapi", "rescript-logger"],
15+
"bs-dev-dependencies": ["rescript-classnames"],
16+
"jsx": {
17+
"version": 4
2418
},
25-
"refmt": 3,
26-
"bsc-flags": [
27-
"-open Belt"
28-
],
29-
"ppx-flags": [
30-
["rescript-logger/ppx", "--lib=rescript-dnd"]
31-
],
19+
"bsc-flags": ["-open Belt"],
20+
"ppx-flags": [["rescript-logger/ppx", "--lib=rescript-dnd"]],
3221
"package-specs": {
3322
"module": "es6",
3423
"in-source": true

examples/index.res

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
switch ReactDOM.querySelector("#app") {
2-
| Some(root) => ReactDOM.render(<App />, root)
2+
| Some(root) => ReactDOM.Client.createRoot(root)->ReactDOM.Client.Root.render(<App />)
33
| None => failwith("DOM node `#app` not found")
44
}

package.json

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,17 +45,20 @@
4545
"rescript-logger": "3.0.0"
4646
},
4747
"peerDependencies": {
48-
"@rescript/react": ">=0.10.3",
49-
"rescript-webapi": ">=0.6.0"
48+
"@rescript/react": ">=0.11.0",
49+
"rescript-webapi": ">=0.6.0",
50+
"rescript": ">=10.1.0",
51+
"react": ">=18.0.0",
52+
"react-dom": ">=18.0.0"
5053
},
5154
"devDependencies": {
52-
"@rescript/react": ">=0.10.3",
55+
"@rescript/react": "0.11.0",
5356
"autoprefixer": "9.8.6",
5457
"bsb-js": "1.1.7",
5558
"parcel-bundler": "1.12.4",
56-
"react": "17.0.2",
57-
"react-dom": "17.0.2",
58-
"rescript": "10.0.1",
59+
"react": "18.2.0",
60+
"react-dom": "18.2.0",
61+
"rescript": "10.1.4",
5962
"rescript-classnames": "6.0.0",
6063
"rescript-webapi": "0.6.1"
6164
}

src/Dnd__DndContext.res

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
open Dnd__Config
22
open Dnd__Types
33

4-
module ReactContext = Dnd__ReactContext
5-
64
exception MissingContext
75

86
let fail = _ => MissingContext->raise
@@ -37,13 +35,8 @@ module type T = {
3735
let useDnd: unit => t
3836

3937
module Provider: {
40-
let make: React.component<{"value": t, "children": React.element}>
41-
let makeProps: (
42-
~value: t,
43-
~children: React.element,
44-
~key: string=?,
45-
unit,
46-
) => {"value": t, "children": React.element}
38+
type props = React.Context.props<t>
39+
let make: props => React.element
4740
}
4841
}
4942

@@ -69,8 +62,8 @@ module Make = (Item: DndEntry, Container: DndEntry) => {
6962
})
7063

7164
module Provider = {
65+
type props = React.Context.props<t>
7266
let make = x->React.Context.provider
73-
let makeProps = ReactContext.makeProps
7467
}
7568

7669
let useDnd = () => React.useContext(x)

src/Dnd__DndManager.res

Lines changed: 79 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -806,7 +806,7 @@ module Make = (Context: Context.T) => {
806806
let ghost = {
807807
open Ghost
808808
{
809-
itemId: itemId,
809+
itemId,
810810
originalContainer: containerId,
811811
targetContainer: containerId->Some,
812812
targetingOriginalContainer: true,
@@ -818,9 +818,9 @@ module Make = (Context: Context.T) => {
818818
margins: style->Geometry.getMargins,
819819
borders: style->Geometry.getBorders,
820820
departurePoint: currentPoint,
821-
currentPoint: currentPoint,
821+
currentPoint,
822822
departureRect: currentRect,
823-
currentRect: currentRect,
823+
currentRect,
824824
delta: {
825825
x: 0.,
826826
y: 0.,
@@ -901,7 +901,7 @@ module Make = (Context: Context.T) => {
901901
containers.current =
902902
containers.current->Map.map(container => {
903903
let (geometry, scrollable) = container.getGeometryAndScrollable()
904-
{...container, geometry: geometry->Some, scrollable: scrollable}
904+
{...container, geometry: geometry->Some, scrollable}
905905
})
906906

907907
viewport.current = Geometry.getViewport()->Some
@@ -943,15 +943,17 @@ module Make = (Context: Context.T) => {
943943
| _ as ids =>
944944
items.current =
945945
ids->List.reduceU(items.current, (. map, id) =>
946-
map->Map.updateU(id, (. item) =>
947-
switch item {
948-
| Some(item) =>
949-
Some({
950-
open ItemBag
951-
{...item, animating: false}
952-
})
953-
| None => None
954-
}
946+
map->Map.updateU(
947+
id,
948+
(. item) =>
949+
switch item {
950+
| Some(item) =>
951+
Some({
952+
open ItemBag
953+
{...item, animating: false}
954+
})
955+
| None => None
956+
},
955957
)
956958
)
957959
}
@@ -1111,8 +1113,8 @@ module Make = (Context: Context.T) => {
11111113

11121114
let nextGhost = {
11131115
...ghost,
1114-
targetContainer: targetContainer,
1115-
targetingOriginalContainer: targetingOriginalContainer,
1116+
targetContainer,
1117+
targetingOriginalContainer,
11161118
direction: switch nextDirection {
11171119
| Some(direction) => Some(direction)
11181120
| None => ghost.direction
@@ -1223,30 +1225,35 @@ module Make = (Context: Context.T) => {
12231225
}
12241226

12251227
containers.current =
1226-
containers.current->Map.map(container =>
1227-
switch container.scrollable {
1228-
| Some(scrollable) => {
1229-
...container,
1230-
geometry: container.geometry->Option.map(geometry => {
1231-
...geometry,
1232-
rect: geometry.rect->Geometry.shiftViewportRect(delta),
1233-
}),
1234-
scrollable: Some({
1235-
...scrollable,
1236-
geometry: {
1237-
...scrollable.geometry,
1238-
rect: scrollable.geometry.rect->Geometry.shiftViewportRect(delta),
1239-
},
1240-
}),
1241-
}
1242-
| None => {
1243-
...container,
1244-
geometry: container.geometry->Option.map(geometry => {
1245-
...geometry,
1246-
rect: geometry.rect->Geometry.shiftViewportRect(delta),
1247-
}),
1248-
}
1249-
}
1228+
containers.current->Map.map(
1229+
container =>
1230+
switch container.scrollable {
1231+
| Some(scrollable) => {
1232+
...container,
1233+
geometry: container.geometry->Option.map(
1234+
geometry => {
1235+
...geometry,
1236+
rect: geometry.rect->Geometry.shiftViewportRect(delta),
1237+
},
1238+
),
1239+
scrollable: Some({
1240+
...scrollable,
1241+
geometry: {
1242+
...scrollable.geometry,
1243+
rect: scrollable.geometry.rect->Geometry.shiftViewportRect(delta),
1244+
},
1245+
}),
1246+
}
1247+
| None => {
1248+
...container,
1249+
geometry: container.geometry->Option.map(
1250+
geometry => {
1251+
...geometry,
1252+
rect: geometry.rect->Geometry.shiftViewportRect(delta),
1253+
},
1254+
),
1255+
}
1256+
},
12501257
)
12511258

12521259
scroll.current = nextScroll->Some
@@ -1289,30 +1296,35 @@ module Make = (Context: Context.T) => {
12891296
}
12901297

12911298
containers.current =
1292-
containers.current->Map.map(container =>
1293-
switch container.scrollable {
1294-
| Some(scrollable') if scrollable'.element === scrollable.element => {
1295-
...container,
1296-
geometry: container.geometry->Option.map(geometry => {
1297-
...geometry,
1298-
rect: geometry.rect->Geometry.shiftRects(delta),
1299-
}),
1300-
scrollable: Some({...scrollable, scroll: nextScroll}),
1301-
}
1302-
| Some(scrollable')
1303-
if Geometry.contains(
1304-
~parent=scrollable.geometry.rect.page,
1305-
~child=scrollable'.geometry.rect.page,
1306-
) => {
1307-
...container,
1308-
geometry: container.geometry->Option.map(geometry => {
1309-
...geometry,
1310-
rect: geometry.rect->Geometry.shiftRects(delta),
1311-
}),
1312-
}
1313-
| Some(_)
1314-
| None => container
1315-
}
1299+
containers.current->Map.map(
1300+
container =>
1301+
switch container.scrollable {
1302+
| Some(scrollable') if scrollable'.element === scrollable.element => {
1303+
...container,
1304+
geometry: container.geometry->Option.map(
1305+
geometry => {
1306+
...geometry,
1307+
rect: geometry.rect->Geometry.shiftRects(delta),
1308+
},
1309+
),
1310+
scrollable: Some({...scrollable, scroll: nextScroll}),
1311+
}
1312+
| Some(scrollable')
1313+
if Geometry.contains(
1314+
~parent=scrollable.geometry.rect.page,
1315+
~child=scrollable'.geometry.rect.page,
1316+
) => {
1317+
...container,
1318+
geometry: container.geometry->Option.map(
1319+
geometry => {
1320+
...geometry,
1321+
rect: geometry.rect->Geometry.shiftRects(delta),
1322+
},
1323+
),
1324+
}
1325+
| Some(_)
1326+
| None => container
1327+
},
13161328
)
13171329

13181330
invalidateLayout.current(ghost)
@@ -1593,10 +1605,10 @@ module Make = (Context: Context.T) => {
15931605
| Collecting(_, containerId, _, _, _) => containerId->Some
15941606
| StandBy => None
15951607
},
1596-
registerItem: registerItem,
1597-
registerContainer: registerContainer,
1598-
disposeItem: disposeItem,
1599-
disposeContainer: disposeContainer,
1608+
registerItem,
1609+
registerContainer,
1610+
disposeItem,
1611+
disposeContainer,
16001612
getItemShift: itemId => (items.current->Map.getExn(itemId)).shift,
16011613
startDragging: collectEntries,
16021614
}>

src/Dnd__ReactContext.res

Lines changed: 0 additions & 7 deletions
This file was deleted.

yarn.lock

Lines changed: 21 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -936,10 +936,10 @@
936936
"@parcel/utils" "^1.11.0"
937937
physical-cpu-count "^2.0.0"
938938

939-
"@rescript/react@>=0.10.3":
940-
version "0.10.3"
941-
resolved "https://registry.yarnpkg.com/@rescript/react/-/react-0.10.3.tgz#a2a8bed6b017940ec26c2154764b350f50348889"
942-
integrity sha512-Lf9rzrR3bQPKJjOK3PBRa/B3xrJ7CqQ1HYr9VHPVxJidarIJJFZBhj0Dg1uZURX+Wg/xiP0PHFxXmdj2bK8Vxw==
939+
"@rescript/react@0.11.0":
940+
version "0.11.0"
941+
resolved "https://registry.yarnpkg.com/@rescript/react/-/react-0.11.0.tgz#d2545546d823bdb8e6b59daa1790098d1666f79e"
942+
integrity sha512-RzoAO+3cJwXE2D7yodMo4tBO2EkeDYCN/I/Sj/yRweI3S1CY1ZBOF/GMcVtjeIurJJt7KMveqQXTaRrqoGZBBg==
943943

944944
"@types/q@^1.5.1":
945945
version "1.5.4"
@@ -4228,22 +4228,20 @@ range-parser@~1.2.1:
42284228
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
42294229
integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
42304230

4231-
react-dom@17.0.2:
4232-
version "17.0.2"
4233-
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23"
4234-
integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==
4231+
react-dom@18.2.0:
4232+
version "18.2.0"
4233+
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d"
4234+
integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==
42354235
dependencies:
42364236
loose-envify "^1.1.0"
4237-
object-assign "^4.1.1"
4238-
scheduler "^0.20.2"
4237+
scheduler "^0.23.0"
42394238

4240-
react@17.0.2:
4241-
version "17.0.2"
4242-
resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037"
4243-
integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==
4239+
react@18.2.0:
4240+
version "18.2.0"
4241+
resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5"
4242+
integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
42444243
dependencies:
42454244
loose-envify "^1.1.0"
4246-
object-assign "^4.1.1"
42474245

42484246
readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.3, readable-stream@~2.3.6:
42494247
version "2.3.7"
@@ -4409,10 +4407,10 @@ [email protected]:
44094407
resolved "https://registry.yarnpkg.com/rescript-webapi/-/rescript-webapi-0.6.1.tgz#b7e578c743b08e09f259938a6e9300c238020591"
44104408
integrity sha512-I/eeHOcsUfWbCf6u15zd+rKxMz9awSjjdRa8eFtl2X+HjDNs0mJxoC4uFFK9dIazYcmY2VpuK5TTpOPXvdkhDw==
44114409

4412-
rescript@10.0.1:
4413-
version "10.0.1"
4414-
resolved "https://registry.yarnpkg.com/rescript/-/rescript-10.0.1.tgz#5b2da8a8bcfb994bed1eb24820bf10cfb9d8c440"
4415-
integrity sha512-XwO1GPDtoEU4H03xQE5bp0/qtSVR6YLaJRPxWKrfFgKc+LI36ODOCie7o9UJfgzQdoMYkkZyiTGZ4N9OQEaiUw==
4410+
rescript@10.1.4:
4411+
version "10.1.4"
4412+
resolved "https://registry.yarnpkg.com/rescript/-/rescript-10.1.4.tgz#0f37710d371f32a704f17b4e804f66ce3c79a305"
4413+
integrity sha512-FFKlS9AG/XrLepWsyw7B+A9DtQBPWEPDPDKghV831Y2KGbie+eeFBOS0xtRHp0xbt7S0N2Dm6hhX+kTZQ/3Ybg==
44164414

44174415
resolve-from@^3.0.0:
44184416
version "3.0.0"
@@ -4503,13 +4501,12 @@ saxes@^3.1.9:
45034501
dependencies:
45044502
xmlchars "^2.1.1"
45054503

4506-
scheduler@^0.20.2:
4507-
version "0.20.2"
4508-
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"
4509-
integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==
4504+
scheduler@^0.23.0:
4505+
version "0.23.0"
4506+
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe"
4507+
integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==
45104508
dependencies:
45114509
loose-envify "^1.1.0"
4512-
object-assign "^4.1.1"
45134510

45144511
45154512
version "7.0.0"

0 commit comments

Comments
 (0)