From b03703a6d99c3c767f13dc31c07e117debdcb333 Mon Sep 17 00:00:00 2001 From: Javier Chavarri Date: Mon, 23 Oct 2023 16:16:02 +0000 Subject: [PATCH 1/6] update to reason-react 0.14 --- dune-project | 9 ++++++--- package.json | 4 ++-- reshowcase.opam | 8 ++++++-- reshowcase.opam.template | 4 ++++ src/Entry.re | 4 +++- src/ReshowcaseUi.re | 28 ++++++++++++++-------------- yarn.lock | 34 +++++++++++++--------------------- 7 files changed, 48 insertions(+), 43 deletions(-) diff --git a/dune-project b/dune-project index bf3b6e8..4fb7fc4 100644 --- a/dune-project +++ b/dune-project @@ -22,15 +22,18 @@ (maintainers "Denis Strelkov ") (authors "bloodyowl ") (license "MIT") - (tags ("melange" "org:ahrefs")) + (tags + ("melange" "org:ahrefs")) (depends ocaml (melange (>= 2.0.0)) (reason (>= 3.10.0)) - reason-react - reason-react-ppx + (reason-react + (>= 0.14.0)) + (reason-react-ppx + (>= 0.14.0)) (ocaml-lsp-server :with-test) (opam-check-npm-deps :with-test) ; todo: use with-dev-setup once opam 2.2 is out )) diff --git a/package.json b/package.json index e823a88..99b548f 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ }, "devDependencies": { "concurrently": "^6.0.0", - "react": "^17.0.2", - "react-dom": "^17.0.2" + "react": "^18.0.0", + "react-dom": "^18.0.0" } } diff --git a/reshowcase.opam b/reshowcase.opam index 7c707dd..ca9eb49 100644 --- a/reshowcase.opam +++ b/reshowcase.opam @@ -14,8 +14,8 @@ depends: [ "ocaml" "melange" {>= "2.0.0"} "reason" {>= "3.10.0"} - "reason-react" - "reason-react-ppx" + "reason-react" {>= "0.14.0"} + "reason-react-ppx" {>= "0.14.0"} "ocaml-lsp-server" {with-test} "opam-check-npm-deps" {with-test} "odoc" {with-doc} @@ -41,3 +41,7 @@ depexts: [ ["webpack"] {npm-version = "^5.76.1"} ["webpack-dev-server"] {npm-version = "^4.11.1"} ] +pin-depends: [ + [ "reason-react.dev" "git+https://github.com/reasonml/reason-react.git#7ca984c9a406b01e906fda1898f705f135fad202" ] + [ "reason-react-ppx.dev" "git+https://github.com/reasonml/reason-react.git#7ca984c9a406b01e906fda1898f705f135fad202" ] +] diff --git a/reshowcase.opam.template b/reshowcase.opam.template index 79106f0..fb2119a 100644 --- a/reshowcase.opam.template +++ b/reshowcase.opam.template @@ -4,3 +4,7 @@ depexts: [ ["webpack"] {npm-version = "^5.76.1"} ["webpack-dev-server"] {npm-version = "^4.11.1"} ] +pin-depends: [ + [ "reason-react.dev" "git+https://github.com/reasonml/reason-react.git#7ca984c9a406b01e906fda1898f705f135fad202" ] + [ "reason-react-ppx.dev" "git+https://github.com/reasonml/reason-react.git#7ca984c9a406b01e906fda1898f705f135fad202" ] +] diff --git a/src/Entry.re b/src/Entry.re index e96642a..efcb1b2 100644 --- a/src/Entry.re +++ b/src/Entry.re @@ -40,6 +40,8 @@ let demo = (f): unit => { let start = () => switch (ReactDOM.querySelector("#root")) { - | Some(root) => ReactDOM.render(, root) + | Some(root) => + let root = ReactDOM.Client.createRoot(root); + ReactDOM.Client.render(root, ); | None => () }; diff --git a/src/ReshowcaseUi.re b/src/ReshowcaseUi.re index 2e5de0e..229f726 100644 --- a/src/ReshowcaseUi.re +++ b/src/ReshowcaseUi.re @@ -105,7 +105,7 @@ module TopPanel = { } } onClick={event => { - event->ReactEvent.Mouse.preventDefault; + event->React.Event.Mouse.preventDefault; onSetResponsiveMode(_ => Desktop); }}> Icon.desktop @@ -120,7 +120,7 @@ module TopPanel = { } } onClick={event => { - event->ReactEvent.Mouse.preventDefault; + event->React.Event.Mouse.preventDefault; onSetResponsiveMode(_ => Mobile); }}> Icon.mobile @@ -139,7 +139,7 @@ module TopPanel = { } style=Styles.squareButton onClick={event => { - event->ReactEvent.Mouse.preventDefault; + event->React.Event.Mouse.preventDefault; onRightSidebarToggle(); }}>
switch ( - ReactEvent.Mouse.metaKey(event), - ReactEvent.Mouse.ctrlKey(event), + React.Event.Mouse.metaKey(event), + React.Event.Mouse.ctrlKey(event), ) { | (false, false) => - ReactEvent.Mouse.preventDefault(event); + React.Event.Mouse.preventDefault(event); ReasonReactRouter.push(href); | _ => () } @@ -432,7 +432,7 @@ module DemoListSidebar = { )} title="Toggle default collapsed categories" onClick={event => { - event->ReactEvent.Mouse.preventDefault; + event->React.Event.Mouse.preventDefault; onToggleCollapsedCategoriesByDefault(); }}> {if (isCategoriesCollapsedByDefault) {Icon.categoryCollapsed} else { @@ -442,7 +442,7 @@ module DemoListSidebar = { (Option.getWithDefault(""))} onChange={event => { - let value = event->ReactEvent.Form.target##value; + let value = event->React.Event.Form.target##value; setFilterValue(_ => if (value->Js.String2.trim == "") { @@ -574,7 +574,7 @@ module DemoUnitSidebar = { onChange={event => onStringChange( propName, - event->ReactEvent.Form.target##value, + event->React.Event.Form.target##value, ) } /> @@ -582,7 +582,7 @@ module DemoUnitSidebar = { Map.String.toArray ->( - Array.map(((propName, ({min, max, _}, value))) => + Array.map(~f=((propName, ({Configs.min, max, _}, value))) => Map.String.toArray ->( - Array.map(((propName, (_config, checked))) => + Array.map(~f=((propName, (_config, checked))) => Date: Thu, 18 Jan 2024 17:46:21 +0000 Subject: [PATCH 4/6] melange v3: fixes for latest changes --- example/Demo.re | 2 +- reshowcase.opam | 6 +++--- reshowcase.opam.template | 6 +++--- src/ReshowcaseUi.re | 25 ++++++++++++------------- 4 files changed, 19 insertions(+), 20 deletions(-) diff --git a/example/Demo.re b/example/Demo.re index ce02f4a..03c9dfd 100644 --- a/example/Demo.re +++ b/example/Demo.re @@ -69,7 +69,7 @@ demo(({addDemo: _, addCategory}) => style={ReactDOM.Style.make( ~fontSize= {let size = - int("Font size", {min: 0, max: 100, initial: 30, step: 1}); + int("Font size", {min: 0, max: 100, initial: 30, step: 1})->string_of_int; {j|$(size)px|j}}, (), )}> diff --git a/reshowcase.opam b/reshowcase.opam index 0368f6c..7feb54f 100644 --- a/reshowcase.opam +++ b/reshowcase.opam @@ -42,7 +42,7 @@ depexts: [ ["webpack-dev-server"] {npm-version = "^4.11.1"} ] pin-depends: [ - ["melange.dev" "git+https://github.com/melange-re/melange#982cba971fa662439f0675465ef854424771ca3d"] - ["reason-react.dev" "https://github.com/reasonml/reason-react/archive/f799ac03d79d39de04fe937075607c348f8053b4.tar.gz"] - ["reason-react-ppx.dev" "https://github.com/reasonml/reason-react/archive/f799ac03d79d39de04fe937075607c348f8053b4.tar.gz"] + ["melange.dev" "git+https://github.com/melange-re/melange#d2715c469e8cf8bf8cff81b897c212094a9517c5"] + ["reason-react.dev" "https://github.com/reasonml/reason-react/archive/1f084f4ecf380b2144809065e5935a41866eab3f.tar.gz"] + ["reason-react-ppx.dev" "https://github.com/reasonml/reason-react/archive/1f084f4ecf380b2144809065e5935a41866eab3f.tar.gz"] ] diff --git a/reshowcase.opam.template b/reshowcase.opam.template index 2b83d64..8514fc6 100644 --- a/reshowcase.opam.template +++ b/reshowcase.opam.template @@ -5,7 +5,7 @@ depexts: [ ["webpack-dev-server"] {npm-version = "^4.11.1"} ] pin-depends: [ - ["melange.dev" "git+https://github.com/melange-re/melange#982cba971fa662439f0675465ef854424771ca3d"] - ["reason-react.dev" "https://github.com/reasonml/reason-react/archive/f799ac03d79d39de04fe937075607c348f8053b4.tar.gz"] - ["reason-react-ppx.dev" "https://github.com/reasonml/reason-react/archive/f799ac03d79d39de04fe937075607c348f8053b4.tar.gz"] + ["melange.dev" "git+https://github.com/melange-re/melange#d2715c469e8cf8bf8cff81b897c212094a9517c5"] + ["reason-react.dev" "https://github.com/reasonml/reason-react/archive/1f084f4ecf380b2144809065e5935a41866eab3f.tar.gz"] + ["reason-react-ppx.dev" "https://github.com/reasonml/reason-react/archive/1f084f4ecf380b2144809065e5935a41866eab3f.tar.gz"] ] diff --git a/src/ReshowcaseUi.re b/src/ReshowcaseUi.re index 41eaaa0..b579164 100644 --- a/src/ReshowcaseUi.re +++ b/src/ReshowcaseUi.re @@ -12,7 +12,6 @@ module Collapsible = Layout.Collapsible; module URLSearchParams = Bindings.URLSearchParams; module Window = Bindings.Window; module LocalStorage = Bindings.LocalStorage; -module Array = Js.Array; type responsiveMode = | Mobile @@ -300,7 +299,7 @@ module DemoListSidebar = { let demos = demos->Js.Dict.entries; demos ->( - Array.map(~f=((entityName, entity)) => { + Array.map(((entityName, entity)) => { let searchMatchingTerms = HighlightTerms.getMatchingTerms(~searchString, ~entityName); @@ -564,7 +563,7 @@ module DemoUnitSidebar = { {strings ->Map.String.toArray ->( - Array.map(~f=((propName, (_config, value, options))) => + Array.map(((propName, (_config, value, options))) => {switch (options) { | None => @@ -589,7 +588,7 @@ module DemoUnitSidebar = { }}> {options ->( - Array.map(~f=((key, optionValue)) => + Array.map(((key, optionValue)) =>