From de2cdfad788f28b4221860a681f9fbd438fef12e Mon Sep 17 00:00:00 2001 From: Toberumono Date: Thu, 26 Feb 2026 10:47:00 -0600 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=A4=96=20Merge=20PR=20#74592=20[@word?= =?UTF-8?q?press/blocks]=20Updating=20the=20Store=20object=20to=20match=20?= =?UTF-8?q?official=20maintainer=20commentary=20by=20@Toberumono?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- types/wordpress__blocks/index.d.ts | 11 ++++++-- .../wordpress__blocks-tests.tsx | 25 +++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/types/wordpress__blocks/index.d.ts b/types/wordpress__blocks/index.d.ts index 51601c1e9c26b8..8416285e8b0f67 100644 --- a/types/wordpress__blocks/index.d.ts +++ b/types/wordpress__blocks/index.d.ts @@ -1,5 +1,5 @@ import { IconType } from "@wordpress/components"; -import { StoreDescriptor } from "@wordpress/data"; +import { ReduxStoreConfig, StoreDescriptor } from "@wordpress/data"; import { ShortcodeMatch } from "@wordpress/shortcode"; import { ComponentType, ReactElement } from "react"; @@ -7,11 +7,18 @@ export * from "./api"; export { withBlockContentContext } from "./block-content-provider"; declare module "@wordpress/data" { + /** + * @deprecated Use the version that takes a store descriptor object instead + */ function dispatch(key: "core/blocks"): typeof import("./store/actions"); + /** + * @deprecated Use the version that takes a store descriptor object instead + */ function select(key: "core/blocks"): typeof import("./store/selectors"); } -export interface BlocksStoreDescriptor extends StoreDescriptor { +type Decurry any}> = { [key in keyof S]: (state: any, ...args: Parameters) => ReturnType }; +export interface BlocksStoreDescriptor extends StoreDescriptor>> { name: "core/blocks"; } diff --git a/types/wordpress__blocks/wordpress__blocks-tests.tsx b/types/wordpress__blocks/wordpress__blocks-tests.tsx index b9863663530dba..2d1ce9a7291c60 100644 --- a/types/wordpress__blocks/wordpress__blocks-tests.tsx +++ b/types/wordpress__blocks/wordpress__blocks-tests.tsx @@ -721,3 +721,28 @@ dispatch("core/blocks").addBlockStyles("my/foo", { name: "foo__bar", label: "Foo // $ExpectType void dispatch("core/blocks").setDefaultBlockName("my/foo"); + +// +// store objects +// ---------------------------------------------------------------------------- + +// $ExpectType readonly BlockStyle[] | undefined +select(blocks.store).getBlockStyles("my/foo"); + +// $ExpectType string | undefined +select(blocks.store).getFreeformFallbackBlockName(); + +// $ExpectType string | undefined +select(blocks.store).getUnregisteredFallbackBlockName(); + +// $ExpectType boolean +select(blocks.store).isMatchingSearchTerm("my/foo", "foo"); + +// $ExpectType boolean +select(blocks.store).isMatchingSearchTerm(BLOCK, "foo"); + +// $ExpectType Promise +dispatch(blocks.store).addBlockStyles("my/foo", { name: "foo__bar", label: "Foobar" }); + +// $ExpectType Promise +dispatch(blocks.store).setDefaultBlockName("my/foo"); From 71239f0836e756876534167b9e7dfe16b3c41585 Mon Sep 17 00:00:00 2001 From: TypeScript Bot Date: Thu, 26 Feb 2026 16:47:45 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=A4=96=20dprint=20fmt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- types/wordpress__blocks/index.d.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/types/wordpress__blocks/index.d.ts b/types/wordpress__blocks/index.d.ts index 8416285e8b0f67..81f08d541a174d 100644 --- a/types/wordpress__blocks/index.d.ts +++ b/types/wordpress__blocks/index.d.ts @@ -17,8 +17,14 @@ declare module "@wordpress/data" { function select(key: "core/blocks"): typeof import("./store/selectors"); } -type Decurry any}> = { [key in keyof S]: (state: any, ...args: Parameters) => ReturnType }; -export interface BlocksStoreDescriptor extends StoreDescriptor>> { +type Decurry any }> = { + [key in keyof S]: (state: any, ...args: Parameters) => ReturnType; +}; +export interface BlocksStoreDescriptor extends + StoreDescriptor< + ReduxStoreConfig> + > +{ name: "core/blocks"; }