/**
* External dependencies
*/
import { Notice } from '@wordpress/components';
import { __ } from '@wordpress/i18n';
/**
* Internal dependencies
*/
import { GOOGLE_ADS_ACCOUNT_STATUS } from '~/constants';
import SpinnerCard from '~/components/spinner-card';
import useGoogleAccount from '~/hooks/useGoogleAccount';
import useGoogleAdsAccount from '~/hooks/useGoogleAdsAccount';
import ConnectedGoogleAdsAccountCard from './connected-google-ads-account-card';
import NonConnected from './non-connected';
import AuthorizeAds from './authorize-ads';
import DisabledCard from './disabled-card';
import useGoogleAdsAccountStatus from '~/hooks/useGoogleAdsAccountStatus';
import showAdsConversionNotice from '~/utils/showAdsConversionNotice';
export default function GoogleAdsAccountCard() {
const {
google,
scope,
hasFinishedResolution: hasResolvedGoogleAccount,
} = useGoogleAccount();
const {
googleAdsAccount,
hasFinishedResolution: hasResolvedGoogleAdsAccount,
} = useGoogleAdsAccount();
const {
hasAccess,
step,
hasFinishedResolution: hasResolvedAdsAccountStatus,
} = useGoogleAdsAccountStatus();
if (
! hasResolvedGoogleAccount ||
! hasResolvedGoogleAdsAccount ||
! hasResolvedAdsAccountStatus ||
googleAdsAccount === null // Catch errors retrieving accounts.
) {
return ;
}
if ( ! google || google.active === 'no' ) {
return ;
}
if ( ! scope.adsRequired ) {
return ;
}
if (
googleAdsAccount.status === GOOGLE_ADS_ACCOUNT_STATUS.DISCONNECTED ||
hasAccess !== true ||
( hasAccess === true && step === 'conversion_action' )
) {
return ;
}
const showSuccessNotice = showAdsConversionNotice( googleAdsAccount );
return (
{ showSuccessNotice ? (
{ __(
'Conversion measurement has been set up. You can create a campaign later.',
'google-listings-and-ads'
) }
) : null }
);
}