PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.16.3
GiveWP – Donation Plugin and Fundraising Platform v4.16.3
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 / V2 / resources / components / AddCampaignFormModal / index.tsx
give / src / DonationForms / V2 / resources / components / AddCampaignFormModal Last commit date
AddCampaignFormModal.module.scss 1 year ago index.tsx 1 year ago
index.tsx
150 lines
1 import ModalDialog from '@givewp/components/AdminUI/ModalDialog';
2 import styles from './AddCampaignFormModal.module.scss';
3 import {__} from '@wordpress/i18n';
4 import {useRef, useState} from 'react';
5
6 export type EditorTypeOptionProps = {
7 editorType: string;
8 label: string;
9 description: string;
10 editorSelected: string;
11 handleEditorSelected: any;
12 };
13
14 const EditorSelectedIcon = () => {
15 return (
16 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
17 <path
18 fillRule="evenodd"
19 clipRule="evenodd"
20 d="M12 1C5.925 1 1 5.925 1 12s4.925 11 11 11 11-4.925 11-11S18.075 1 12 1zm5.207 8.707a1 1 0 0 0-1.414-1.414L10.5 13.586l-2.293-2.293a1 1 0 0 0-1.414 1.414l3 3a1 1 0 0 0 1.414 0l6-6z"
21 fill="#459948"
22 />
23 </svg>
24 );
25 };
26
27 /**
28 * Editor Type Option component
29 *
30 * @since 4.0.0
31 */
32 const EditorTypeOption = ({
33 editorType,
34 label,
35 description,
36 editorSelected,
37 handleEditorSelected,
38 }: EditorTypeOptionProps) => {
39 const divRef = useRef(null);
40 const labelRef = useRef(null);
41
42 const handleDivClick = () => {
43 labelRef.current.click();
44 };
45
46 return (
47 <div
48 className={`givewp-editor-options__option ${
49 editorType === editorSelected ? 'givewp-editor-options__option_selected' : ''
50 }`}
51 ref={divRef}
52 onClick={handleDivClick}
53 >
54 <img
55 src={`${window.GiveDonationForms.pluginUrl}${
56 editorType === 'visualFormBuilder'
57 ? 'build/assets/dist/images/admin/give-settings-gateways-v3.jpg'
58 : 'build/assets/dist/images/admin/give-settings-gateways-v2.jpg'
59 }`}
60 alt={label}
61 />
62 {editorType === 'visualFormBuilder' && (
63 <span className={'givewp-editor-options__option_recommended'}>{__('Recommended', 'give')}</span>
64 )}
65 <label ref={labelRef}>
66 <input
67 type="radio"
68 value={editorType}
69 checked={editorType === editorSelected}
70 onChange={handleEditorSelected}
71 />
72 {label}
73 </label>
74 <p>{description}</p>
75 <div className={'givewp-editor-options__option_selected_icon'}>
76 <EditorSelectedIcon />
77 </div>
78 </div>
79 );
80 };
81
82 /**
83 * Form Modal component that renders a modal with a styled form inside
84 *
85 * @since 4.0.0
86 */
87 export default function AddCampaignFormModal({isOpen, handleClose, title, campaignId}: FormModalProps) {
88 const [editorSelected, setEditorSelected] = useState('');
89
90 const handleEditorSelected = (event) => {
91 setEditorSelected(event.target.value);
92 };
93
94 return (
95 <ModalDialog
96 isOpen={isOpen}
97 showHeader={true}
98 handleClose={handleClose}
99 title={title}
100 wrapperClassName={styles.addFormModal}
101 >
102 <>
103 <div className={'givewp-editor-options'}>
104 <EditorTypeOption
105 editorType={'visualFormBuilder'}
106 label={__('Visual Form Builder', 'give')}
107 description={__(
108 'Uses the blocks-based visual form builder for creating and customizing a donation form.',
109 'give'
110 )}
111 editorSelected={editorSelected}
112 handleEditorSelected={handleEditorSelected}
113 />
114 <EditorTypeOption
115 editorType={'optionBasedFormEditor'}
116 label={__('Use Option-Based Form Editor', 'give')}
117 description={__(
118 'Uses the traditional settings options for creating and customizing a donation form.',
119 'give'
120 )}
121 editorSelected={editorSelected}
122 handleEditorSelected={handleEditorSelected}
123 />
124 </div>
125 <div className={'givewp-editor-actions'}>
126 <a
127 href={
128 editorSelected === 'visualFormBuilder'
129 ? `edit.php?post_type=give_forms&page=givewp-form-builder&donationFormID=new&locale=${window.GiveDonationForms.locale}&campaignId=${campaignId}`
130 : `post-new.php?post_type=give_forms&campaignId=${campaignId}`
131 }
132 className={`button button-primary givewp-editor-actions__button ${
133 !editorSelected ? 'disabled' : ''
134 }`}
135 >
136 {__('Proceed', 'give')}
137 </a>
138 </div>
139 </>
140 </ModalDialog>
141 );
142 }
143
144 interface FormModalProps {
145 isOpen: boolean;
146 handleClose: () => void;
147 title: string;
148 campaignId: string;
149 }
150