Commit 876a2a9
authored
Version Packages (#420)
# Releases
## react-live@5.0.0
### Major Changes
- [#418](#418)
[`be53ccd`](be53ccd)
- Support React 19 type definitions, add an `exports` map, drop
`engines`, and raise the
output target.
`LivePreview`'s overloads referenced the global `JSX` namespace, which
`@types/react@19`
removed. Because those types are emitted into the published
declarations, consumers on React
19 types failed to compile. They now use `React.JSX`, which resolves
under both
`@types/react@18` and `@types/react@19`.
The package also gains an `exports` map with separate types for the ESM
and CJS conditions.
Filenames are unchanged from 4.1.x (`dist/index.js`, `dist/index.mjs`,
`dist/index.d.ts`), so
`main`, `module`, and `types` resolve exactly as before. Subpaths other
than
`./package.json` are no longer importable; only the package root was
ever documented.
Output is now built for `es2022` rather than `es6`, so the bundle may
contain syntax such as
optional chaining that previous releases transpiled away.
The `engines` field is gone, along with the `node: ">= 0.12.0"` and
`npm: ">= 2.0.0"` it
declared. Both were years out of date, and neither constrained anything
real: this is browser
code, so the Node version that installs it has no bearing on whether it
runs. npm will no
longer print an engine warning against those bounds.
None of this changes the public API -- same exports, same props, same
`react >=18` peer
range -- but the `exports` map and the raised output target are enough
that a major release
is the honest way to ship them.
- [#421](#421)
[`004b007`](004b007)
- Type the `live` prop that `withLive` injects, instead of
`Record<string, unknown>`.
Wrapped components saw `unknown` for every key, so `live.element` could
not be
rendered and `live.error` could not be read without casting first. The
prop now
uses the same type the context is created with, which is the shape
[the
docs](https://github.com/FormidableLabs/react-live/blob/main/docs/api.md)
have always described: `code`, `error`, `element`, `onError`,
`onChange`.
```tsx
const Panel = withLive(({ live }) => {
const Result = live.element; // was `unknown`, now a component
return Result ? <Result /> : <pre>{live.error}</pre>;
});
```
Types only, with no runtime change. It is a narrowing, so a wrapped
component
that reads a key outside that shape off `live` will now fail to compile.
### Patch Changes
- [#418](#418)
[`be53ccd`](be53ccd)
- Forward the `Editor` `prism` prop to `prism-react-renderer`. It was
typed but never passed through, so a custom Prism instance was silently
ignored.
- [#418](#418)
[`be53ccd`](be53ccd)
- Stop emitting React's `__self` and `__source` debug props from
transpiled code.
Sucrase adds these props to every element it compiles. They describe a
source file, and there
is no source file here -- the code comes from a live editor rather than
from disk, so the
filename sucrase emitted was always the empty string. React ignores both
props, and React 19
additionally treats `__self` as the signature of an outdated JSX
transform, logging
"Your app (or one of its dependencies) is using an outdated JSX
transform" to the console of
every page rendering a `LiveProvider`.
Transpiling with sucrase's `production` option drops both props, and
with them the
`_jsxFileName` constant that the transform pipeline used to splice out
and re-add solely to
keep `__source` resolvable.
- [#418](#418)
[`be53ccd`](be53ccd)
- Add `getDerivedStateFromError` to the internal error boundary, so a
runtime error in live code no longer logs a React warning about it.
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>1 parent 004b007 commit 876a2a9
8 files changed
Lines changed: 68 additions & 77 deletions
File tree
- .changeset
- packages/react-live
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
3 | 69 | | |
4 | 70 | | |
5 | 71 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
0 commit comments