import { __ } from '@wordpress/i18n'; import useGSCData from '@/hooks/useGSCData'; import useSettingsData from '@/hooks/useSettingsData'; import DataTableBlock from '@/components/Statistics/DataTableBlock'; import { Block } from '@/components/Blocks/Block'; import { BlockHeading } from '@/components/Blocks/BlockHeading'; import { BlockContent } from '@/components/Blocks/BlockContent'; import OverlayBlock from '@/components/Upsell/OverlayBlock'; import ActivationCopy from '@/components/Upsell/ActivationCopy'; /** * Top Google Search Console queries for the auto-matched property. * * The block is always visible so the feature stays discoverable. When the * integration is not connected it shows an activation overlay pointing to the * Search Console settings tab (where the toggle and connect flow live). Once * connected it shows the queries table for the property matching home_url(), a * notice when no property matches this site's URL, or a brief checking state * while the match resolves. * * @return {JSX.Element} The rendered block. */ const SearchConsoleBlock = (): JSX.Element => { const { status, propertyStatus } = useGSCData(); const { getValue } = useSettingsData(); const enabled = !! getValue( 'enable_search_console' ); // Connected and a matching property was found → show the queries table. if ( 'connected' === status && 'matched' === propertyStatus ) { return ( ); } // Connected, but the property match is still resolving or nothing matched. if ( 'connected' === status ) { const message = 'none' === propertyStatus ? __( 'No sites have been found that match the current URL (with or without www). Make sure this site is added as a property in Google Search Console under the same Google account.', 'burst-statistics' ) : __( 'Checking your Google Search Console properties…', 'burst-statistics' ); return (

{ message }

); } // Not connected: the toggle is off, or it is on but not yet connected / // needs reconnecting. Show an activation overlay that routes to settings. return ( ); }; export default SearchConsoleBlock;