initial commit

This commit is contained in:
2021-12-10 12:03:04 +00:00
commit c46c7ddbf0
3643 changed files with 582794 additions and 0 deletions

View File

@ -0,0 +1,58 @@
/**
* External dependencies
*/
import { getSetting, STORE_PAGES } from '@woocommerce/settings';
export type WordCountType =
| 'words'
| 'characters_excluding_spaces'
| 'characters_including_spaces';
interface WcBlocksConfig {
buildPhase: number;
pluginUrl: string;
productCount: number;
defaultAvatar: string;
restApiRoutes: Record< string, string[] >;
wordCountType: WordCountType;
}
export const blocksConfig = getSetting( 'wcBlocksConfig', {
buildPhase: 1,
pluginUrl: '',
productCount: 0,
defaultAvatar: '',
restApiRoutes: {},
wordCountType: 'words',
} ) as WcBlocksConfig;
export const WC_BLOCKS_IMAGE_URL = blocksConfig.pluginUrl + 'images/';
export const WC_BLOCKS_BUILD_URL = blocksConfig.pluginUrl + 'build/';
export const WC_BLOCKS_PHASE = blocksConfig.buildPhase;
export const SHOP_URL = STORE_PAGES.shop?.permalink;
export const CHECKOUT_PAGE_ID = STORE_PAGES.checkout.id;
export const CHECKOUT_URL = STORE_PAGES.checkout.permalink;
export const PRIVACY_URL = STORE_PAGES.privacy.permalink;
export const PRIVACY_PAGE_NAME = STORE_PAGES.privacy.title;
export const TERMS_URL = STORE_PAGES.terms.permalink;
export const TERMS_PAGE_NAME = STORE_PAGES.terms.title;
export const CART_PAGE_ID = STORE_PAGES.cart.id;
export const CART_URL = STORE_PAGES.cart.permalink;
export const LOGIN_URL = STORE_PAGES.myaccount.permalink
? STORE_PAGES.myaccount.permalink
: getSetting( 'wpLoginUrl', '/wp-login.php' );
export const SHIPPING_COUNTRIES = getSetting< Record< string, string > >(
'shippingCountries',
{}
);
export const ALLOWED_COUNTRIES = getSetting< Record< string, string > >(
'allowedCountries',
{}
);
export const SHIPPING_STATES = getSetting<
Record< string, Record< string, string > >
>( 'shippingStates', {} );
export const ALLOWED_STATES = getSetting< Record< string, string > >(
'allowedStates',
{}
);

View File

@ -0,0 +1,55 @@
/**
* External dependencies
*/
import {
registerBlockType,
Block,
BlockConfiguration,
} from '@wordpress/blocks';
/**
* Internal dependencies
*/
import { WC_BLOCKS_PHASE } from './constants';
/**
* Registers a new experimental block provided a unique name and an object defining its
* behavior. Once registered, the block is made available as an option to any
* editor interface where blocks are implemented.
*/
export const registerExperimentalBlockType = (
blockNameOrMetadata: string | BlockConfiguration,
settings: Record< string, unknown >
): Block | undefined => {
if ( WC_BLOCKS_PHASE > 2 ) {
return registerBlockType( blockNameOrMetadata, settings );
}
};
/**
* Registers a new feature plugin block provided a unique name and an object
* defining its behavior. Once registered, the block is made available as an
* option to any editor interface where blocks are implemented.
*/
export const registerFeaturePluginBlockType = (
blockNameOrMetadata: string | BlockConfiguration,
settings: Record< string, unknown >
): Block | undefined => {
if ( WC_BLOCKS_PHASE > 1 ) {
return registerBlockType( blockNameOrMetadata, settings );
}
};
/**
* Checks if we're executing the code in an experimental build mode.
*
* @return {boolean} True if this is an experimental build, false otherwise.
*/
export const isExperimentalBuild = (): boolean => WC_BLOCKS_PHASE > 2;
/**
* Checks if we're executing the code in an feature plugin or experimental build mode.
*
* @return {boolean} True if this is an experimental or feature plugin build, false otherwise.
*/
export const isFeaturePluginBuild = (): boolean => WC_BLOCKS_PHASE > 1;

View File

@ -0,0 +1,5 @@
/**
* Internal dependencies
*/
export * from './constants';
export * from './feature-flags';