# 编辑小工具

命名空间：`core/edit-widgets`。

## 选择器

<!-- START TOKEN(Autogenerated selectors|../../../packages/edit-widgets/src/store/selectors.js) -->

### canInsertBlockInWidgetArea

如果可以将区块插入到小部件区域，则返回 true。

_参数_

-   _state_ `Array`: 小部件区域的打开状态。
-   _blockName_ `string`: 要插入的区块名称。

_返回值_

-   `boolean`: 如果区块可以插入到小部件区域，则为 true。

### getEditedWidgetAreas

返回所有已编辑的小部件区域实体记录。

_返回值_

-   `Object[]`: 已编辑的小部件区域实体记录列表。

### getIsWidgetAreaOpen

获取小部件区域是否已打开。

_参数_

-   _state_ `Array`: 小部件区域的打开状态。
-   _clientId_ `string`: 小部件区域的 clientId。

_返回值_

-   `boolean`: 如果小部件区域已打开，则为 true。

### getParentWidgetAreaBlock

给定一个子客户端 ID，返回父级小部件区域块。

_参数_

-   _clientId_ `string`: 小部件区域中某个块的客户端 ID。

_返回值_

-   `WPBlock`: 小部件区域块。

### getReferenceWidgetBlocks

返回所有表示引用小部件的块。

_参数_

-   _referenceWidgetName_ `string`：可选。如果提供，则仅返回具有此名称的引用小部件。

_返回值_

-   `Array`：表示引用小部件的所有块的列表

### getWidget

返回指定小部件 ID 的 API 小部件数据。

_参数_

-   _id_ `number`: 小部件 ID。

_返回_

-   `Object`: 指定小部件 ID 的 API 小部件数据。

### getWidgetAreaForWidgetId

返回包含给定 widgetId 所标识区块的 widgetArea。

_参数_

-   _widgetId_ `string`: 小部件的 ID。

_返回_

-   `Object`: 包含小部件区域的对象。

### getWidgetAreas

返回所有 API 小部件区域。

_返回_

-   `Object[]`: API 小部件区域列表。

### getWidgets

返回所有 API 小部件。

_返回_

-   `Object[]`: API 小部件列表。

### isInserterOpened

如果插入器已打开，则返回 true。

_参数_

-   _state_ `Object`: 全局应用程序状态。

_返回值_

-   `boolean`: 插入器是否已打开。

### isListViewOpened

如果列表视图已打开，则返回 true。

_参数_

-   _state_ `Object`: 全局应用程序状态。

_返回值_

-   `boolean`: 列表视图是否已打开。

### isSavingWidgetAreas

如果当前有任何小工具区域正在保存，则返回 true。

_返回值_

-   `boolean`: 如果当前有任何小工具区域正在保存，则为 true。否则为 false。

### isWidgetSavingLocked

返回小工具保存是否被锁定。

_用法_

```jsx
import { __ } from '@wordpress/i18n';
import { store as widgetStore } from '@wordpress/edit-widgets';
import { useSelect } from '@wordpress/data';

const ExampleComponent = () => {
	const isSavingLocked = useSelect(
		( select ) => select( widgetStore ).isWidgetSavingLocked(),
		[]
	);

	return isSavingLocked ? (
		<p>{ __( 'Widget saving is locked' ) }</p>
	) : (
		<p>{ __( 'Widget saving is not locked' ) }</p>
	);
};
```

_参数_

-   _state_ `Object`: 全局应用状态。

_返回值_

-   `boolean`: 是否被锁定。

<!-- END TOKEN(Autogenerated selectors|../../../packages/edit-widgets/src/store/selectors.js) -->

## 操作

<!-- START TOKEN(Autogenerated actions|../../../packages/edit-widgets/src/store/actions.js) -->

### closeGeneralSidebar

返回一个操作对象，表示用户关闭了侧边栏。

_返回值_

-   `Object`: 操作创建器。

### lockWidgetSaving

返回一个用于表示小部件保存已锁定的操作对象。

_用法_

```js
import { store as widgetStore } from '@wordpress/edit-widgets';
import { useDispatch } from '@wordpress/data';

const ExampleComponent = () => {
	const { lockWidgetSaving } = useDispatch( widgetStore );
	return (
		<Button onClick={ () => lockWidgetSaving( 'lockName' ) }>
			{ __( 'Lock Widget Saving' ) }
		</Button>
	);
};
```

_参数_

-   _lockName_ `string`: 锁名称。

_返回值_

-   `Object`: 操作对象

### moveBlockToWidgetArea

用于在挂件区域之间移动区块的操作

_参数_

-   _clientId_ `string`: 要移动区块的客户端 ID。
-   _widgetAreaId_ `string`: 要将区块移动到的挂件区域 ID。

### persistStubPost

将具有给定 ID 的存根文章持久化到核心数据存储中。该文章仅存在于内存中，不应通过 API 保存。

_参数_

-   _id_ `string`: 文章 ID。
-   _blocks_ `Array`: 文章应包含的区块。

_返回值_

-   `Object`: 文章对象。

### saveEditedWidgetAreas

将已编辑的小部件区域中的所有区块转换为小部件，并提交批量请求一次性保存所有内容。

无论成功或失败，都会创建一个 Snackbar 通知。

_返回值_

-   `Function`: 一个动作创建器。

### saveWidgetArea

将指定 ID 的小工具区域中的所有区块转换为小工具，并提交批量请求一次性保存所有内容。

_参数_

-   _widgetAreaId_ `string`: 要处理的小工具区域的 ID。

_返回_

-   `Function`: 一个动作创建器。

### saveWidgetAreas

将指定小部件区域中的所有区块转换为小部件，并提交批量请求以一次性保存所有内容。

_参数_

-   _widgetAreas_ `Object[]`: 要保存的小部件区域。

_返回值_

-   `Function`: 一个动作创建器。

### setIsInserterOpened

返回一个用于打开/关闭插入器的操作对象。

_参数_

-   _value_ `boolean|Object`: 插入器应打开 (true) 还是关闭 (false)。要指定插入点，请使用对象。
-   _value.rootClientId_ `string`: 要插入的根客户端 ID。
-   _value.insertionIndex_ `number`: 要插入的索引。

_返回值_

-   `Object`: 操作对象。

### setIsListViewOpened

返回一个用于打开/关闭列表视图的操作对象。

_参数_

-   _isOpen_ `boolean`: 一个布尔值，表示是否应打开列表视图。

_返回值_

-   `Object`: 操作对象。

### setIsWidgetAreaOpen

设置小部件区域的打开状态。

_参数_

-   _clientId_ `string`: 小部件区域的 clientId。
-   _isOpen_ `boolean`: 小部件区域是否应被打开。

_返回值_

-   `Object`: 操作。

### setWidgetAreasOpenState

设置所有小部件区域的展开状态。

_参数_

-   _widgetAreasOpenState_ `Object`：所有小部件区域的展开状态。

_返回值_

-   `Object`：操作。

### setWidgetIdForClientId

设置与特定 widgetId 关联的 clientId。

_参数_

-   _clientId_ `number`: 客户端 ID。
-   _widgetId_ `number`: 组件 ID。

_返回值_

-   `Object`: 操作对象。

### unlockWidgetSaving

返回一个用于表示小部件保存已解锁的操作对象。

_用法_

```js
import { store as widgetStore } from '@wordpress/edit-widgets';
import { useDispatch } from '@wordpress/data';

const ExampleComponent = () => {
	const { unlockWidgetSaving } = useDispatch( widgetStore );
	return (
		<Button onClick={ () => unlockWidgetSaving( 'lockName' ) }>
			{ __( 'Unlock Widget Saving' ) }
		</Button>
	);
};
```

_参数_

-   _lockName_ `string`: 锁名称。

_返回值_

-   `Object`: 操作对象

<!-- END TOKEN(Autogenerated actions|../../../packages/edit-widgets/src/store/actions.js) -->