@wordpress/blocks
Version:
Block API for WordPress.
221 lines (206 loc) • 5.14 kB
JavaScript
/**
* External dependencies
*/
import { castArray } from 'lodash';
/** @typedef {import('../api/registration').WPBlockVariation} WPBlockVariation */
/**
* Returns an action object used in signalling that block types have been added.
*
* @param {Array|Object} blockTypes Block types received.
*
* @return {Object} Action object.
*/
export function addBlockTypes(blockTypes) {
return {
type: 'ADD_BLOCK_TYPES',
blockTypes: castArray(blockTypes)
};
}
/**
* Returns an action object used to remove a registered block type.
*
* @param {string|Array} names Block name.
*
* @return {Object} Action object.
*/
export function removeBlockTypes(names) {
return {
type: 'REMOVE_BLOCK_TYPES',
names: castArray(names)
};
}
/**
* Returns an action object used in signalling that new block styles have been added.
*
* @param {string} blockName Block name.
* @param {Array|Object} styles Block styles.
*
* @return {Object} Action object.
*/
export function addBlockStyles(blockName, styles) {
return {
type: 'ADD_BLOCK_STYLES',
styles: castArray(styles),
blockName
};
}
/**
* Returns an action object used in signalling that block styles have been removed.
*
* @param {string} blockName Block name.
* @param {Array|string} styleNames Block style names.
*
* @return {Object} Action object.
*/
export function removeBlockStyles(blockName, styleNames) {
return {
type: 'REMOVE_BLOCK_STYLES',
styleNames: castArray(styleNames),
blockName
};
}
/**
* Returns an action object used in signalling that new block variations have been added.
*
* @param {string} blockName Block name.
* @param {WPBlockVariation|WPBlockVariation[]} variations Block variations.
*
* @return {Object} Action object.
*/
export function addBlockVariations(blockName, variations) {
return {
type: 'ADD_BLOCK_VARIATIONS',
variations: castArray(variations),
blockName
};
}
/**
* Returns an action object used in signalling that block variations have been removed.
*
* @param {string} blockName Block name.
* @param {string|string[]} variationNames Block variation names.
*
* @return {Object} Action object.
*/
export function removeBlockVariations(blockName, variationNames) {
return {
type: 'REMOVE_BLOCK_VARIATIONS',
variationNames: castArray(variationNames),
blockName
};
}
/**
* Returns an action object used to set the default block name.
*
* @param {string} name Block name.
*
* @return {Object} Action object.
*/
export function setDefaultBlockName(name) {
return {
type: 'SET_DEFAULT_BLOCK_NAME',
name
};
}
/**
* Returns an action object used to set the name of the block used as a fallback
* for non-block content.
*
* @param {string} name Block name.
*
* @return {Object} Action object.
*/
export function setFreeformFallbackBlockName(name) {
return {
type: 'SET_FREEFORM_FALLBACK_BLOCK_NAME',
name
};
}
/**
* Returns an action object used to set the name of the block used as a fallback
* for unregistered blocks.
*
* @param {string} name Block name.
*
* @return {Object} Action object.
*/
export function setUnregisteredFallbackBlockName(name) {
return {
type: 'SET_UNREGISTERED_FALLBACK_BLOCK_NAME',
name
};
}
/**
* Returns an action object used to set the name of the block used
* when grouping other blocks
* eg: in "Group/Ungroup" interactions
*
* @param {string} name Block name.
*
* @return {Object} Action object.
*/
export function setGroupingBlockName(name) {
return {
type: 'SET_GROUPING_BLOCK_NAME',
name
};
}
/**
* Returns an action object used to set block categories.
*
* @param {Object[]} categories Block categories.
*
* @return {Object} Action object.
*/
export function setCategories(categories) {
return {
type: 'SET_CATEGORIES',
categories
};
}
/**
* Returns an action object used to update a category.
*
* @param {string} slug Block category slug.
* @param {Object} category Object containing the category properties that should be updated.
*
* @return {Object} Action object.
*/
export function updateCategory(slug, category) {
return {
type: 'UPDATE_CATEGORY',
slug,
category
};
}
/**
* Returns an action object used to add block collections
*
* @param {string} namespace The namespace of the blocks to put in the collection
* @param {string} title The title to display in the block inserter
* @param {Object} icon (optional) The icon to display in the block inserter
*
* @return {Object} Action object.
*/
export function addBlockCollection(namespace, title, icon) {
return {
type: 'ADD_BLOCK_COLLECTION',
namespace,
title,
icon
};
}
/**
* Returns an action object used to remove block collections
*
* @param {string} namespace The namespace of the blocks to put in the collection
*
* @return {Object} Action object.
*/
export function removeBlockCollection(namespace) {
return {
type: 'REMOVE_BLOCK_COLLECTION',
namespace
};
}
//# sourceMappingURL=actions.js.map