$55 GRAYBYTE WORDPRESS FILE MANAGER $23

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 172.67.217.254 | ADMIN IP 216.73.216.157
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : mail

/home/bravrvjk/itiministry.org/wp-content/plugins/give/src/Campaigns/Blocks/DonateButton/

HOME
Current File : /home/bravrvjk/itiministry.org/wp-content/plugins/give/src/Campaigns/Blocks/DonateButton//edit.tsx
import {__} from '@wordpress/i18n';
import {useSelect} from '@wordpress/data';
import {addQueryArgs} from '@wordpress/url';
import apiFetch from '@wordpress/api-fetch';
import useSWR from 'swr';
import {InspectorControls, useBlockProps} from '@wordpress/block-editor';
import {BlockEditProps} from '@wordpress/blocks';
import {PanelBody, SelectControl, TextControl, ToggleControl} from '@wordpress/components';
import ServerSideRender from '@wordpress/server-side-render';
import useCampaign from '../shared/hooks/useCampaign';
import CampaignSelector from '../shared/components/CampaignSelector';


/**
 * @since 4.0.0
 */
export default function Edit({attributes, setAttributes}: BlockEditProps<{
    campaignId: number;
    buttonText: string;
    useDefaultForm: boolean;
    selectedForm: string;
}>) {
    const blockProps = useBlockProps();
    const {buttonText = __('Donate', 'give')} = attributes;
    const {campaign, hasResolved} = useCampaign(attributes.campaignId);

    const adminBaseUrl = useSelect(
        // @ts-ignore
        (select) => select('core').getSite()?.url + '/wp-admin/edit.php?post_type=give_forms&page=give-campaigns',
        []
    );

    const campaignForms = (() => {
        const {data, isLoading}: { data: { items: [] }, isLoading: boolean } = useSWR(
            addQueryArgs('/give-api/v2/admin/forms', {campaignId: attributes.campaignId, status: 'publish'}),
            path => apiFetch({path})
        )

        if (isLoading) {
            return [{label: __('Loading...', 'give'), value: ''}]
        }

        const options = data?.items.map((form: { name: string, id: string }) => ({
            label: form.name,
            value: form.id
        }))

        return [
            {label: __('Select form', 'give'), value: ''},
            ...options
        ];
    })();

    return (
        <div {...blockProps}>
            <CampaignSelector
                campaignId={attributes.campaignId}
                handleSelect={(campaignId: number) => setAttributes({campaignId})}
            >
                <ServerSideRender block="givewp/campaign-donate-button" attributes={attributes} />
            </CampaignSelector>

            {hasResolved && campaign?.id && (
                <InspectorControls>
                    <PanelBody title="Settings" initialOpen={true}>
                        <TextControl
                            label={__('Donate button', 'give')}
                            value={buttonText}
                            onChange={(buttonText: string) => setAttributes({buttonText})}
                        />
                        <ToggleControl
                            label={__('Use default form', 'give')}
                            checked={attributes.useDefaultForm}
                            onChange={(useDefaultForm: boolean) => setAttributes({useDefaultForm})}
                            help={
                                <>
                                    {__('Uses the campaign’s default form.', 'give')}
                                    {` `}
                                    <a
                                        href={`${adminBaseUrl}&id=${attributes.campaignId}&tab=forms`}
                                        target="_blank"
                                        rel="noopener noreferrer"
                                        aria-label={__('Change campaign default form', 'give')}
                                    >
                                        {__('Change default form', 'give')}
                                    </a>
                                </>
                            }
                        />
                        {!attributes.useDefaultForm && (
                            <SelectControl
                                label={__('Form', 'give')}
                                onChange={(selectedForm: string) => setAttributes({selectedForm})}
                                options={campaignForms}
                                value={attributes.selectedForm}
                                help={__('Donations are collected through this form.', 'give')}
                            />
                        )}
                    </PanelBody>
                </InspectorControls>
            )}
        </div>
    );
}


Current_dir [ WRITEABLE ] Document_root [ NOT WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
app.tsx
0.023 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644
block.json
0.802 KB
9 Dec 2025 1.09 AM
bravrvjk / bravrvjk
0644
edit.tsx
4.216 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644
index.tsx
0.276 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644
render.php
1.623 KB
18 Jun 2025 7.01 PM
bravrvjk / bravrvjk
0644
styles.scss
0.046 KB
9 Jul 2025 5.09 PM
bravrvjk / bravrvjk
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF