55 lines
1.4 KiB
JavaScript
55 lines
1.4 KiB
JavaScript
/**
|
|
* External dependencies
|
|
*/
|
|
import { useSelect } from '@wordpress/data';
|
|
import { OPTIONS_STORE_NAME } from '@woocommerce/data';
|
|
|
|
export const useLaunchYourStore = () => {
|
|
const {
|
|
isLoading,
|
|
launchStatus,
|
|
launchYourStoreEnabled,
|
|
comingSoon,
|
|
storePagesOnly,
|
|
privateLink,
|
|
shareKey,
|
|
} = useSelect( ( select ) => {
|
|
const { hasFinishedResolution, getOption } =
|
|
select( OPTIONS_STORE_NAME );
|
|
|
|
const allOptionResolutionsFinished =
|
|
! hasFinishedResolution( 'getOption', [ 'launch-status' ] ) &&
|
|
! hasFinishedResolution( 'getOption', [
|
|
'woocommerce_coming_soon',
|
|
] ) &&
|
|
! hasFinishedResolution( 'getOption', [
|
|
'woocommerce_store_pages_only',
|
|
] ) &&
|
|
! hasFinishedResolution( 'getOption', [
|
|
'woocommerce_private_link',
|
|
] ) &&
|
|
! hasFinishedResolution( 'getOption', [ 'woocommerce_share_key' ] );
|
|
|
|
return {
|
|
isLoading: allOptionResolutionsFinished,
|
|
launchStatus: getOption( 'launch-status' ),
|
|
comingSoon: getOption( 'woocommerce_coming_soon' ),
|
|
storePagesOnly: getOption( 'woocommerce_store_pages_only' ),
|
|
privateLink: getOption( 'woocommerce_private_link' ),
|
|
shareKey: getOption( 'woocommerce_share_key' ),
|
|
launchYourStoreEnabled:
|
|
window.wcAdminFeatures[ 'launch-your-store' ],
|
|
};
|
|
} );
|
|
|
|
return {
|
|
isLoading,
|
|
comingSoon,
|
|
storePagesOnly,
|
|
privateLink,
|
|
shareKey,
|
|
launchStatus,
|
|
launchYourStoreEnabled,
|
|
};
|
|
};
|