Skip to content

Commit 9eed548

Browse files
committed
Update flags in components
1 parent 3a346a8 commit 9eed548

23 files changed

+100
-47
lines changed

client/sites/settings/administration/controller.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,9 @@ export function redirectIfCantStartSiteOwnerTransfer( context: PageJSContext, ne
5252
next();
5353
}
5454

55-
function redirectToAdministration( siteSlug: string | null ) {
56-
return isSiteSettingsUntangled()
55+
async function redirectToAdministration( siteSlug: string | null ) {
56+
const isUntangled = await isSiteSettingsUntangled();
57+
return isUntangled
5758
? page.redirect( '/sites/settings/site/' + siteSlug )
5859
: page.redirect( '/settings/general/' + siteSlug );
5960
}

client/sites/settings/administration/tools/card.jsx

+4-2
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@ import { Button } from '@automattic/components';
22
import clsx from 'clsx';
33
import { PanelCard, PanelCardDescription, PanelCardHeading } from 'calypso/components/panel';
44
import SiteToolsLink from 'calypso/my-sites/site-settings/site-tools/link';
5-
import { isSiteSettingsUntangled } from '../../utils';
5+
import { useIsSiteSettingsUntangled } from '../../hooks/use-is-site-settings-untangled';
66

77
export default function AdministrationToolCard( props ) {
88
const { description, href, isWarning, onClick, title } = props;
99

10-
if ( ! isSiteSettingsUntangled() ) {
10+
const isUntangled = useIsSiteSettingsUntangled();
11+
12+
if ( ! isUntangled ) {
1113
return <SiteToolsLink { ...props } />;
1214
}
1315

client/sites/settings/administration/tools/delete-site/delete-site-warnings.jsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ import { useTranslate } from 'i18n-calypso';
33
import PropTypes from 'prop-types';
44
import { PanelCard, PanelCardHeading } from 'calypso/components/panel';
55
import { purchasesRoot } from 'calypso/me/purchases/paths';
6-
import { isSiteSettingsUntangled } from '../../../utils';
6+
import { useIsSiteSettingsUntangled } from 'calypso/sites/settings/hooks/use-is-site-settings-untangled';
77

88
function DeleteSiteWarnings( { p2HubP2Count, isAtomicRemovalInProgress, isTrialSite = false } ) {
99
const translate = useTranslate();
10-
const isUntangled = isSiteSettingsUntangled();
10+
const isUntangled = useIsSiteSettingsUntangled();
1111

1212
const getButtons = () => {
1313
if ( isAtomicRemovalInProgress ) {

client/sites/settings/administration/tools/delete-site/index.jsx

+12-2
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ class DeleteSite extends Component {
4646
state = {
4747
confirmDomain: '',
4848
isDeletingSite: false,
49+
isUntangled: false,
4950
};
5051

5152
renderNotice() {
@@ -169,8 +170,9 @@ class DeleteSite extends Component {
169170
};
170171

171172
_goBack = () => {
173+
const { isUntangled } = this.state;
172174
const { siteSlug } = this.props;
173-
const source = isSiteSettingsUntangled() ? '/sites/settings/site' : getSettingsSource();
175+
const source = isUntangled ? '/sites/settings/site' : getSettingsSource();
174176

175177
page( `${ source }/${ siteSlug }` );
176178
};
@@ -188,6 +190,14 @@ class DeleteSite extends Component {
188190
}
189191
}
190192

193+
componentDidMount() {
194+
isSiteSettingsUntangled().then( ( isUntangled ) => {
195+
if ( this.state.isUntangled !== isUntangled ) {
196+
this.setState( { isUntangled } );
197+
}
198+
} );
199+
}
200+
191201
_checkSiteLoaded = ( event ) => {
192202
const { siteId } = this.props;
193203
if ( ! siteId ) {
@@ -202,6 +212,7 @@ class DeleteSite extends Component {
202212
};
203213

204214
render() {
215+
const { isUntangled } = this.state;
205216
const { isAtomic, isFreePlan, siteId, hasCancelablePurchases, p2HubP2Count } = this.props;
206217
const isAtomicRemovalInProgress = isFreePlan && isAtomic;
207218
const canDeleteSite =
@@ -212,7 +223,6 @@ class DeleteSite extends Component {
212223
exportContent: translate( 'Export content' ),
213224
exportContentFirst: translate( 'Export content first' ),
214225
};
215-
const isUntangled = isSiteSettingsUntangled();
216226

217227
return (
218228
<Panel className="settings-administration__delete-site">

client/sites/settings/administration/tools/index.jsx

+13-1
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,24 @@ const trackDeleteSiteOption = ( option ) => {
3333
};
3434

3535
class SiteTools extends Component {
36+
state = {
37+
isUntangled: false,
38+
};
39+
3640
componentDidUpdate( prevProps ) {
3741
if ( ! prevProps.purchasesError && this.props.purchasesError ) {
3842
this.props.errorNotice( this.props.purchasesError );
3943
}
4044
}
4145

46+
componentDidMount() {
47+
isSiteSettingsUntangled().then( ( isUntangled ) => {
48+
if ( this.state.isUntangled !== isUntangled ) {
49+
this.setState( { isUntangled } );
50+
}
51+
} );
52+
}
53+
4254
render() {
4355
const {
4456
shouldShowSiteCopyItem,
@@ -59,7 +71,7 @@ class SiteTools extends Component {
5971
source,
6072
} = this.props;
6173

62-
const isUntangled = isSiteSettingsUntangled();
74+
const { isUntangled } = this.state;
6375

6476
const changeAddressLink = `/domains/manage/${ siteSlug }?source=${ source }`;
6577

client/sites/settings/administration/tools/reset-site/index.jsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import isUnlaunchedSite from 'calypso/state/selectors/is-unlaunched-site';
2525
import { getSite, getSiteDomain, isJetpackSite } from 'calypso/state/sites/selectors';
2626
import { getSelectedSiteId, getSelectedSiteSlug } from 'calypso/state/ui/selectors';
2727
import { DIFMUpsell } from '../../../components/difm-upsell-banner';
28-
import { isSiteSettingsUntangled } from '../../../utils';
28+
import { useIsSiteSettingsUntangled } from '../../../hooks/use-is-site-settings-untangled';
2929

3030
import './style.scss';
3131

@@ -46,7 +46,7 @@ function SiteResetCard( {
4646
const [ isDomainConfirmed, setDomainConfirmed ] = useState( false );
4747
const [ resetComplete, setResetComplete ] = useState( false );
4848

49-
const isUntangled = isSiteSettingsUntangled();
49+
const isUntangled = useIsSiteSettingsUntangled();
5050

5151
const title = isUntangled ? translate( 'Reset site' ) : translate( 'Site Reset' );
5252
const source = isUntangled ? '/sites/settings/site' : getSettingsSource();

client/sites/settings/administration/tools/transfer-site/confirmation-transfer.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { LoadingBar } from 'calypso/components/loading-bar';
55
import Notice from 'calypso/components/notice';
66
import { PanelCardHeading } from 'calypso/components/panel';
77
import { recordTracksEvent } from 'calypso/lib/analytics/tracks';
8-
import { isSiteSettingsUntangled } from '../../../utils';
8+
import { useIsSiteSettingsUntangled } from 'calypso/sites/settings/hooks/use-is-site-settings-untangled';
99
import { useConfirmTransfer } from './use-confirm-transfer';
1010

1111
type SiteTransferResponse = {
@@ -51,7 +51,7 @@ export function ConfirmationTransfer( {
5151
confirmTransfer( confirmationHash );
5252
}, [ confirmTransfer, confirmationHash ] );
5353

54-
const isUntangled = isSiteSettingsUntangled();
54+
const isUntangled = useIsSiteSettingsUntangled();
5555

5656
if ( isEmailSent ) {
5757
const notice = (

client/sites/settings/administration/tools/transfer-site/index.tsx

+5-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { useQueryUserPurchases } from 'calypso/components/data/query-user-purcha
66
import { PanelCardHeading } from 'calypso/components/panel';
77
import { ResponseDomain } from 'calypso/lib/domains/types';
88
import { getSettingsSource } from 'calypso/my-sites/site-settings/site-tools/utils';
9-
import { isSiteSettingsUntangled } from 'calypso/sites/settings/utils';
9+
import { useIsSiteSettingsUntangled } from 'calypso/sites/settings/hooks/use-is-site-settings-untangled';
1010
import { useDispatch, useSelector } from 'calypso/state';
1111
import { recordTracksEvent } from 'calypso/state/analytics/actions';
1212
import { getCurrentUserEmail } from 'calypso/state/current-user/selectors';
@@ -26,12 +26,13 @@ const Strong = styled( 'strong' )( {
2626

2727
const SiteTransferComplete = () => {
2828
const translate = useTranslate();
29+
const isUntangled = useIsSiteSettingsUntangled();
30+
2931
const userEmail = useSelector( getCurrentUserEmail );
3032
if ( ! userEmail ) {
3133
return null;
3234
}
3335

34-
const isUntangled = isSiteSettingsUntangled();
3536
const message = (
3637
<p>
3738
{ translate(
@@ -70,6 +71,7 @@ const SiteOwnerTransfer = () => {
7071
const pendingDomain = nonWpcomDomains?.find(
7172
( wpcomDomain: ResponseDomain ) => wpcomDomain.pendingTransfer
7273
);
74+
const isSiteSettingsUntangled = useIsSiteSettingsUntangled();
7375

7476
useEffect( () => {
7577
dispatch( recordTracksEvent( 'calypso_site_owner_transfer_page_view' ) );
@@ -83,7 +85,7 @@ const SiteOwnerTransfer = () => {
8385
if ( ! pendingDomain && newSiteOwner && ! transferSiteSuccess ) {
8486
setNewSiteOwner( null );
8587
} else {
86-
const source = isSiteSettingsUntangled() ? '/sites/settings/site' : getSettingsSource();
88+
const source = isSiteSettingsUntangled ? '/sites/settings/site' : getSettingsSource();
8789
page( `${ source }/${ selectedSite.slug }` );
8890
}
8991
};

client/sites/settings/administration/tools/transfer-site/pending-domain-transfer.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ import { sprintf } from '@wordpress/i18n';
55
import { useTranslate } from 'i18n-calypso';
66
import { PanelCardHeading } from 'calypso/components/panel';
77
import { ResponseDomain } from 'calypso/lib/domains/types';
8-
import { isSiteSettingsUntangled } from '../../../utils';
8+
import { useIsSiteSettingsUntangled } from 'calypso/sites/settings/hooks/use-is-site-settings-untangled';
99

1010
const Strong = styled( 'strong' )( {
1111
fontWeight: 500,
1212
} );
1313

1414
const PendingDomainTransfer = ( { domain }: { domain: ResponseDomain } ) => {
1515
const translate = useTranslate();
16-
const isUntangled = isSiteSettingsUntangled();
16+
const isUntangled = useIsSiteSettingsUntangled();
1717
return (
1818
<>
1919
<>

client/sites/settings/administration/tools/transfer-site/site-owner-user-search.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { PanelCardHeading } from 'calypso/components/panel';
99
import useUsersQuery from 'calypso/data/users/use-users-query';
1010
import { recordTracksEvent } from 'calypso/lib/analytics/tracks';
1111
import TeamMembersSiteTransfer from 'calypso/my-sites/people/team-members-site-transfer';
12-
import { isSiteSettingsUntangled } from '../../../utils';
12+
import { useIsSiteSettingsUntangled } from 'calypso/sites/settings/hooks/use-is-site-settings-untangled';
1313
import { useCheckSiteTransferEligibility } from './use-check-site-transfer-eligibility';
1414
import type { UsersQuery } from '@automattic/data-stores';
1515

@@ -159,7 +159,7 @@ const SiteOwnerTransferEligibility = ( {
159159
</form>
160160
);
161161

162-
const isUntangled = isSiteSettingsUntangled();
162+
const isUntangled = useIsSiteSettingsUntangled();
163163

164164
return (
165165
<>

client/sites/settings/administration/tools/transfer-site/site-transfer-card.tsx

+3-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import InlineSupportLink from 'calypso/components/inline-support-link';
44
import NavigationHeader from 'calypso/components/navigation-header';
55
import { Panel, PanelCard } from 'calypso/components/panel';
66
import PageViewTracker from 'calypso/lib/analytics/page-view-tracker';
7-
import { isSiteSettingsUntangled } from 'calypso/sites/settings/utils';
7+
import { useIsSiteSettingsUntangled } from 'calypso/sites/settings/hooks/use-is-site-settings-untangled';
88

99
export function SiteTransferCard( {
1010
children,
@@ -14,7 +14,8 @@ export function SiteTransferCard( {
1414
onClick: () => void;
1515
} ) {
1616
const translate = useTranslate();
17-
const title = isSiteSettingsUntangled()
17+
const isSiteSettingsUntangled = useIsSiteSettingsUntangled();
18+
const title = isSiteSettingsUntangled
1819
? translate( 'Transfer site' )
1920
: translate( 'Site Transfer' );
2021
return (

client/sites/settings/administration/tools/transfer-site/start-site-owner-transfer.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ import Notice from 'calypso/components/notice';
1010
import { PanelCardHeading } from 'calypso/components/panel';
1111
import { recordTracksEvent } from 'calypso/lib/analytics/tracks';
1212
import { ResponseDomain } from 'calypso/lib/domains/types';
13+
import { useIsSiteSettingsUntangled } from 'calypso/sites/settings/hooks/use-is-site-settings-untangled';
1314
import { getSitePurchases } from 'calypso/state/purchases/selectors';
1415
import isSiteAutomatedTransfer from 'calypso/state/selectors/is-site-automated-transfer';
1516
import { IAppState } from 'calypso/state/types';
1617
import { getSelectedSiteId, getSelectedSiteSlug } from 'calypso/state/ui/selectors';
17-
import { isSiteSettingsUntangled } from '../../../utils';
1818
import { useStartSiteOwnerTransfer } from './use-start-site-owner-transfer';
1919
import type { Purchase } from 'calypso/lib/purchases/types';
2020

@@ -342,7 +342,7 @@ const StartSiteOwnerTransfer = ( {
342342
</>
343343
);
344344

345-
const isUntangled = isSiteSettingsUntangled();
345+
const isUntangled = useIsSiteSettingsUntangled();
346346

347347
return (
348348
<>

client/sites/settings/caching/form.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -119,9 +119,9 @@ export default function CachingForm( { disabled }: CachingFormProps ) {
119119
components: {
120120
a: isRemoveDuplicateViewsExperimentEnabled ? (
121121
<a href={ '/sites/settings/site/' + siteSlug + '#site-privacy-settings' } />
122-
) : (
123-
<a href={ '/settings/general/' + siteSlug + '#site-privacy-settings' } />
124-
),
122+
) : (
123+
<a href={ '/settings/general/' + siteSlug + '#site-privacy-settings' } />
124+
),
125125
},
126126
}
127127
);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { useEffect, useState } from 'react';
2+
import { isSiteSettingsUntangled } from 'calypso/sites/settings/utils';
3+
4+
export const useIsSiteSettingsUntangled = (): boolean => {
5+
const [ isSiteSettingsUntangledState, setIsSiteSettingsUntangledState ] = useState( false );
6+
7+
useEffect( () => {
8+
isSiteSettingsUntangled().then( setIsSiteSettingsUntangledState );
9+
}, [] );
10+
11+
return isSiteSettingsUntangledState;
12+
};

client/sites/settings/site/agency.tsx

+4-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import useFetchAgencyFromBlog from 'calypso/a8c-for-agencies/data/agencies/use-f
66
import FormSettingExplanation from 'calypso/components/forms/form-setting-explanation';
77
import { PanelCard, PanelCardHeading } from 'calypso/components/panel';
88
import SettingsSectionHeader from 'calypso/my-sites/site-settings/settings-section-header';
9-
import { isSiteSettingsUntangled } from '../utils';
9+
import { useIsSiteSettingsUntangled } from '../hooks/use-is-site-settings-untangled';
1010
import type { SiteDetails } from '@automattic/data-stores';
1111

1212
type Props = {
@@ -29,6 +29,8 @@ export function A4AFullyManagedSiteForm( {
2929
const isDevSite = site.is_a4a_dev_site;
3030
const isAtomicSite = site.is_wpcom_atomic;
3131

32+
const isUntangled = useIsSiteSettingsUntangled();
33+
3234
const { data: agencySite } = useFetchAgencyFromBlog( site?.ID, { enabled: !! site?.ID } );
3335

3436
const shouldShowToggle = agencySite && isAtomicSite;
@@ -101,7 +103,7 @@ export function A4AFullyManagedSiteForm( {
101103
);
102104
};
103105

104-
if ( ! isSiteSettingsUntangled() ) {
106+
if ( ! isUntangled ) {
105107
return (
106108
<div className="site-settings__a4a-fully-managed-container">
107109
<SettingsSectionHeader

client/sites/settings/site/enhanced-ownership.jsx

+3-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { PanelCard, PanelCardHeading } from 'calypso/components/panel';
1212
import SettingsSectionHeader from 'calypso/my-sites/site-settings/settings-section-header';
1313
import siteHasFeature from 'calypso/state/selectors/site-has-feature';
1414
import { useSelectedSiteSelector } from 'calypso/state/sites/hooks';
15-
import { isSiteSettingsUntangled } from '../utils';
15+
import { useIsSiteSettingsUntangled } from '../hooks/use-is-site-settings-untangled';
1616

1717
// Add settings for enhanced ownership: ability to enable locked mode and add the name of a person who will inherit the site.
1818
export default function EnhancedOwnershipForm( {
@@ -28,6 +28,7 @@ export default function EnhancedOwnershipForm( {
2828
const translate = useTranslate();
2929
const hasLockedMode = useSelectedSiteSelector( siteHasFeature, WPCOM_FEATURES_LOCKED_MODE );
3030
const hasLegacyContact = useSelectedSiteSelector( siteHasFeature, WPCOM_FEATURES_LEGACY_CONTACT );
31+
const isUntangled = useIsSiteSettingsUntangled();
3132

3233
// if has neither locked mode nor legacy contact, return
3334
if ( ! hasLockedMode && ! hasLegacyContact ) {
@@ -94,7 +95,7 @@ export default function EnhancedOwnershipForm( {
9495
);
9596
};
9697

97-
if ( ! isSiteSettingsUntangled() ) {
98+
if ( ! isUntangled ) {
9899
return (
99100
<div className="site-settings__enhanced-ownership-container">
100101
<SettingsSectionHeader

client/sites/settings/site/footer-credit/index.jsx

+3-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import isSiteWPForTeams from 'calypso/state/selectors/is-site-wpforteams';
1515
import siteHasFeature from 'calypso/state/selectors/site-has-feature';
1616
import { useSelectedSiteSelector } from 'calypso/state/sites/hooks';
1717
import { getCustomizerUrl } from 'calypso/state/sites/selectors';
18-
import { isSiteSettingsUntangled } from '../../utils';
18+
import { useIsSiteSettingsUntangled } from '../../hooks/use-is-site-settings-untangled';
1919

2020
import './style.scss';
2121

@@ -28,6 +28,7 @@ export default function FooterCredit( { site, siteIsJetpack } ) {
2828
WPCOM_FEATURES_NO_WPCOM_BRANDING
2929
);
3030
const customizerUrl = useSelectedSiteSelector( getCustomizerUrl, 'identity' );
31+
const isUntangled = useIsSiteSettingsUntangled();
3132

3233
const { data: activeThemeData } = useActiveThemeQuery( site?.ID ?? -1, !! site );
3334
const hasBlockTheme = activeThemeData?.[ 0 ]?.is_block_theme ?? true;
@@ -81,7 +82,7 @@ export default function FooterCredit( { site, siteIsJetpack } ) {
8182

8283
return (
8384
<>
84-
{ ! isSiteSettingsUntangled() ? (
85+
{ ! isUntangled ? (
8586
<div className="site-settings__footer-credit-container">
8687
<SettingsSectionHeader
8788
title={ translate( 'Footer credit' ) }

0 commit comments

Comments
 (0)