dispatch( connectedSitesActions.openModal() ) }
+ connectSite={ () => {
+ if ( ! isFetching ) {
+ dispatch( connectedSitesActions.openModal() );
+ }
+ } }
disableConnectButtonStyle={ true }
+ isBusy={ isFetching }
>
{ __( 'Connect another site' ) }
@@ -171,8 +177,13 @@ export function ContentTabSync( { selectedSite }: { selectedSite: SiteDetails }
dispatch( connectedSitesActions.openModal() ) }
+ connectSite={ () => {
+ if ( ! isFetching ) {
+ dispatch( connectedSitesActions.openModal() );
+ }
+ } }
disableConnectButtonStyle={ true }
+ isBusy={ isFetching }
>
{ __( 'Connect site' ) }
@@ -180,32 +191,39 @@ export function ContentTabSync( { selectedSite }: { selectedSite: SiteDetails }
) }
- { isModalOpen && (
- dispatch( connectedSitesActions.closeModal() ) }
- syncSites={ syncSites }
- onInitialRender={ refetchSites }
- onConnect={ async ( siteId ) => {
- const disconnectSiteId =
- typeof isModalOpen === 'object' ? isModalOpen.disconnectSiteId : undefined;
+ { isModalOpen && ! isFetching && (
+ <>
+ { syncSites.length === 0 ? (
+ dispatch( connectedSitesActions.closeModal() ) }
+ selectedSite={ selectedSite }
+ />
+ ) : (
+ dispatch( connectedSitesActions.closeModal() ) }
+ syncSites={ syncSites }
+ onConnect={ async ( siteId ) => {
+ const disconnectSiteId =
+ typeof isModalOpen === 'object' ? isModalOpen.disconnectSiteId : undefined;
- if ( disconnectSiteId ) {
- await disconnectSite( disconnectSiteId );
- }
+ if ( disconnectSiteId ) {
+ await disconnectSite( disconnectSiteId );
+ }
- const newConnectedSite = syncSites.find( ( site ) => site.id === siteId );
- if ( ! newConnectedSite ) {
- getIpcApi().showErrorMessageBox( {
- title: __( 'Failed to connect to site' ),
- message: __( 'Please try again.' ),
- } );
- return;
- }
- void handleConnect( newConnectedSite );
- } }
- selectedSite={ selectedSite }
- />
+ const newConnectedSite = syncSites.find( ( site ) => site.id === siteId );
+ if ( ! newConnectedSite ) {
+ getIpcApi().showErrorMessageBox( {
+ title: __( 'Failed to connect to site' ),
+ message: __( 'Please try again.' ),
+ } );
+ return;
+ }
+ void handleConnect( newConnectedSite );
+ } }
+ selectedSite={ selectedSite }
+ />
+ ) }
+ >
) }
);