Releases: preactjs/preact
Releases · preactjs/preact
10.6.0
Types
- Adjust raf types (#3323, thanks @JoviDeCroock)
- Suggest fix for useRef-types in hooks (#3222, thanks @JoviDeCroock)
- Add component props to compat exports (#3321, thanks @JoviDeCroock)
Fixes
- Fix className leak (#3279, thanks @JoviDeCroock)
- Support hydrating html comments (#3327, thanks @JoviDeCroock)
Maintenance
- Fix tests in IE11 (#3264, thanks @developit)
- Add jsx(-dev)-runtime to the export maps (#3320, thanks @JoviDeCroock)
10.5.15
Fixes
- Skip rendering contents on the client in compat (#3238, thanks @developit)
- Nested Suspended trees may be missing _children (#3260, thanks @developit)
- Manage camel-cased dominant-baseline attribute in preact/compat (#2859, thanks @nmondon)
- Restrict camelCase prop renaming to non-custom elements (#3259, thanks @jramanat-oracle)
- Fix bug in chrome where select values continuously rerender (#3226, thanks @JoviDeCroock)
- Avoid leaking internal vnodes (#3106, thanks @developit)
Types
- Fix ref typing of forwardRef (#3214, thanks @itkrt2y)
- Add
focusin
&focusout
to type definitions (#3257, thanks @boarwell) - Add
onBeforeInput
attribute to type definitions (#3256, thanks @boarwell) - Add missed HTML attributes in the TS typings (#3246, thanks @rschristian)
Maintenance
10.5.14
Features
Bug Fixes
- Prevent eager child removal (#3210, thanks @JoviDeCroock)
- Compat: Update Fake React Version (#3189, thanks @tim-on-github)
- Fix
react-spring
error caused by augmented function contexts (#3165, thanks @developit) - Use
Array.prototype.slice.call
for children arguments (#3143, thanks @fzzle) - Improve performance of
vnodeId
generation (#2978, thanks @developit) - Fix: should override
children
ifnull
is provided as an argument (#3091, thanks @clyfish)
Size
- refactor(diff-index): reuse
i
to reduce size (-32b) (#3193, thanks @liuarui) - Simplify unmount logic (#3120, thanks @andrewiggins)
Typings
- Fix type definitions (#3191, thanks @craftedsystems)
- Fix
undefined
initializer case foruseState
type (#3185, thanks @rschristian) - Make typings
deno
compatible (#3079, thanks @lucacasonato) - Change typing of
event.this
to benever
(#3147, thanks @JoviDeCroock) - Update signature of
lazy
to reflect behavior (#3139, thanks @JonasKruckenberg) - Improve typing of
forwardRef
(#3144, thanks @cmlenz) - Fix the
useRef
typing to includeundefined
when called without initial value (#3056, thanks @cmlenz)
Maintenance
- Docs: Removing suggestion to install Preact CLI (#3204, thanks @rschristian)
- Upgrade
karma-esbuild
to support M1 chips (#3153, thanks @marvinhagemeister) - Rely directly on
performance.now
(#3130, thanks @developit) - Add The Guardian as a Github backer (#3086, thanks @mchv)
- Fix typo in issue template (#3067, thanks @rschristian)
10.5.13
Bug Fixes
- Fix unable to reset
tabIndex
(#3062 + #3064, thanks @marvinhagemeister) - Add ESM entry for
compat/server
(#3059 + #3061, thanks @marvinhagemeister) - Fix unable to render
bigint
numbers (#3010, thanks @marvinhagemeister) - Fix reordering issue of memoized component when the component initially render null (#2988, thanks @tanhauhau)
Types
- Add
decoding
attribute (#3054, thanks @sumanthratna) - Add missing
SVGFEFunc
types (#3043, thanks @rschristian)
Maintenance
- Update issue templates (#3058, thanks @marvinhagemeister)
- Update esbuild to natively support Apple's M1 chip (#3028, thanks @marvinhagemeister)
- Create separate trace log directories per benchmark (#3024, thanks @andrewiggins)
- Reduce redundant preparation in bench scripts (#3013, thanks @andrewiggins)
- Tests: Fix stale watch cache (#3012, thanks @marvinhagemeister)
- Tests: Reduce CPU usage in watch mode (#3011, thanks @marvinhagemeister)
- Tests: Fix Chrome 88 stack traces displayed wrong in terminal (#3008, thanks @marvinhagemeister)
- Upgrade tachometer and add script to analyze browser trace logs (#3005, thanks @andrewiggins)
- Use
options.unmount
instead of overridingcomponent.componentWillUnmount
(#2919, thanks @tanhauhau) - Update esbuild + karma-esbuild (#2991, thanks @marvinhagemeister)
- Add a few minor tests (#2981, thanks @43081j)
10.5.12
This release includes an enhancement to our devtools integration. Via a babel plugin you can get more readable hook names to show up in devtools instead of dozens of useState
hooks in devtools. Check out https://github.com/preactjs/babel-plugin-transform-hook-names for more information.
Before:
After:
Bug Fixes
- Compat: Fix
defaultValue
not applied when value==null/undefined
(#2957, thanks @marvinhagemeister) - Fix HTML comments breaking hydration (#2956, #2960 thanks @marvinhagemeister and @developit)
Maintenance
- Tests: Improve
console.logs
(#2959, thanks @marvinhagemeister) - Remove redundant benchmark initialization (#2966, thanks @andrewiggins)
- Fix pr-reporter condition (#2964, thanks @andrewiggins)
- Report benchmarks on PRs from forks (#2961, thanks @andrewiggins)
- Update size action to only run when src files change (#2962, thanks @andrewiggins)
- Use artifact flow to report benchmarks results (#2953, thanks @andrewiggins)
10.5.11
📈 Bug Fixes
- Fix unable to set
contentEditable
tofalse
(#2938, #2939 thanks @marvinhagemeister + @developit) - Fix
compat/jsx-dev-runtime
missing in package (#2931, thanks @marvinhagemeister)
⛳ Code golfing
- Golf element diffing [-17b] (#2942, thanks @developit)
- Pass all props to
createElement
instead of justis
[-5b] (#2943, thanks @developit) - Use try/catch for properties instead of an allow list, remove
xlink:
(#2939, thanks @developit) - Simplify diffChildren's handling of excessDomChildren and oldDom (#2941, thanks @andrewiggins)
🛠️ Maintenance
- Tests: Alias
react
topreact/compat
(#2946, thanks @marvinhagemeister) - Separate benchmarks into their own workflow (#2944, thanks @andrewiggins)
- Simplify top-level render and remove dead code (#2940, thanks @andrewiggins)
- Tests: Fix stack traces not sourcemapped (#2935, thanks @marvinhagemeister)
- Fail build on missing compat entries in files entry (#2934, thanks @marvinhagemeister)
- Add
workflow_dispatch
and restructure branch trigger (#2933, thanks @andrewiggins) - Tests: Fix vscode breakpoints not being hit (#2932, thanks @marvinhagemeister)
- Fix incorrect sourcemap line mapping in tests (#2929, thanks @marvinhagemeister)
10.5.10
Bug Fixes
- Fix
contentEditable
throwing when set to undefined/null (#2927, thanks @marvinhagemeister) - Compat: Add basic shims for some scheduler functions (#2912, thanks @marvinhagemeister)
- Add
jsx-dev-runtime
package entry (#2920, thanks @sventschui) - Avoid overriding render method in
Suspense
(#2917, thanks @andrewiggins) - Fix updating suspended component (#2910, thanks @tanhauhau)
Maintenance
- Fix
Portal
test not cleaning up container (#2925, thanks @marvinhagemeister) - Fix tests in IE11 (#2924, thanks @marvinhagemeister)
- Fix karma IE11 target containing ES2015 syntax (#2923, thanks @marvinhagemeister)
- Upgrade
sinon
dependencies to fix IE11 Promise error (#2922, thanks @marvinhagemeister) - Fix SauceLabs runner (#2918, thanks @andrewiggins)
- Fix
karma
benchmarks not compiling (#2914, thanks @marvinhagemeister) - Remove
babel-loader
(#2911, thanks @andrewiggins) - Remove unused comment (#2909, thanks @marvinhagemeister)
10.5.9
Happy New Year to everyone 🎉 Let's kick of the year with a few welcome bug fixes regarding preact/compat
👍
Bug Fixes
- Fix bug when re-rendering a suspended hydration node (#2903, thanks @andrewiggins)
- Fix devtools error with portals (#2904, thanks @JoviDeCroock)
- Fix child reordering with
memo
(#2896, thanks @andrewiggins)
Maintenance
- Replace webpack with esbuild + babel in karma test runner(#2907, thanks @marvinhagemeister)
- Rename "coverage" env to "COVERAGE" (#2906, thanks @marvinhagemeister)
- Ensure expression is not marked for removal (#2905, thanks @marvinhagemeister)
- Prepare test code to be run in ES2015+ environments (#2901, thanks @marvinhagemeister)
- Fix invalid jsx comment (#2902, thanks @marvinhagemeister)
- Fix console.log not showing up in browser (#2900, thanks @marvinhagemeister)
- Improve hydration tests (#2899, thanks @andrewiggins)
- Add support for pretty printing karma console logs (#2893, thanks @marvinhagemeister)
10.5.8
This is probably the last release for 2020. Thank you everyone for the amazing contributions over the year and we can't wait to see where Preact is going in 2021! Lot's of interesting ideas are being worked on 🎉
Bug Fixes
- Correct
_nextDom
pointer if it is being unmounted (#2889, thanks @andrewiggins) - Updating
/compat/server
exports to work with import/export syntax and webpack 5 (#2873, thanks @SomethingSexy) - Remove arguments warning for
useMemo
/useCallback
hooks (#2870, thanks @afzalsayed96) - Use strict equality checks when comparing
VNode
type (#2855, thanks @andrewiggins) - Fix
ref
not being removed fromprops
withjsx-runtime
(#2840, thanks @marvinhagemeister) - Compat: Don't convert
onchange
tooninput
forinput[type=range]
in IE11 (#2817, thanks @gcraftyg)
Types
- Improve
JSDoc
comments (#2883, thanks @andrewiggins) - Use
CSSStyleDeclaration
for CSS property list (#2869, thanks @developit) - Add
readonly
attribute (#2868, thanks @rschristian) - Add
defaultValue
for select tag (#2848, thanks @Rafi993) - Update
_original
typings (#2830, thanks @marvinhagemeister) - Update
csstype
from version 2 to version 3 (#2829, thanks @bz2)
Other
- SimplifyPortal implementation (#2890, thanks @marvinhagemeister, @developit)
- Simplify
vnode
re-use detection (-2 B) (#2863, thanks @marvinhagemeister) - Save 6 Bytes (#2844, thanks @marvinhagemeister)
- Move child reodering to
diffChildren
(#2813, thanks @JoviDeCroock)
Maintenance
- Add discussions and a csb template (#2875, thanks @JoviDeCroock)
- In benches, abstract framework differences with
createRoot
API (#2866, thanks @andrewiggins) - Add filter benchmark (#2851, thanks @marvinhagemeister)
- Update benchmarks (#2865, thanks @andrewiggins)
- Add preactjs-gh-sponsor account to
FUNDING.yml
(#2861, thanks @JoviDeCroock) - Upgrade
devDependencies
(#2856, thanks @andrewiggins) - Add package tags (#2841, thanks @developit)
- Trial codesandbox-ci (#2819, thanks @JoviDeCroock)
10.5.7
- Fix
compat/jsx-runtime
missing in npm package (#2827, thanks @marvinhagemeister)