/** * WordPress dependencies */ import { PanelBody } from '@safe-wordpress/components'; import { useSelect } from '@safe-wordpress/data'; import { _x } from '@safe-wordpress/i18n'; /** * External dependencies */ import { store as NAB_EXPERIMENTS } from '@nab/experiments'; /** * Internal dependencies */ import './style.scss'; import { CustomUrlScope } from './custom-url-scope'; import { TestedUrlWithQueryArgsScope } from './tested-url-with-query-args-scope'; import { useExperimentAttribute } from '../../hooks'; import { UrlsOrPhpScope } from './urls-or-php-scope'; export const Scope = (): JSX.Element | null => { const scopeSupport = useScopeSupport(); const testAgainstExistingContent = useTestAgainstExistingContent(); if ( ! scopeSupport ) { return null; } if ( testAgainstExistingContent ) { return null; } switch ( scopeSupport ) { case 'tested-url-with-query-args': return ; case 'urls-or-php': return ( ); case 'urls': case 'urls-with-tested-post': case 'tested-post-with-consistency': case 'tested-product-with-consistency': return ( ); } }; // ===== // HOOKS // ===== const useScopeSupport = () => { const type = useExperimentAttribute( 'type' ) ?? ''; return useSelect( ( select ) => select( NAB_EXPERIMENTS ).getExperimentSupport( type, 'scope' ), [ type ] ); }; const useTestAgainstExistingContent = () => { const alts = useExperimentAttribute( 'alternatives' ) ?? []; const control = alts[ 0 ]; return !! control?.attributes?.testAgainstExistingContent; };