CHANGES:
- Support Promise caching in react.client.components by @davesnx
- Reorder head content exactly like react-dom/server by @davesnx
- Implement hydration-compatible
useIdusing React's tree-position-based algorithm, matching React 19 output. Adds?identifier_prefixtorenderToString,renderToStaticMarkup,renderToStreamandrender_html. Fixes #93 - Fix
renderToStringrendering Suspense children twice (once as trial, once with markers) due to side-effectful match expression. Children are now rendered into a separate buffer - Change shape for React.Event.* since Js.t is now supported. All methods fail at runtime with
Runtime.fail_impossible_action_in_ssr - [server-reason-react.ppx] Strip units at any position (supporting mlx difference with [@jsx] transformations)
- Add runtime error with clear message when
React.cloneElementis used with uppercase components by @davesnx - Allow
[@platform js]and[@browser_only]on externals to conditionally exclude them from native builds. Fixes #170 by @davesnx - Generate
makePropsin the PPX by @davesnx in #364 - Implement
Js.tnatively withJs.Internaland a type registry by @davesnx in #363 - Add
React.useActionStateby @davesnx - Add
keyinto client components by @davesnx - Fix several functions in Belt to match specification (
Belt.Array.setExn,Belt.Array.concat,Belt.MutableMap.remove,Belt.HashMap.keepMapInPlace, and avoid double callback evaluation) by @yasunariw in #362 - Implement
Belt.Array.getUndefinedand annotateBelt.Array.pushas not implemented by @davesnx - Remove deprecated folder from Belt and reorganise Belt tests by @davesnx
- Fix leaking
was_previouswhen node was closing by @davesnx in #361 - Fix
React.cloneElementonStatic {}components by @davesnx in #359 - Require ppxlib >= 0.36 by @davesnx