-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(useStoage): listen to storage
event
#2298
Conversation
related: #1433 |
Please add a demo and a test case @vaakian |
a0995dd
to
c30f687
Compare
c30f687
to
5fbdefd
Compare
According to the issue you've mentioned, I found that the storage event doesn't work on the same page, so I manually dispatched the |
@vaakian please don't mind, I changed your code directly, if I made some wrong changes, please feel free to let me known. |
Great, you've just fixed everything and I believe that's gonna be the final answer |
这个更新什么时候能 正式发布呢 |
v4 大版本,时间可能是最近两个月 |
}); | ||
|
||
// from the same document but different hooks | ||
useEventListener(SYNC_STORAGE_EVENT_NAME, syncStateFromCustomEvent, { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
because its own listener also detect its own trigger. whether can we use const hookId = useRef(Symbol(xx))
as current hook's identify. when calling dispatchEvent
, pass the hookId
. In syncStateFromCustomEvent
, compare hookId.
sorry, English is poor.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@bowencool Thank you, I will check it again and fix.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe that these codes can help:
const updateState = (value?: SetState<T>) => {
const currentState = isFunction(value) ? value(state) : value;
+ if (!listenStorageChange) {
setState(currentState);
+ }
...
这个哪时候可以合并,大半年了 |
可以先自己把代码复制到本地建一个 hook 用着,等这个合进去再从 ahooks 导入 |
临时方案没问题的,想请问一下,大概预计哪时候可以合并呢? |
* refactor: replace lodash/isEqual with react-fast-compare (#2458) * refactor: replace lodash/isEqual with react-fast-compare * chore: update lock --------- Co-authored-by: 云泥 <1656081615@qq.com> * refactor(useRafInterval): optimize useEffect cleanup fn (#2426) * fix(useAntdTable): 修复动态设置 ready 失效的 bug (#2489) * refactor(useLockFn): catch to finally (#2421) * refactor(useLockFn): catch to finally * refactor(useLockFn): keep the throw e * refactor(createEffectWithTarget): the first parameter is old-deps (#2431) * fix(useCountDown): targetDate resets leftTime (#2346) * chore: update version * fix(type): fixed up some types that are non-standard and errors on `useExteneral` hook (#2508) * fix(type): fixed up some types that are non-standard and errors on `useExternal` hook * style: format * refactor: simplify --------- Co-authored-by: liuyib <1656081615@qq.com> * feat(useStoage): listen to `storage` event (#2298) * feat: sync `storage` state * chore: update test case * refactor: replace StorageEvent to CustomEvent, and add listenStorageChange param * test: revert case in useSessionStorage * docs: modify docs and demo * test: add case for 'enable' parameter * test: remove unnecessary code --------- Co-authored-by: liuyib <1656081615@qq.com> * chore(useLatest): add a default state for comparison in useLatest demo (#2523) * feat(useSelections): support object array (#2485) * feat(useSelections): support object array * fix: solve error * 修复 useAntdTable Params 的类型问题 (#2377) * fix(useAntdTable): change Params filter to filters * docs(useAntdTable): change Params filter to filters * fix(useVirtualList): get correct offset when itemHeight is fixed (#2279) Co-authored-by: huangcheng <huangcheng.lq@bytedance.com> --------- Co-authored-by: Guo Yunhe <i@guoyunhe.me> Co-authored-by: ice <49827327+GetWebHB@users.noreply.github.com> Co-authored-by: guaijie <30885718+guaijie@users.noreply.github.com> Co-authored-by: joe-leong <39672163+joe-leong@users.noreply.github.com> Co-authored-by: 潇见 <xiaojian.lj@antgroup.com> Co-authored-by: Darwish <38754760+LonelyFellas@users.noreply.github.com> Co-authored-by: vaakian <vaakian@gmail.com> Co-authored-by: shanyue <xianger94@gmail.com> Co-authored-by: Conor <729354837@qq.com> Co-authored-by: echo <1558449520@qq.com> Co-authored-by: huangcheng <huangcheng.lq@bytedance.com>
* refactor: replace lodash/isEqual with react-fast-compare (#2458) * refactor: replace lodash/isEqual with react-fast-compare * chore: update lock --------- Co-authored-by: 云泥 <1656081615@qq.com> * refactor(useRafInterval): optimize useEffect cleanup fn (#2426) * fix(useAntdTable): 修复动态设置 ready 失效的 bug (#2489) * refactor(useLockFn): catch to finally (#2421) * refactor(useLockFn): catch to finally * refactor(useLockFn): keep the throw e * refactor(createEffectWithTarget): the first parameter is old-deps (#2431) * fix(useCountDown): targetDate resets leftTime (#2346) * chore: update version * fix(type): fixed up some types that are non-standard and errors on `useExteneral` hook (#2508) * fix(type): fixed up some types that are non-standard and errors on `useExternal` hook * style: format * refactor: simplify --------- Co-authored-by: liuyib <1656081615@qq.com> * feat(useStoage): listen to `storage` event (#2298) * feat: sync `storage` state * chore: update test case * refactor: replace StorageEvent to CustomEvent, and add listenStorageChange param * test: revert case in useSessionStorage * docs: modify docs and demo * test: add case for 'enable' parameter * test: remove unnecessary code --------- Co-authored-by: liuyib <1656081615@qq.com> * chore(useLatest): add a default state for comparison in useLatest demo (#2523) * feat(useSelections): support object array (#2485) * feat(useSelections): support object array * fix: solve error * 修复 useAntdTable Params 的类型问题 (#2377) * fix(useAntdTable): change Params filter to filters * docs(useAntdTable): change Params filter to filters * fix(useVirtualList): get correct offset when itemHeight is fixed (#2279) Co-authored-by: huangcheng <huangcheng.lq@bytedance.com> * fix(createUseStorageState): invoke setState twice (#2532) * fix: 🐞 every add default value (#2529) * feat(useDynamicList): add `batchRemove` method (#2340) * feat: useDynamicList添加批量删除 * fix: list key * ci: add case for batchRemove * chore: add batchRemove to demo * fix: better warn * test: update --------- Co-authored-by: xiaozisong <xiaozis@gantsoftware.com> Co-authored-by: liuyib <1656081615@qq.com> * feat(useSelections): add clearAll result (#2357) * feat(useSelections): add clearAll result * docs: update docs and code style * refactor: resolve conflict * docs: update --------- Co-authored-by: liuyib <1656081615@qq.com> * test(useSelections): fix test case error (#2536) * test: fix case * style: rename --------- Co-authored-by: Guo Yunhe <i@guoyunhe.me> Co-authored-by: ice <49827327+GetWebHB@users.noreply.github.com> Co-authored-by: guaijie <30885718+guaijie@users.noreply.github.com> Co-authored-by: joe-leong <39672163+joe-leong@users.noreply.github.com> Co-authored-by: 潇见 <xiaojian.lj@antgroup.com> Co-authored-by: Darwish <38754760+LonelyFellas@users.noreply.github.com> Co-authored-by: vaakian <vaakian@gmail.com> Co-authored-by: shanyue <xianger94@gmail.com> Co-authored-by: Conor <729354837@qq.com> Co-authored-by: echo <1558449520@qq.com> Co-authored-by: huangcheng <huangcheng.lq@bytedance.com> Co-authored-by: 左耳咚 <1004714132@qq.com> Co-authored-by: shawn <67359137+xiaozisong@users.noreply.github.com> Co-authored-by: xiaozisong <xiaozis@gantsoftware.com> Co-authored-by: lich-yoo <lich95for@163.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | OpenSSF | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---|---|---|---| | [@aws-sdk/client-cognito-identity-provider](https://togithub.com/aws/aws-sdk-js-v3/tree/main/clients/client-cognito-identity-provider) ([source](https://togithub.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-cognito-identity-provider)) | dependencies | minor | [`3.577.0` -> `3.583.0`](https://renovatebot.com/diffs/npm/@aws-sdk%2fclient-cognito-identity-provider/3.577.0/3.583.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/aws/aws-sdk-js-v3/badge)](https://securityscorecards.dev/viewer/?uri=github.com/aws/aws-sdk-js-v3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@aws-sdk%2fclient-cognito-identity-provider/3.583.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@aws-sdk%2fclient-cognito-identity-provider/3.583.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@aws-sdk%2fclient-cognito-identity-provider/3.577.0/3.583.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@aws-sdk%2fclient-cognito-identity-provider/3.577.0/3.583.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@changesets/cli](https://togithub.com/changesets/changesets/tree/main#readme) ([source](https://togithub.com/changesets/changesets)) | devDependencies | patch | [`2.27.3` -> `2.27.5`](https://renovatebot.com/diffs/npm/@changesets%2fcli/2.27.3/2.27.5) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/changesets/changesets/badge)](https://securityscorecards.dev/viewer/?uri=github.com/changesets/changesets) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@changesets%2fcli/2.27.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@changesets%2fcli/2.27.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@changesets%2fcli/2.27.3/2.27.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@changesets%2fcli/2.27.3/2.27.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@iconify-json/carbon](https://icon-sets.iconify.design/carbon/) | devDependencies | patch | [`1.1.33` -> `1.1.34`](https://renovatebot.com/diffs/npm/@iconify-json%2fcarbon/1.1.33/1.1.34) | | [![age](https://developer.mend.io/api/mc/badges/age/npm/@iconify-json%2fcarbon/1.1.34?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@iconify-json%2fcarbon/1.1.34?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@iconify-json%2fcarbon/1.1.33/1.1.34?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@iconify-json%2fcarbon/1.1.33/1.1.34?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@iconify-json/simple-icons](https://icon-sets.iconify.design/simple-icons/) | devDependencies | patch | [`1.1.102` -> `1.1.103`](https://renovatebot.com/diffs/npm/@iconify-json%2fsimple-icons/1.1.102/1.1.103) | | [![age](https://developer.mend.io/api/mc/badges/age/npm/@iconify-json%2fsimple-icons/1.1.103?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@iconify-json%2fsimple-icons/1.1.103?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@iconify-json%2fsimple-icons/1.1.102/1.1.103?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@iconify-json%2fsimple-icons/1.1.102/1.1.103?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@playwright/test](https://playwright.dev) ([source](https://togithub.com/microsoft/playwright)) | devDependencies | patch | [`1.44.0` -> `1.44.1`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.44.0/1.44.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/microsoft/playwright/badge)](https://securityscorecards.dev/viewer/?uri=github.com/microsoft/playwright) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.44.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@playwright%2ftest/1.44.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@playwright%2ftest/1.44.0/1.44.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.44.0/1.44.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@snaplet/seed](https://snaplet.dev/seed) | devDependencies | patch | [`0.97.19` -> `0.97.20`](https://renovatebot.com/diffs/npm/@snaplet%2fseed/0.97.19/0.97.20) | | [![age](https://developer.mend.io/api/mc/badges/age/npm/@snaplet%2fseed/0.97.20?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@snaplet%2fseed/0.97.20?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@snaplet%2fseed/0.97.19/0.97.20?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@snaplet%2fseed/0.97.19/0.97.20?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react) ([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react)) | devDependencies | patch | [`18.3.2` -> `18.3.3`](https://renovatebot.com/diffs/npm/@types%2freact/18.3.2/18.3.3) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/DefinitelyTyped/DefinitelyTyped/badge)](https://securityscorecards.dev/viewer/?uri=github.com/DefinitelyTyped/DefinitelyTyped) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.3.2/18.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.3.2/18.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin) ([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin)) | devDependencies | minor | [`7.10.0` -> `7.11.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/7.10.0/7.11.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/typescript-eslint/typescript-eslint/badge)](https://securityscorecards.dev/viewer/?uri=github.com/typescript-eslint/typescript-eslint) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/7.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/7.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/7.10.0/7.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/7.10.0/7.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@typescript-eslint/parser](https://typescript-eslint.io/packages/parser) ([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser)) | devDependencies | minor | [`7.10.0` -> `7.11.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/7.10.0/7.11.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/typescript-eslint/typescript-eslint/badge)](https://securityscorecards.dev/viewer/?uri=github.com/typescript-eslint/typescript-eslint) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/7.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/7.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/7.10.0/7.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/7.10.0/7.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@vercel/analytics](https://togithub.com/vercel/analytics) ([source](https://togithub.com/vercel/analytics/tree/HEAD/packages/web)) | dependencies | minor | [`1.2.2` -> `1.3.1`](https://renovatebot.com/diffs/npm/@vercel%2fanalytics/1.2.2/1.3.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/vercel/analytics/badge)](https://securityscorecards.dev/viewer/?uri=github.com/vercel/analytics) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vercel%2fanalytics/1.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vercel%2fanalytics/1.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vercel%2fanalytics/1.2.2/1.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vercel%2fanalytics/1.2.2/1.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@vercel/speed-insights](https://togithub.com/vercel/speed-insights) ([source](https://togithub.com/vercel/speed-insights/tree/HEAD/packages/web)) | dependencies | patch | [`1.0.10` -> `1.0.11`](https://renovatebot.com/diffs/npm/@vercel%2fspeed-insights/1.0.10/1.0.11) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/vercel/speed-insights/badge)](https://securityscorecards.dev/viewer/?uri=github.com/vercel/speed-insights) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vercel%2fspeed-insights/1.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vercel%2fspeed-insights/1.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vercel%2fspeed-insights/1.0.10/1.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vercel%2fspeed-insights/1.0.10/1.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [ahooks](https://togithub.com/alibaba/hooks) | dependencies | minor | [`3.7.11` -> `3.8.0`](https://renovatebot.com/diffs/npm/ahooks/3.7.11/3.8.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/alibaba/hooks/badge)](https://securityscorecards.dev/viewer/?uri=github.com/alibaba/hooks) | [![age](https://developer.mend.io/api/mc/badges/age/npm/ahooks/3.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/ahooks/3.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/ahooks/3.7.11/3.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ahooks/3.7.11/3.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [ajv](https://ajv.js.org) ([source](https://togithub.com/ajv-validator/ajv)) | dependencies | minor | [`8.13.0` -> `8.14.0`](https://renovatebot.com/diffs/npm/ajv/8.13.0/8.14.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/ajv-validator/ajv/badge)](https://securityscorecards.dev/viewer/?uri=github.com/ajv-validator/ajv) | [![age](https://developer.mend.io/api/mc/badges/age/npm/ajv/8.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/ajv/8.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/ajv/8.13.0/8.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ajv/8.13.0/8.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [chromatic](https://www.chromatic.com) ([source](https://togithub.com/chromaui/chromatic-cli)) | devDependencies | patch | [`11.4.0` -> `11.4.1`](https://renovatebot.com/diffs/npm/chromatic/11.4.0/11.4.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/chromaui/chromatic-cli/badge)](https://securityscorecards.dev/viewer/?uri=github.com/chromaui/chromatic-cli) | [![age](https://developer.mend.io/api/mc/badges/age/npm/chromatic/11.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/chromatic/11.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/chromatic/11.4.0/11.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/chromatic/11.4.0/11.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [chromatic](https://www.chromatic.com) ([source](https://togithub.com/chromaui/chromatic-cli)) | dependencies | patch | [`11.4.0` -> `11.4.1`](https://renovatebot.com/diffs/npm/chromatic/11.4.0/11.4.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/chromaui/chromatic-cli/badge)](https://securityscorecards.dev/viewer/?uri=github.com/chromaui/chromatic-cli) | [![age](https://developer.mend.io/api/mc/badges/age/npm/chromatic/11.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/chromatic/11.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/chromatic/11.4.0/11.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/chromatic/11.4.0/11.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [eslint-plugin-react](https://togithub.com/jsx-eslint/eslint-plugin-react) | devDependencies | patch | [`7.34.1` -> `7.34.2`](https://renovatebot.com/diffs/npm/eslint-plugin-react/7.34.1/7.34.2) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/jsx-eslint/eslint-plugin-react/badge)](https://securityscorecards.dev/viewer/?uri=github.com/jsx-eslint/eslint-plugin-react) | [![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-react/7.34.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-react/7.34.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-react/7.34.1/7.34.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-react/7.34.1/7.34.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [knip](https://knip.dev) ([source](https://togithub.com/webpro-nl/knip/tree/HEAD/packages/knip)) | devDependencies | minor | [`5.16.0` -> `5.17.3`](https://renovatebot.com/diffs/npm/knip/5.16.0/5.17.3) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/webpro-nl/knip/badge)](https://securityscorecards.dev/viewer/?uri=github.com/webpro-nl/knip) | [![age](https://developer.mend.io/api/mc/badges/age/npm/knip/5.17.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/knip/5.17.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/knip/5.16.0/5.17.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/knip/5.16.0/5.17.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [libphonenumber-js](https://gitlab.com/catamphetamine/libphonenumber-js) | dependencies | patch | [`1.11.1` -> `1.11.2`](https://renovatebot.com/diffs/npm/libphonenumber-js/1.11.1/1.11.2) | | [![age](https://developer.mend.io/api/mc/badges/age/npm/libphonenumber-js/1.11.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/libphonenumber-js/1.11.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/libphonenumber-js/1.11.1/1.11.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/libphonenumber-js/1.11.1/1.11.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [libphonenumber-js](https://gitlab.com/catamphetamine/libphonenumber-js) | devDependencies | patch | [`1.11.1` -> `1.11.2`](https://renovatebot.com/diffs/npm/libphonenumber-js/1.11.1/1.11.2) | | [![age](https://developer.mend.io/api/mc/badges/age/npm/libphonenumber-js/1.11.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/libphonenumber-js/1.11.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/libphonenumber-js/1.11.1/1.11.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/libphonenumber-js/1.11.1/1.11.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [lint-staged](https://togithub.com/okonet/lint-staged) | devDependencies | patch | [`15.2.4` -> `15.2.5`](https://renovatebot.com/diffs/npm/lint-staged/15.2.4/15.2.5) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/okonet/lint-staged/badge)](https://securityscorecards.dev/viewer/?uri=github.com/okonet/lint-staged) | [![age](https://developer.mend.io/api/mc/badges/age/npm/lint-staged/15.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lint-staged/15.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lint-staged/15.2.4/15.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lint-staged/15.2.4/15.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [nextjs-routes](https://togithub.com/tatethurston/nextjs-routes) | dependencies | minor | [`2.1.0` -> `2.2.0`](https://renovatebot.com/diffs/npm/nextjs-routes/2.1.0/2.2.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/tatethurston/nextjs-routes/badge)](https://securityscorecards.dev/viewer/?uri=github.com/tatethurston/nextjs-routes) | [![age](https://developer.mend.io/api/mc/badges/age/npm/nextjs-routes/2.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nextjs-routes/2.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nextjs-routes/2.1.0/2.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nextjs-routes/2.1.0/2.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [pnpm](https://pnpm.io) ([source](https://togithub.com/pnpm/pnpm)) | packageManager | patch | [`9.1.2` -> `9.1.3`](https://renovatebot.com/diffs/npm/pnpm/9.1.2/9.1.3) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/pnpm/pnpm/badge)](https://securityscorecards.dev/viewer/?uri=github.com/pnpm/pnpm) | [![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/9.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/pnpm/9.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/pnpm/9.1.2/9.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/9.1.2/9.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [react-i18next](https://togithub.com/i18next/react-i18next) | peerDependencies | patch | [`14.1.1` -> `14.1.2`](https://renovatebot.com/diffs/npm/react-i18next/14.1.1/14.1.2) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/i18next/react-i18next/badge)](https://securityscorecards.dev/viewer/?uri=github.com/i18next/react-i18next) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-i18next/14.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-i18next/14.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-i18next/14.1.1/14.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-i18next/14.1.1/14.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [react-i18next](https://togithub.com/i18next/react-i18next) | devDependencies | patch | [`14.1.1` -> `14.1.2`](https://renovatebot.com/diffs/npm/react-i18next/14.1.1/14.1.2) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/i18next/react-i18next/badge)](https://securityscorecards.dev/viewer/?uri=github.com/i18next/react-i18next) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-i18next/14.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-i18next/14.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-i18next/14.1.1/14.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-i18next/14.1.1/14.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [react-i18next](https://togithub.com/i18next/react-i18next) | dependencies | patch | [`14.1.1` -> `14.1.2`](https://renovatebot.com/diffs/npm/react-i18next/14.1.1/14.1.2) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/i18next/react-i18next/badge)](https://securityscorecards.dev/viewer/?uri=github.com/i18next/react-i18next) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-i18next/14.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-i18next/14.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-i18next/14.1.1/14.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-i18next/14.1.1/14.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [react-phone-number-input](https://gitlab.com/catamphetamine/react-phone-number-input) | dependencies | patch | [`3.4.1` -> `3.4.3`](https://renovatebot.com/diffs/npm/react-phone-number-input/3.4.1/3.4.3) | | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-phone-number-input/3.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-phone-number-input/3.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-phone-number-input/3.4.1/3.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-phone-number-input/3.4.1/3.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [tsx](https://togithub.com/privatenumber/tsx) | devDependencies | minor | [`4.10.5` -> `4.11.0`](https://renovatebot.com/diffs/npm/tsx/4.10.5/4.11.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/privatenumber/tsx/badge)](https://securityscorecards.dev/viewer/?uri=github.com/privatenumber/tsx) | [![age](https://developer.mend.io/api/mc/badges/age/npm/tsx/4.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/tsx/4.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/tsx/4.10.5/4.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tsx/4.10.5/4.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [type-fest](https://togithub.com/sindresorhus/type-fest) | devDependencies | patch | [`4.18.2` -> `4.18.3`](https://renovatebot.com/diffs/npm/type-fest/4.18.2/4.18.3) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/sindresorhus/type-fest/badge)](https://securityscorecards.dev/viewer/?uri=github.com/sindresorhus/type-fest) | [![age](https://developer.mend.io/api/mc/badges/age/npm/type-fest/4.18.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/type-fest/4.18.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/type-fest/4.18.2/4.18.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/type-fest/4.18.2/4.18.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [zod-prisma-types](https://togithub.com/chrishoermann/zod-prisma-types) | devDependencies | patch | [`3.1.6` -> `3.1.8`](https://renovatebot.com/diffs/npm/zod-prisma-types/3.1.6/3.1.8) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/chrishoermann/zod-prisma-types/badge)](https://securityscorecards.dev/viewer/?uri=github.com/chrishoermann/zod-prisma-types) | [![age](https://developer.mend.io/api/mc/badges/age/npm/zod-prisma-types/3.1.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/zod-prisma-types/3.1.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/zod-prisma-types/3.1.6/3.1.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/zod-prisma-types/3.1.6/3.1.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>aws/aws-sdk-js-v3 (@​aws-sdk/client-cognito-identity-provider)</summary> ### [`v3.583.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-cognito-identity-provider/CHANGELOG.md#35830-2024-05-23) [Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.582.0...v3.583.0) **Note:** Version bump only for package [@​aws-sdk/client-cognito-identity-provider](https://togithub.com/aws-sdk/client-cognito-identity-provider) ### [`v3.582.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-cognito-identity-provider/CHANGELOG.md#35820-2024-05-22) [Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.577.0...v3.582.0) **Note:** Version bump only for package [@​aws-sdk/client-cognito-identity-provider](https://togithub.com/aws-sdk/client-cognito-identity-provider) </details> <details> <summary>changesets/changesets (@​changesets/cli)</summary> ### [`v2.27.5`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/cli%402.27.5) [Compare Source](https://togithub.com/changesets/changesets/compare/@changesets/cli@2.27.4...@changesets/cli@2.27.5) ##### Patch Changes - [#​1370](https://togithub.com/changesets/changesets/pull/1370) [`5e9d33a`](https://togithub.com/changesets/changesets/commit/5e9d33a2e659abdcf26f204a76a9465cf4b26d6b) Thanks [@​Andarist](https://togithub.com/Andarist)! - Fixed a regression that caused `changeset version` to fail on packages having a dev dependency on a skipped package. - Updated dependencies \[[`5e9d33a`](https://togithub.com/changesets/changesets/commit/5e9d33a2e659abdcf26f204a76a9465cf4b26d6b)]: - [@​changesets/get-dependents-graph](https://togithub.com/changesets/get-dependents-graph)[@​2](https://togithub.com/2).1.0 - [@​changesets/assemble-release-plan](https://togithub.com/changesets/assemble-release-plan)[@​6](https://togithub.com/6).0.2 - [@​changesets/config](https://togithub.com/changesets/config)[@​3](https://togithub.com/3).0.1 - [@​changesets/get-release-plan](https://togithub.com/changesets/get-release-plan)[@​4](https://togithub.com/4).0.2 - [@​changesets/apply-release-plan](https://togithub.com/changesets/apply-release-plan)[@​7](https://togithub.com/7).0.3 ### [`v2.27.4`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/cli%402.27.4) [Compare Source](https://togithub.com/changesets/changesets/compare/@changesets/cli@2.27.3...@changesets/cli@2.27.4) ##### Patch Changes - [#​1361](https://togithub.com/changesets/changesets/pull/1361) [`954a16a`](https://togithub.com/changesets/changesets/commit/954a16aa1d118a0f7fa745ffe0d19b304f685d4c) Thanks [@​jakebailey](https://togithub.com/jakebailey)! - Ensure that `version`/`tag` do not touch private packages with when versioning/tagging is turned off using `versionPackages` config - [#​1369](https://togithub.com/changesets/changesets/pull/1369) [`d729d8c`](https://togithub.com/changesets/changesets/commit/d729d8cc0e226871aa0c5b73cce80bbf313ca56c) Thanks [@​Andarist](https://togithub.com/Andarist)! - `changeset tag` should now correctly skip tags that exist on the remote - Updated dependencies \[[`954a16a`](https://togithub.com/changesets/changesets/commit/954a16aa1d118a0f7fa745ffe0d19b304f685d4c)]: - [@​changesets/assemble-release-plan](https://togithub.com/changesets/assemble-release-plan)[@​6](https://togithub.com/6).0.1 - [@​changesets/apply-release-plan](https://togithub.com/changesets/apply-release-plan)[@​7](https://togithub.com/7).0.2 - [@​changesets/get-release-plan](https://togithub.com/changesets/get-release-plan)[@​4](https://togithub.com/4).0.1 </details> <details> <summary>microsoft/playwright (@​playwright/test)</summary> ### [`v1.44.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.44.1) [Compare Source](https://togithub.com/microsoft/playwright/compare/v1.44.0...v1.44.1) ##### Highlights [https://github.com/microsoft/playwright/issues/30779](https://togithub.com/microsoft/playwright/issues/30779) - \[REGRESSION]: When using `video: 'on'` with VSCode extension the browser got closed [https://github.com/microsoft/playwright/issues/30755](https://togithub.com/microsoft/playwright/issues/30755) - \[REGRESSION]: Electron launch with spaces inside executablePath didn't work[https://github.com/microsoft/playwright/issues/30770](https://togithub.com/microsoft/playwright/issues/30770)0 - \[REGRESSION]: Mask elements outside of viewport when creating fullscreen screenshots didn't wor[https://github.com/microsoft/playwright/issues/30858](https://togithub.com/microsoft/playwright/issues/30858)58 - \[REGRESSION]: ipv6 got shown instead of localhost in show-trace/show-report #### Browser Versions - Chromium 125.0.6422.14 - Mozilla Firefox 125.0.1 - WebKit 17.4 This version was also tested against the following stable channels: - Google Chrome 124 - Microsoft Edge 124 </details> <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/eslint-plugin)</summary> ### [`v7.11.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7110-2024-05-27) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v7.10.0...v7.11.0) ##### 🚀 Features - **eslint-plugin:** deprecate prefer-ts-expect-error in favor of ban-ts-comment ##### 🩹 Fixes - **eslint-plugin:** \[consistent-type-assertions] prevent syntax errors on arrow functions ##### ❤️ Thank You - Abraham Guo - auvred - Dom Armstrong - Kirk Waiblinger You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. </details> <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/parser)</summary> ### [`v7.11.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7110-2024-05-27) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v7.10.0...v7.11.0) This was a version bump only for parser to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. </details> <details> <summary>vercel/analytics (@​vercel/analytics)</summary> ### [`v1.3.1`](https://togithub.com/vercel/analytics/releases/tag/1.3.1) [Compare Source](https://togithub.com/vercel/analytics/compare/1.3.0...1.3.1) #### What's Changed - fix: nextjs parallel routes with catchall isn't supported by [@​feugy](https://togithub.com/feugy) in [https://github.com/vercel/analytics/pull/141](https://togithub.com/vercel/analytics/pull/141) **Full Changelog**: https://github.com/vercel/analytics/compare/1.3.0...1.3.1 ### [`v1.3.0`](https://togithub.com/vercel/analytics/releases/tag/1.3.0) [Compare Source](https://togithub.com/vercel/analytics/compare/1.2.2...1.3.0) #### What's Changed - feat: include flags in custom events and page views by [@​AndyBitz](https://togithub.com/AndyBitz), [@​tobiaslins](https://togithub.com/tobiaslins), [@​feugy](https://togithub.com/feugy) in [https://github.com/vercel/analytics/pull/140](https://togithub.com/vercel/analytics/pull/140) **Full Changelog**: https://github.com/vercel/analytics/compare/1.2.2...1.3.0 </details> <details> <summary>vercel/speed-insights (@​vercel/speed-insights)</summary> ### [`v1.0.11`](https://togithub.com/vercel/speed-insights/releases/tag/1.0.11) [Compare Source](https://togithub.com/vercel/speed-insights/compare/1.0.10...1.0.11) #### What's Changed - fix: nextjs parallel routes with catchall isn't supported by [@​feugy](https://togithub.com/feugy) in [https://github.com/vercel/speed-insights/pull/69](https://togithub.com/vercel/speed-insights/pull/69) - fix([#​68](https://togithub.com/vercel/speed-insights/issues/68)): postinstall is failing with no error **Full Changelog**: https://github.com/vercel/speed-insights/compare/1.0.10...1.0.11 </details> <details> <summary>alibaba/hooks (ahooks)</summary> ### [`v3.8.0`](https://togithub.com/alibaba/hooks/releases/tag/v3.8.0) [Compare Source](https://togithub.com/alibaba/hooks/compare/v3.7.11...v3.8.0) #### What's Changed - ✨ feat(useStoage): listen to `storage` event by [@​vaakian](https://togithub.com/vaakian) in [https://github.com/alibaba/hooks/pull/2298](https://togithub.com/alibaba/hooks/pull/2298) - ✨ feat(useSelections): support object array by [@​liuyib](https://togithub.com/liuyib) in [https://github.com/alibaba/hooks/pull/2485](https://togithub.com/alibaba/hooks/pull/2485) - ✨ feat(useDynamicList): add `batchRemove` method by [@​xiaozisong](https://togithub.com/xiaozisong) in [https://github.com/alibaba/hooks/pull/2340](https://togithub.com/alibaba/hooks/pull/2340) - ✨ feat(useSelections): add clearAll result by [@​lich-yoo](https://togithub.com/lich-yoo) in [https://github.com/alibaba/hooks/pull/2357](https://togithub.com/alibaba/hooks/pull/2357) - 🐛 fix(type): fixed up some types that are non-standard and errors on `useExteneral` hook by [@​LonelyFellas](https://togithub.com/LonelyFellas) in [https://github.com/alibaba/hooks/pull/2508](https://togithub.com/alibaba/hooks/pull/2508) - 🐛 fix(useVirtualList): get correct offset when itemHeight is fixed by [@​leedawn](https://togithub.com/leedawn) in [https://github.com/alibaba/hooks/pull/2279](https://togithub.com/alibaba/hooks/pull/2279) - 🐛 fix(useAntdTable): type of Params by [@​conorzhong](https://togithub.com/conorzhong) in [https://github.com/alibaba/hooks/pull/2377](https://togithub.com/alibaba/hooks/pull/2377) - 🔄 perf(createUseStorageState): avoid setState being invoked twice by [@​liuyib](https://togithub.com/liuyib) in [https://github.com/alibaba/hooks/pull/2532](https://togithub.com/alibaba/hooks/pull/2532) - 🎨 style(utils): add default return value to `checkIfAllInShadow` by [@​enson0131](https://togithub.com/enson0131) in [https://github.com/alibaba/hooks/pull/2529](https://togithub.com/alibaba/hooks/pull/2529) - ⚡ test(useSelections): fix test case error by [@​liuyib](https://togithub.com/liuyib) in [https://github.com/alibaba/hooks/pull/2536](https://togithub.com/alibaba/hooks/pull/2536) - 🛠 chore(useLatest): add a default state for comparison in useLatest demo by [@​shfshanyue](https://togithub.com/shfshanyue) in [https://github.com/alibaba/hooks/pull/2523](https://togithub.com/alibaba/hooks/pull/2523) *** - ✨ feat(useStoage): 监听 `storage` 事件,由 [@​vaakian](https://togithub.com/vaakian) 提交于 [https://github.com/alibaba/hooks/pull/2298](https://togithub.com/alibaba/hooks/pull/2298) - ✨ feat(useSelections): 支持对象数组,由 [@​liuyib](https://togithub.com/liuyib) 提交于 [https://github.com/alibaba/hooks/pull/2485](https://togithub.com/alibaba/hooks/pull/2485) - ✨ feat(useDynamicList): 添加 `batchRemove` 方法,由 [@​xiaozisong](https://togithub.com/xiaozisong) 提交于 [https://github.com/alibaba/hooks/pull/2340](https://togithub.com/alibaba/hooks/pull/2340) - ✨ feat(useSelections): 添加清除所有结果,由 [@​lich-yoo](https://togithub.com/lich-yoo) 提交于 [https://github.com/alibaba/hooks/pull/2357](https://togithub.com/alibaba/hooks/pull/2357) - 🐛 fix(type): 修复 `useExteneral` hook 上的一些非标准和错误类型,由 [@​LonelyFellas](https://togithub.com/LonelyFellas) 提交于 [https://github.com/alibaba/hooks/pull/2508](https://togithub.com/alibaba/hooks/pull/2508) - 🐛 fix(useVirtualList): 当 itemHeight 固定时获取正确的偏移量,由 [@​leedawn](https://togithub.com/leedawn) 提交于 [https://github.com/alibaba/hooks/pull/2279](https://togithub.com/alibaba/hooks/pull/2279) - 🐛 fix(useAntdTable): 修复 Params 的类型问题,由 [@​conorzhong](https://togithub.com/conorzhong) 提交于 [https://github.com/alibaba/hooks/pull/2377](https://togithub.com/alibaba/hooks/pull/2377) - 🔄 perf(createUseStorageState): 避免 setState 被调用两次,由 [@​liuyib](https://togithub.com/liuyib) 提交于 [https://github.com/alibaba/hooks/pull/2532](https://togithub.com/alibaba/hooks/pull/2532) - 🎨 style(utils): 为 `checkIfAllInShadow` 添加默认返回值,由 [@​enson0131](https://togithub.com/enson0131) 提交于 [https://github.com/alibaba/hooks/pull/2529](https://togithub.com/alibaba/hooks/pull/2529) - ⚡ test(useSelections): 修复测试用例错误,由 [@​liuyib](https://togithub.com/liuyib) 提交于 [https://github.com/alibaba/hooks/pull/2536](https://togithub.com/alibaba/hooks/pull/2536) - 🛠 chore(useLatest): 在 useLatest demo 中添加一个默认状态用于比较,由 [@​shfshanyue](https://togithub.com/shfshanyue) 提交于 [https://github.com/alibaba/hooks/pull/2523](https://togithub.com/alibaba/hooks/pull/2523) #### New Contributors - [@​LonelyFellas](https://togithub.com/LonelyFellas) made their first contribution in [https://github.com/alibaba/hooks/pull/2508](https://togithub.com/alibaba/hooks/pull/2508) - [@​conorzhong](https://togithub.com/conorzhong) made their first contribution in [https://github.com/alibaba/hooks/pull/2377](https://togithub.com/alibaba/hooks/pull/2377) - [@​leedawn](https://togithub.com/leedawn) made their first contribution in [https://github.com/alibaba/hooks/pull/2279](https://togithub.com/alibaba/hooks/pull/2279) - [@​enson0131](https://togithub.com/enson0131) made their first contribution in [https://github.com/alibaba/hooks/pull/2529](https://togithub.com/alibaba/hooks/pull/2529) - [@​xiaozisong](https://togithub.com/xiaozisong) made their first contribution in [https://github.com/alibaba/hooks/pull/2340](https://togithub.com/alibaba/hooks/pull/2340) - [@​lich-yoo](https://togithub.com/lich-yoo) made their first contribution in [https://github.com/alibaba/hooks/pull/2357](https://togithub.com/alibaba/hooks/pull/2357) **Full Changelog**: https://github.com/alibaba/hooks/compare/v3.7.11...v3.8.0 </details> <details> <summary>ajv-validator/ajv (ajv)</summary> ### [`v8.14.0`](https://togithub.com/ajv-validator/ajv/releases/tag/v8.14.0) [Compare Source](https://togithub.com/ajv-validator/ajv/compare/v8.13.0...v8.14.0) #### What's Changed - readme: build badge by [@​epoberezkin](https://togithub.com/epoberezkin) in [https://github.com/ajv-validator/ajv/pull/2424](https://togithub.com/ajv-validator/ajv/pull/2424) - Update workflows by [@​rotu](https://togithub.com/rotu) in [https://github.com/ajv-validator/ajv/pull/2410](https://togithub.com/ajv-validator/ajv/pull/2410) - docs: add warning to maxLength / minLength by [@​jasoniangreen](https://togithub.com/jasoniangreen) in [https://github.com/ajv-validator/ajv/pull/2428](https://togithub.com/ajv-validator/ajv/pull/2428) - fix: broken link in docs warning by [@​jasoniangreen](https://togithub.com/jasoniangreen) in [https://github.com/ajv-validator/ajv/pull/2431](https://togithub.com/ajv-validator/ajv/pull/2431) - compileAsync a schema with discriminator and $ref, fixes [#​2427](https://togithub.com/ajv-validator/ajv/issues/2427) by [@​jasoniangreen](https://togithub.com/jasoniangreen) in [https://github.com/ajv-validator/ajv/pull/2433](https://togithub.com/ajv-validator/ajv/pull/2433) - bump version to 8.14.0 for publishing by [@​jasoniangreen](https://togithub.com/jasoniangreen) in [https://github.com/ajv-validator/ajv/pull/2440](https://togithub.com/ajv-validator/ajv/pull/2440) #### New Contributors - [@​rotu](https://togithub.com/rotu) made their first contribution in [https://github.com/ajv-validator/ajv/pull/2410](https://togithub.com/ajv-validator/ajv/pull/2410) **Full Changelog**: https://github.com/ajv-validator/ajv/compare/v8.13.0...v8.14.0 </details> <details> <summary>chromaui/chromatic-cli (chromatic)</summary> ### [`v11.4.1`](https://togithub.com/chromaui/chromatic-cli/blob/HEAD/CHANGELOG.md#v1141-Mon-May-27-2024) [Compare Source](https://togithub.com/chromaui/chromatic-cli/compare/v11.4.0...v11.4.1) ##### 🐛 Bug Fix - Pass `CI=1` environment variable to Storybook build command to disable prompts [#​991](https://togithub.com/chromaui/chromatic-cli/pull/991) ([@​ghengeveld](https://togithub.com/ghengeveld)) - Setup Slack plugin for auto to notify on new CLI releases [#​990](https://togithub.com/chromaui/chromatic-cli/pull/990) ([@​ghengeveld](https://togithub.com/ghengeveld)) ##### Authors: 1 - Gert Hengeveld ([@​ghengeveld](https://togithub.com/ghengeveld)) *** </details> <details> <summary>jsx-eslint/eslint-plugin-react (eslint-plugin-react)</summary> ### [`v7.34.2`](https://togithub.com/jsx-eslint/eslint-plugin-react/releases/tag/v7.34.2) [Compare Source](https://togithub.com/jsx-eslint/eslint-plugin-react/compare/v7.34.1...v7.34.2) ##### Fixed - [`boolean-prop-naming`][boolean-prop-naming]: avoid a crash with a non-TSTypeReference type ([#​3718][] [@​developer-bandi](https://togithub.com/developer-bandi)) - [`jsx-no-leaked-render`][jsx-no-leaked-render]: invalid report if left side is boolean ([#​3746][] [@​akulsr0](https://togithub.com/akulsr0)) - [`jsx-closing-bracket-location`][jsx-closing-bracket-location]: message shows `{{details}}` when there are no details ([#​3759][] [@​mdjermanovic](https://togithub.com/mdjermanovic)) - [`no-invalid-html-attribute`][no-invalid-html-attribute]: ensure error messages are correct ([#​3759][] [@​mdjermanovic](https://togithub.com/mdjermanovic), [@​ljharb](https://togithub.com/ljharb)) ##### Changed - \[Refactor] create various eslint utils to fix eslint deprecations ([#​3759][] [@​mdjermanovic](https://togithub.com/mdjermanovic), [@​ljharb](https://togithub.com/ljharb)) [7.34.2]: https://togithub.com/jsx-eslint/eslint-plugin-react/compare/v7.34.1...v7.34.2 [#​3759]: https://togithub.com/jsx-eslint/eslint-plugin-react/pull/3759 [#​3746]: https://togithub.com/jsx-eslint/eslint-plugin-react/pull/3746 [#​3718]: https://togithub.com/jsx-eslint/eslint-plugin-react/pull/3718 [`boolean-prop-naming`]: docs/rules/boolean-prop-naming.md [`jsx-no-leaked-render`]: docs/rules/jsx-no-leaked-render.md [`jsx-closing-bracket-location`]: docs/rules/jsx-closing-bracket-location.md [`no-invalid-html-attribute`]: docs/rules/no-invalid-html-attribute.md </details> <details> <summary>webpro-nl/knip (knip)</summary> ### [`v5.17.3`](https://togithub.com/webpro-nl/knip/releases/tag/5.17.3) [Compare Source](https://togithub.com/webpro-nl/knip/compare/5.17.2...5.17.3) - Add ‘kill’ and ‘ssh’ as globally available binaries ([#​660](https://togithub.com/webpro-nl/knip/issues/660)) ([`5e576a2`](https://togithub.com/webpro-nl/knip/commit/5e576a28)) - Remove version selector ([`9ad1d46`](https://togithub.com/webpro-nl/knip/commit/9ad1d466)) - Timerify (de)serialize functions ([`0e04f1e`](https://togithub.com/webpro-nl/knip/commit/0e04f1e4)) - Update docs ([`935a706`](https://togithub.com/webpro-nl/knip/commit/935a7066)) ### [`v5.17.2`](https://togithub.com/webpro-nl/knip/releases/tag/5.17.2) [Compare Source](https://togithub.com/webpro-nl/knip/compare/5.17.1...5.17.2) - Fix external require.resolve (resolves [#​657](https://togithub.com/webpro-nl/knip/issues/657)) ([`c188a7a`](https://togithub.com/webpro-nl/knip/commit/c188a7a7)) ### [`v5.17.1`](https://togithub.com/webpro-nl/knip/compare/5.17.0...28ad084b74f649fafce96d3af75f7cec11e39083) [Compare Source](https://togithub.com/webpro-nl/knip/compare/5.17.0...5.17.1) ### [`v5.17.0`](https://togithub.com/webpro-nl/knip/releases/tag/5.17.0) [Compare Source](https://togithub.com/webpro-nl/knip/compare/5.16.0...5.17.0) - Fix --watch after refactors ([`db2a261`](https://togithub.com/webpro-nl/knip/commit/db2a2616)) - Improve `getHasStrictlyNsReferences` and traverse into re-exports ([`9d75e0d`](https://togithub.com/webpro-nl/knip/commit/9d75e0d4)) - Restore imports in Footer.astro ([`c836517`](https://togithub.com/webpro-nl/knip/commit/c836517a)) </details> <details> <summary>catamphetamine/libphonenumber-js (libphonenumber-js)</summary> ### [`v1.11.2`](https://gitlab.com/catamphetamine/libphonenumber-js/blob/HEAD/CHANGELOG.md#193--11112020) [Compare Source](https://gitlab.com/catamphetamine/libphonenumber-js/compare/v1.11.1...v1.11.2) \================== - Added `AsYouType.getChars()` method. - Added formatting of international phone numbers that have been input without a leading `+`. </details> <details> <summary>okonet/lint-staged (lint-staged)</summary> ### [`v15.2.5`](https://togithub.com/okonet/lint-staged/blob/HEAD/CHANGELOG.md#1525) [Compare Source](https://togithub.com/okonet/lint-staged/compare/v15.2.4...v15.2.5) ##### Patch Changes - [#​1424](https://togithub.com/lint-staged/lint-staged/pull/1424) [`31a1f95`](https://togithub.com/lint-staged/lint-staged/commit/31a1f9548ea8202bc5bd718076711f747396e3ca) Thanks [@​iiroj](https://togithub.com/iiroj)! - Allow approximately equivalent versions of direct dependencies by using the "~" character in the version ranges. This means a more recent patch version of a dependency is allowed if available. - [#​1423](https://togithub.com/lint-staged/lint-staged/pull/1423) [`91abea0`](https://togithub.com/lint-staged/lint-staged/commit/91abea0d298154d92113ba34bae4020704e22918) Thanks [@​iiroj](https://togithub.com/iiroj)! - Improve error logging when failing to read or parse a configuration file - [#​1424](https://togithub.com/lint-staged/lint-staged/pull/1424) [`ee43f15`](https://togithub.com/lint-staged/lint-staged/commit/ee43f154097753dd5448766f792387e60e0ea453) Thanks [@​iiroj](https://togithub.com/iiroj)! - Upgrade micromatch@4.0.7 </details> <details> <summary>tatethurston/nextjs-routes (nextjs-routes)</summary> ### [`v2.2.0`](https://togithub.com/tatethurston/nextjs-routes/blob/HEAD/CHANGELOG.md#220) [Compare Source](https://togithub.com/tatethurston/nextjs-routes/compare/v2.1.0...v2.2.0) - Add `trailingSlash` option to `route`. See [#​168](https://togithub.com/tatethurston/nextjs-routes/issues/168) - Fix the generated optional catch all route type. See [#​183](https://togithub.com/tatethurston/nextjs-routes/issues/183) - Sort the generated route types lexicographically. </details> <details> <summary>pnpm/pnpm (pnpm)</summary> ### [`v9.1.3`](https://togithub.com/pnpm/pnpm/compare/v9.1.2...v9.1.3) [Compare Source](https://togithub.com/pnpm/pnpm/compare/v9.1.2...v9.1.3) </details> <details> <summary>i18next/react-i18next (react-i18next)</summary> ### [`v14.1.2`](https://togithub.com/i18next/react-i18next/blob/HEAD/CHANGELOG.md#1412) [Compare Source](https://togithub.com/i18next/react-i18next/compare/v14.1.1...v14.1.2) - bring back internal interpolationOverride handling for Trans component (if there are childrens), fixes [1754](https://togithub.com/i18next/react-i18next/issues/1754) </details> <details> <summary>catamphetamine/react-phone-number-input (react-phone-number-input)</summary> ### [`v3.4.3`](https://gitlab.com/catamphetamine/react-phone-number-input/compare/v3.4.2...v3.4.3) [Compare Source](https://gitlab.com/catamphetamine/react-phone-number-input/compare/v3.4.2...v3.4.3) ### [`v3.4.2`](https://gitlab.com/catamphetamine/react-phone-number-input/compare/v3.4.1...v3.4.2) [Compare Source](https://gitlab.com/catamphetamine/react-phone-number-input/compare/v3.4.1...v3.4.2) </details> <details> <summary>privatenumber/tsx (tsx)</summary> ### [`v4.11.0`](https://togithub.com/privatenumber/tsx/releases/tag/v4.11.0) [Compare Source](https://togithub.com/privatenumber/tsx/compare/v4.10.5...v4.11.0) ##### Bug Fixes - only error on invalid tsconfig if explicitly passed in ([#​30](https://togithub.com/privatenumber/tsx/issues/30)) ([b6bf39b](https://togithub.com/privatenumber/tsx/commit/b6bf39b1cc4ca037a16f5b02c619ed5c36e6d598)) ##### Features - **esm api:** configurable `tsconfig` ([3f42ae3](https://togithub.com/privatenumber/tsx/commit/3f42ae3dfc666cd4a6de7376ab051840e18c8c05)) *** This release is also available on: - [npm package (@​latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.11.0) </details> <details> <summary>sindresorhus/type-fest (type-fest)</summary> ### [`v4.18.3`](https://togithub.com/sindresorhus/type-fest/releases/tag/v4.18.3) [Compare Source](https://togithub.com/sindresorhus/type-fest/compare/v4.18.2...v4.18.3) - `ConditionalKeys`: Fix filtering out never type ([#​881](https://togithub.com/sindresorhus/type-fest/issues/881)) [`863511d`](https://togithub.com/sindresorhus/type-fest/commit/863511d) </details> <details> <summary>chrishoermann/zod-prisma-types (zod-prisma-types)</summary> ### [`v3.1.8`](https://togithub.com/chrishoermann/zod-prisma-types/releases/tag/v3.1.8): 3.1.8 [Compare Source](https://togithub.com/chrishoermann/zod-prisma-types/compare/v3.1.7...v3.1.8) #### What's Changed - Fix template string not valid in `VALIDATOR_TYPE_REGEX` by [@​lambertkevin](https://togithub.com/lambertkevin) in [https://github.com/chrishoermann/zod-prisma-types/pull/232](https://togithub.com/chrishoermann/zod-prisma-types/pull/232) - Add export line inside code block by [@​martinc1991](https://togithub.com/martinc1991) in [https://github.com/chrishoermann/zod-prisma-types/pull/220](https://togithub.com/chrishoermann/zod-prisma-types/pull/220) - fix(generator): Nullability of JSON field is reversed by [@​nordowl](https://togithub.com/nordowl) in [https://github.com/chrishoermann/zod-prisma-types/pull/240](https://togithub.com/chrishoermann/zod-prisma-types/pull/240) #### New Contributors - [@​lambertkevin](https://togithub.com/lambertkevin) made their first contribution in [https://github.com/chrishoermann/zod-prisma-types/pull/232](https://togithub.com/chrishoermann/zod-prisma-types/pull/232) - [@​martinc1991](https://togithub.com/martinc1991) made their first contribution in [https://github.com/chrishoermann/zod-prisma-types/pull/220](https://togithub.com/chrishoermann/zod-prisma-types/pull/220) - [@​nordowl](https://togithub.com/nordowl) made their first contribution in [https://github.com/chrishoermann/zod-prisma-types/pull/240](https://togithub.com/chrishoermann/zod-prisma-types/pull/240) **Full Changelog**: https://github.com/chrishoermann/zod-prisma-types/compare/v3.1.7...v3.1.8 ### [`v3.1.7`](https://togithub.com/chrishoermann/zod-prisma-types/releases/tag/v3.1.7): 3.1.7 [Compare Source](https://togithub.com/chrishoermann/zod-prisma-types/compare/v3.1.6...v3.1.7) #### What's changed - added support for prismas `createManyAndReturn` function that caused the error mentioned in [#​252](https://togithub.com/chrishoermann/zod-prisma-types/issues/252) **Full Changelog**: https://github.com/chrishoermann/zod-prisma-types/compare/v3.1.6...v3.1.7 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/weareinreach/InReach). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNjguMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zNzcuOCIsInRhcmdldEJyYW5jaCI6ImRldiIsImxhYmVscyI6WyJhdXRvbWVyZ2UiLCJkZXBlbmRlbmNpZXMiLCJrb2RpYWs6IG1lcmdlLm1ldGhvZCA9ICdzcXVhc2gnIl19--> Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[中文版模板 / Chinese template]
🤔 This is a ...
🔗 Related issue link
💡 Background and solution
Listen to
storage
event so that the state can always in sync with theStoage
.close #1433
close #1580
close #2491
close #2516
eg:
📝 Changelog
☑️ Self Check before Merge