import {__, sprintf} from '@wordpress/i18n'; import {useSWRConfig} from 'swr'; import RowAction from '@givewp/components/ListTable/RowAction'; import ListTableApi from '@givewp/components/ListTable/api'; import {useContext} from 'react'; import {ShowConfirmModalContext} from '@givewp/components/ListTable/ListTablePage'; import {Interweave} from 'interweave'; import {UpgradeModalContent} from './Migration'; import {createInterpolateElement} from '@wordpress/element'; const donationFormsApi = new ListTableApi(window.GiveDonationForms); export function DonationFormsRowActions({data, item, removeRow, addRow, setUpdateErrors, parameters, entity}) { const {mutate} = useSWRConfig(); const showConfirmModal = useContext(ShowConfirmModalContext); const trashEnabled = Boolean(data?.trash); const deleteEndpoint = trashEnabled && !item.status.includes('trash') ? '/trash' : '/delete'; const fetchAndUpdateErrors = async (parameters, endpoint, id, method) => { const response = await donationFormsApi.fetchWithArgs(endpoint, {ids: [id]}, method); setUpdateErrors(response); await mutate(parameters); return response; }; const deleteForm = async (selected) => { try { await fetchAndUpdateErrors(parameters, deleteEndpoint, item.id, 'DELETE'); } catch (error) { const errorData = JSON.parse(error.message.replace('Error: ', '')); alert(errorData.message); } }; const confirmDeleteForm = (selected) => (
{__('Really delete the following form?', 'give')}
{__('Are you sure you want to trash the following donation form? ', 'give')}
{defaultCampaignModalContent}
, async () => { await entity.edit({ defaultFormId: item.id, }); const response = await entity.save(); await mutate(parameters); return response; }, __('Yes proceed', 'give') ); }; const copyShortcode = (event) => { navigator.clipboard.writeText(`[give_form id="${item.id}"]`); alert(sprintf(__('The shortcode for Donation Form #%d has been copied to your clipboard!', 'give'), item.id)); }; return ( <> {parameters.status === 'trash' ? ( <>