PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / trunk
GiveWP – Donation Plugin and Fundraising Platform vtrunk
4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / DonationForms / resources / registrars / templates / fields / Consent / index.tsx
give / src / DonationForms / resources / registrars / templates / fields / Consent Last commit date
ConsentModal.tsx 2 years ago ShowTerms.tsx 2 years ago createIframePortal.tsx 1 year ago index.tsx 2 years ago styles.scss 2 years ago
index.tsx
74 lines
1 import {useState} from '@wordpress/element';
2 import type {ConsentProps} from '@givewp/forms/propTypes';
3 import Checkbox from '../Checkbox';
4 import ShowTerms from './ShowTerms';
5 import ConsentModal from './ConsentModal';
6 import {Markup} from 'interweave';
7
8 export default function ConsentField({
9 name,
10 ErrorMessage,
11 fieldError,
12 inputProps,
13 checkboxLabel,
14 displayType,
15 linkText,
16 linkUrl,
17 modalHeading,
18 modalAcceptanceText,
19 agreementText,
20 Label: LabelWithRequired,
21 label,
22 validationRules,
23 }: ConsentProps) {
24 const [showModal, setShowModal] = useState<boolean>(false);
25 const {useFormContext} = window.givewp.form.hooks;
26 const {setValue} = useFormContext();
27
28 const FieldLabel = window.givewp.form.templates.layouts.fieldLabel;
29
30 const {required} = validationRules;
31
32 const isModalDisplay = displayType === 'showModalTerms';
33 const isFormDisplay = displayType === 'showFormTerms';
34
35 const openTerms = (event) => {
36 event.preventDefault();
37 setShowModal(true);
38 };
39
40 const acceptTerms = (event) => {
41 event.preventDefault();
42 setValue(name, 'accepted');
43 setShowModal(false);
44 };
45
46 const Label = () => (
47 <span className={'givewp-fields-consent__checkbox-label'}>
48 <FieldLabel label={checkboxLabel} required={!label && required} />
49 &nbsp;
50 {!isFormDisplay && (
51 <ShowTerms openTerms={openTerms} displayType={displayType} linkText={linkText} linkUrl={linkUrl} />
52 )}
53 </span>
54 );
55
56 return (
57 <div className={'givewp-fields-consent'}>
58 {label && <LabelWithRequired />}
59 {/*// @ts-ignore*/}
60 <Checkbox {...{Label, ErrorMessage, fieldError, inputProps}} value={'accepted'} />
61
62 {isModalDisplay && showModal && (
63 <ConsentModal {...{setShowModal, modalHeading, modalAcceptanceText, agreementText, acceptTerms}} />
64 )}
65
66 {isFormDisplay && (
67 <div className="givewp-fields-consent__container">
68 <Markup content={agreementText} noWrap />
69 </div>
70 )}
71 </div>
72 );
73 }
74