PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.12.2
GiveWP – Donation Plugin and Fundraising Platform v3.12.2
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 / DonationFormsRowActions.tsx
give / src / DonationForms / V2 / resources / components Last commit date
Onboarding 2 years ago DonationFormsListTable.tsx 2 years ago DonationFormsRowActions.tsx 2 years ago
DonationFormsRowActions.tsx
94 lines
1 import {__} from '@wordpress/i18n';
2 import {useSWRConfig} from 'swr';
3 import RowAction from '@givewp/components/ListTable/RowAction';
4 import ListTableApi from '@givewp/components/ListTable/api';
5 import {useContext} from 'react';
6 import {ShowConfirmModalContext} from '@givewp/components/ListTable/ListTablePage';
7 import {Interweave} from 'interweave';
8 import {OnboardingContext} from './Onboarding';
9
10 const donationFormsApi = new ListTableApi(window.GiveDonationForms);
11
12 export function DonationFormsRowActions({data, item, removeRow, addRow, setUpdateErrors, parameters}) {
13 const {mutate} = useSWRConfig();
14 const showConfirmModal = useContext(ShowConfirmModalContext);
15 const [OnboardingState, setOnboardingState] = useContext(OnboardingContext);
16 const trashEnabled = Boolean(data?.trash);
17 const deleteEndpoint = trashEnabled && !item.status.includes('trash') ? '/trash' : '/delete';
18
19 const fetchAndUpdateErrors = async (parameters, endpoint, id, method) => {
20 const response = await donationFormsApi.fetchWithArgs(endpoint, {ids: [id]}, method);
21 setUpdateErrors(response);
22 await mutate(parameters);
23 return response;
24 };
25
26 const deleteForm = async (selected) => await fetchAndUpdateErrors(parameters, deleteEndpoint, item.id, 'DELETE');
27
28 const confirmDeleteForm = (selected) => (
29 <p>
30 {__('Really delete the following form?', 'give')}
31 <br />
32 <Interweave content={item?.title} />
33 </p>
34 );
35
36 const confirmTrashForm = (selected) => (
37 <p>
38 {__('Really trash the following form?', 'give')}
39 <br />
40 <Interweave content={item?.title} />
41 </p>
42 );
43
44 const confirmModal = (event) => {
45 showConfirmModal(__('Delete', 'give'), confirmDeleteForm, deleteForm, 'danger');
46 };
47
48 const confirmTrashModal = (event) => {
49 showConfirmModal(__('Trash', 'give'), confirmTrashForm, deleteForm, 'danger');
50 };
51
52 return (
53 <>
54 {parameters.status === 'trash' ? (
55 <>
56 <RowAction
57 onClick={removeRow(
58 async () => await fetchAndUpdateErrors(parameters, '/restore', item.id, 'POST')
59 )}
60 actionId={item.id}
61 displayText={__('Restore', 'give')}
62 hiddenText={item?.name}
63 />
64 <RowAction
65 onClick={confirmModal}
66 actionId={item.id}
67 displayText={__('Delete Permanently', 'give')}
68 hiddenText={item?.name}
69 highlight
70 />
71 </>
72 ) : (
73 <>
74 <RowAction href={item.edit} displayText={__('Edit', 'give')} hiddenText={item?.name} />
75 <RowAction
76 onClick={confirmTrashModal}
77 actionId={item.id}
78 highlight={true}
79 displayText={trashEnabled ? __('Trash', 'give') : __('Delete', 'give')}
80 hiddenText={item?.name}
81 />
82 <RowAction href={item.permalink} displayText={__('View', 'give')} hiddenText={item?.name} />
83 <RowAction
84 onClick={addRow(async (id) => await fetchAndUpdateErrors(parameters, '/duplicate', id, 'POST'))}
85 actionId={item.id}
86 displayText={__('Duplicate', 'give')}
87 hiddenText={item?.name}
88 />
89 </>
90 )}
91 </>
92 );
93 }
94