Mini Cart block > Update block registration to rely on a metadata file. (https://github.com/woocommerce/woocommerce-blocks/pull/10168)
* Introduce the block.json file for the mini-cart block. * Update the index.tsx file to use the new metadata file for registering the mini cart.
This commit is contained in:
parent
2efe99126f
commit
64405c7a43
|
@ -0,0 +1,70 @@
|
||||||
|
{
|
||||||
|
"name": "woocommerce/mini-cart",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"title": "Mini-Cart",
|
||||||
|
"icon": "miniCartAlt",
|
||||||
|
"description": "Display a button for shoppers to quickly view their cart.",
|
||||||
|
"category": "woocommerce",
|
||||||
|
"keywords": [ "WooCommerce" ],
|
||||||
|
"textdomain": "woo-gutenberg-products-block",
|
||||||
|
"providesContext": {
|
||||||
|
"priceColorValue": "priceColorValue",
|
||||||
|
"iconColorValue": "iconColorValue",
|
||||||
|
"productCountColorValue": "productCountColorValue"
|
||||||
|
},
|
||||||
|
"supports": {
|
||||||
|
"html": false,
|
||||||
|
"multiple": false,
|
||||||
|
"typography": {
|
||||||
|
"fontSize": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"example": {
|
||||||
|
"attributes": {
|
||||||
|
"isPreview": true,
|
||||||
|
"className": "wc-block-mini-cart--preview"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"attributes": {
|
||||||
|
"isPreview": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"miniCartIcon": {
|
||||||
|
"type": "string",
|
||||||
|
"default": "cart"
|
||||||
|
},
|
||||||
|
"addToCartBehaviour": {
|
||||||
|
"type": "string",
|
||||||
|
"default": "none"
|
||||||
|
},
|
||||||
|
"hasHiddenPrice": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"cartAndCheckoutRenderStyle": {
|
||||||
|
"type": "string",
|
||||||
|
"default": "hidden"
|
||||||
|
},
|
||||||
|
"priceColor": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"priceColorValue": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"iconColor": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"iconColorValue": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"productCountColor": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"productCountColorValue": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"apiVersion": 2,
|
||||||
|
"$schema": "https://schemas.wp.org/trunk/block.json"
|
||||||
|
}
|
|
@ -1,22 +1,30 @@
|
||||||
/**
|
/**
|
||||||
* External dependencies
|
* External dependencies
|
||||||
*/
|
*/
|
||||||
import { __ } from '@wordpress/i18n';
|
|
||||||
import { miniCartAlt } from '@woocommerce/icons';
|
import { miniCartAlt } from '@woocommerce/icons';
|
||||||
import { Icon } from '@wordpress/icons';
|
import { Icon } from '@wordpress/icons';
|
||||||
import { registerBlockType } from '@wordpress/blocks';
|
import { registerBlockType } from '@wordpress/blocks';
|
||||||
import type { BlockConfiguration } from '@wordpress/blocks';
|
|
||||||
import { isFeaturePluginBuild } from '@woocommerce/block-settings';
|
import { isFeaturePluginBuild } from '@woocommerce/block-settings';
|
||||||
import { addFilter } from '@wordpress/hooks';
|
import { addFilter } from '@wordpress/hooks';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Internal dependencies
|
* Internal dependencies
|
||||||
*/
|
*/
|
||||||
|
import metadata from './block.json';
|
||||||
import edit from './edit';
|
import edit from './edit';
|
||||||
|
import './style.scss';
|
||||||
|
|
||||||
const settings: BlockConfiguration = {
|
const featurePluginSupport = {
|
||||||
apiVersion: 2,
|
...metadata.supports,
|
||||||
title: __( 'Mini-Cart', 'woo-gutenberg-products-block' ),
|
...( isFeaturePluginBuild() && {
|
||||||
|
typography: {
|
||||||
|
...metadata.supports.typography,
|
||||||
|
__experimentalFontFamily: true,
|
||||||
|
__experimentalFontWeight: true,
|
||||||
|
},
|
||||||
|
} ),
|
||||||
|
};
|
||||||
|
|
||||||
|
registerBlockType( metadata, {
|
||||||
icon: {
|
icon: {
|
||||||
src: (
|
src: (
|
||||||
<Icon
|
<Icon
|
||||||
|
@ -25,81 +33,23 @@ const settings: BlockConfiguration = {
|
||||||
/>
|
/>
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
category: 'woocommerce',
|
|
||||||
keywords: [ __( 'WooCommerce', 'woo-gutenberg-products-block' ) ],
|
|
||||||
description: __(
|
|
||||||
'Display a button for shoppers to quickly view their cart.',
|
|
||||||
'woo-gutenberg-products-block'
|
|
||||||
),
|
|
||||||
providesContext: {
|
providesContext: {
|
||||||
priceColorValue: 'priceColorValue',
|
...metadata.providesContext,
|
||||||
iconColorValue: 'iconColorValue',
|
|
||||||
productCountColorValue: 'productCountColorValue',
|
|
||||||
},
|
},
|
||||||
supports: {
|
supports: {
|
||||||
html: false,
|
...featurePluginSupport,
|
||||||
multiple: false,
|
|
||||||
typography: {
|
|
||||||
fontSize: true,
|
|
||||||
...( isFeaturePluginBuild() && {
|
|
||||||
__experimentalFontFamily: true,
|
|
||||||
__experimentalFontWeight: true,
|
|
||||||
} ),
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
example: {
|
example: {
|
||||||
attributes: {
|
...metadata.example,
|
||||||
isPreview: true,
|
|
||||||
className: 'wc-block-mini-cart--preview',
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
attributes: {
|
attributes: {
|
||||||
isPreview: {
|
...metadata.attributes,
|
||||||
type: 'boolean',
|
|
||||||
default: false,
|
|
||||||
},
|
|
||||||
miniCartIcon: {
|
|
||||||
type: 'string',
|
|
||||||
default: 'cart',
|
|
||||||
},
|
|
||||||
addToCartBehaviour: {
|
|
||||||
type: 'string',
|
|
||||||
default: 'none',
|
|
||||||
},
|
|
||||||
hasHiddenPrice: {
|
|
||||||
type: 'boolean',
|
|
||||||
default: false,
|
|
||||||
},
|
|
||||||
cartAndCheckoutRenderStyle: {
|
|
||||||
type: 'string',
|
|
||||||
default: 'hidden',
|
|
||||||
},
|
|
||||||
priceColor: {
|
|
||||||
type: 'string',
|
|
||||||
},
|
|
||||||
priceColorValue: {
|
|
||||||
type: 'string',
|
|
||||||
},
|
|
||||||
iconColor: {
|
|
||||||
type: 'string',
|
|
||||||
},
|
|
||||||
iconColorValue: {
|
|
||||||
type: 'string',
|
|
||||||
},
|
|
||||||
productCountColor: {
|
|
||||||
type: 'string',
|
|
||||||
},
|
|
||||||
productCountColorValue: {
|
|
||||||
type: 'string',
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
edit,
|
edit,
|
||||||
save() {
|
save() {
|
||||||
return null;
|
return null;
|
||||||
},
|
},
|
||||||
};
|
} );
|
||||||
|
|
||||||
registerBlockType( 'woocommerce/mini-cart', settings );
|
|
||||||
|
|
||||||
// Remove the Mini Cart template part from the block inserter.
|
// Remove the Mini Cart template part from the block inserter.
|
||||||
addFilter(
|
addFilter(
|
||||||
|
|
Loading…
Reference in New Issue