Skip to content

Commit a951b43

Browse files
Merge b0605c8 into e2a0363
2 parents e2a0363 + b0605c8 commit a951b43

3 files changed

Lines changed: 27 additions & 34 deletions

File tree

‎src/components/publish-site-button.tsx‎

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,15 @@ import { useI18n } from '@wordpress/react-i18n';
33
import { useCallback } from 'react';
44
import { useSyncSites } from 'src/hooks/sync-sites';
55
import { useAuth } from 'src/hooks/use-auth';
6-
import { useContentTabs } from 'src/hooks/use-content-tabs';
76
import { useSiteDetails } from 'src/hooks/use-site-details';
7+
import { generateCheckoutUrl } from 'src/lib/generate-checkout-url';
8+
import { getIpcApi } from 'src/lib/get-ipc-api';
89
import { ConnectButton } from 'src/modules/sync/components/connect-button';
9-
import { useAppDispatch } from 'src/stores';
10-
import {
11-
connectedSitesActions,
12-
useGetConnectedSitesForLocalSiteQuery,
13-
} from 'src/stores/sync/connected-sites';
10+
import { useGetConnectedSitesForLocalSiteQuery } from 'src/stores/sync/connected-sites';
1411

1512
export const PublishSiteButton = () => {
1613
const { __ } = useI18n();
17-
const dispatch = useAppDispatch();
18-
const { setSelectedTab } = useContentTabs();
19-
const { user, authenticate } = useAuth();
14+
const { user } = useAuth();
2015
const { selectedSite } = useSiteDetails();
2116
const { data: connectedSites = [] } = useGetConnectedSitesForLocalSiteQuery( {
2217
localSiteId: selectedSite?.id,
@@ -26,12 +21,8 @@ export const PublishSiteButton = () => {
2621
const isAnySiteSyncing = isAnySitePulling || isAnySitePushing;
2722

2823
const handlePublishClick = useCallback( () => {
29-
if ( ! user ) {
30-
authenticate();
31-
}
32-
dispatch( connectedSitesActions.openModal( 'push' ) );
33-
setSelectedTab( 'sync' );
34-
}, [ user, setSelectedTab, dispatch, authenticate ] );
24+
getIpcApi().openURL( generateCheckoutUrl( selectedSite ?? undefined ) );
25+
}, [ selectedSite ] );
3526

3627
if ( connectedSites.length !== 0 ) return null;
3728

‎src/lib/generate-checkout-url.ts‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { DEFAULT_CUSTOM_DOMAIN_SUFFIX } from 'common/constants';
2+
3+
export function generateCheckoutUrl( selectedSite?: SiteDetails ): string {
4+
const url = new URL(
5+
'https://wordpress.com/setup/new-hosted-site?ref=studio&section=studio-sync&showDomainStep'
6+
);
7+
8+
if ( ! selectedSite ) {
9+
return url.toString();
10+
}
11+
12+
const suggestedName = selectedSite.customDomain
13+
? selectedSite.customDomain.replace( DEFAULT_CUSTOM_DOMAIN_SUFFIX, '' )
14+
: selectedSite.name;
15+
16+
url.searchParams.set( 'studioSiteId', String( selectedSite.id ) );
17+
url.searchParams.set( 'new', suggestedName );
18+
19+
return url.toString();
20+
}

‎src/modules/sync/components/create-button.tsx‎

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import { __ } from '@wordpress/i18n';
2-
import { DEFAULT_CUSTOM_DOMAIN_SUFFIX } from 'common/constants';
32
import { ArrowIcon } from 'src/components/arrow-icon';
43
import Button, { ButtonVariant } from 'src/components/button';
54
import offlineIcon from 'src/components/offline-icon';
65
import { Tooltip } from 'src/components/tooltip';
76
import { useOffline } from 'src/hooks/use-offline';
87
import { cx } from 'src/lib/cx';
8+
import { generateCheckoutUrl } from 'src/lib/generate-checkout-url';
99
import { getIpcApi } from 'src/lib/get-ipc-api';
1010

1111
interface CreateButtonProps {
@@ -24,24 +24,6 @@ export const CreateButton = ( {
2424
onClick,
2525
}: CreateButtonProps ) => {
2626
const isOffline = useOffline();
27-
function generateCheckoutUrl( selectedSite?: SiteDetails ): string {
28-
const url = new URL(
29-
'https://wordpress.com/setup/new-hosted-site?ref=studio&section=studio-sync&showDomainStep'
30-
);
31-
32-
if ( ! selectedSite ) {
33-
return url.toString();
34-
}
35-
36-
const suggestedName = selectedSite.customDomain
37-
? selectedSite.customDomain.replace( DEFAULT_CUSTOM_DOMAIN_SUFFIX, '' )
38-
: selectedSite.name;
39-
40-
url.searchParams.set( 'studioSiteId', String( selectedSite.id ) );
41-
url.searchParams.set( 'new', suggestedName );
42-
43-
return url.toString();
44-
}
4527

4628
return (
4729
<Tooltip

0 commit comments

Comments
 (0)