forked from woocommerce/google-listings-and-ads
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
132 lines (123 loc) · 4.22 KB
/
index.js
File metadata and controls
132 lines (123 loc) · 4.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/**
* External dependencies
*/
import { __ } from '@wordpress/i18n';
/**
* Internal dependencies
*/
import { getEditPhoneNumberUrl, getEditStoreAddressUrl } from '.~/utils/urls';
import { useAdaptiveFormContext } from '.~/components/adaptive-form';
import useGoogleMCPhoneNumber from '.~/hooks/useGoogleMCPhoneNumber';
import Section from '.~/wcdl/section';
import VerticalGapLayout from '.~/components/vertical-gap-layout';
import AppDocumentationLink from '.~/components/app-documentation-link';
import PhoneNumberCard, { PhoneNumberCardPreview } from './phone-number-card';
import StoreAddressCard, {
StoreAddressCardPreview,
} from './store-address-card';
import usePhoneNumberCheckTrackEventEffect from './usePhoneNumberCheckTrackEventEffect';
const learnMoreLinkId = 'contact-information-read-more';
const learnMoreUrl =
'https://woo.com/document/google-listings-and-ads/#contact-information';
const description = (
<>
<p>
{ __(
'Your contact information is required for verification by Google.',
'google-listings-and-ads'
) }
</p>
<p>
{ __(
'It would be shared with Google Merchant Center for store verification and would not be displayed to customers.',
'google-listings-and-ads'
) }
</p>
</>
);
const mcTitle = __( 'Verify contact information', 'google-listings-and-ads' );
const settingsTitle = __( 'Contact information', 'google-listings-and-ads' );
/**
* Renders a preview of contact information section,
* or a <NoContactInformationCard> if contact informations are not saved yet.
*/
export function ContactInformationPreview() {
return (
<Section title={ settingsTitle } description={ description }>
<VerticalGapLayout size="overlap">
<PhoneNumberCardPreview
editHref={ getEditPhoneNumberUrl() }
learnMore={
<AppDocumentationLink
context="settings-no-phone-number-notice"
linkId={ learnMoreLinkId }
href={ learnMoreUrl }
>
{ __( 'Learn more', 'google-listings-and-ads' ) }
</AppDocumentationLink>
}
/>
<StoreAddressCardPreview
editHref={ getEditStoreAddressUrl() }
learnMore={
<AppDocumentationLink
context="settings-no-store-address-notice"
linkId={ learnMoreLinkId }
href={ learnMoreUrl }
>
{ __( 'Learn more', 'google-listings-and-ads' ) }
</AppDocumentationLink>
}
/>
</VerticalGapLayout>
</Section>
);
}
/**
* Renders a contact information section with specified initial state and texts.
*
* @param {Object} props React props.
* @param {Function} [props.onPhoneNumberVerified] Called when the phone number is verified or has been verified.
* @fires gla_documentation_link_click with `{ context: 'setup-mc-contact-information', link_id: 'contact-information-read-more', href: 'https://woo.com/document/google-listings-and-ads/#contact-information' }`
* @fires gla_documentation_link_click with `{ context: 'settings-no-phone-number-notice', link_id: 'contact-information-read-more', href: 'https://woo.com/document/google-listings-and-ads/#contact-information' }`
* @fires gla_documentation_link_click with `{ context: 'settings-no-store-address-notice', link_id: 'contact-information-read-more', href: 'https://woo.com/document/google-listings-and-ads/#contact-information' }`
*/
const ContactInformation = ( { onPhoneNumberVerified } ) => {
const { adapter } = useAdaptiveFormContext();
const phone = useGoogleMCPhoneNumber();
const title = mcTitle;
const trackContext = 'setup-mc-contact-information';
usePhoneNumberCheckTrackEventEffect( phone );
return (
<Section
title={ title }
description={
<div>
{ description }
<p>
<AppDocumentationLink
context={ trackContext }
linkId={ learnMoreLinkId }
href={ learnMoreUrl }
>
{ __( 'Learn more', 'google-listings-and-ads' ) }
</AppDocumentationLink>
</p>
</div>
}
>
<VerticalGapLayout size="large">
<PhoneNumberCard
view="setup-mc"
phoneNumber={ phone }
showValidation={ adapter.requestedShowValidation }
onPhoneNumberVerified={ onPhoneNumberVerified }
/>
<StoreAddressCard
showValidation={ adapter.requestedShowValidation }
/>
</VerticalGapLayout>
</Section>
);
};
export default ContactInformation;