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