$45 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.23
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

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

HOME
Current File : /home/bravrvjk/itiministry.org/wp-content/plugins/give/src/Campaigns/Blocks/CampaignCover//edit.tsx
import {InspectorControls, useBlockProps} from '@wordpress/block-editor';
import {__} from '@wordpress/i18n';
import {useSelect} from '@wordpress/data';
import {external} from '@wordpress/icons';
import {BaseControl, Icon, PanelBody, Placeholder, TextareaControl} from '@wordpress/components';
import {BlockEditProps} from '@wordpress/blocks';
import CampaignSelector from '../shared/components/CampaignSelector';
import useCampaign from '../shared/hooks/useCampaign';
import {GalleryIcon} from "./Icon";

import './editor.scss';

interface EditProps extends BlockEditProps<{
    campaignId: number;
    alt: string;
    width: number;
    height: number;
    align: string;
}> {
    toggleSelection: (isSelected: boolean) => void;
}

export default function Edit({attributes, setAttributes, toggleSelection}: EditProps) {
    const blockProps = useBlockProps();
    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 editCampaignUrl = `${adminBaseUrl}&id=${attributes.campaignId}&tab=settings`;

    return (
        <figure {...blockProps}>
            <CampaignSelector
                campaignId={attributes.campaignId}
                handleSelect={(campaignId: number) => setAttributes({campaignId})}
            >

                {hasResolved && campaign?.image ? (
                    <img
                        className={'givewp-campaign-cover-block-preview__image'}
                        src={campaign?.image}
                        alt={attributes.alt ?? __('Campaign Image', 'give')}
                    />
                ) : (
                    <Placeholder
                        icon={<GalleryIcon />}
                        label={__('Campaign Cover Image', 'give')}
                        instructions={__('Upload a cover image for your campaign.', 'give')}
                    />
                )}
            </CampaignSelector>

            {hasResolved && campaign && (
                <InspectorControls>
                    <PanelBody title="Settings" initialOpen={true}>
                        <BaseControl label={__('Cover', 'give')} id="givewp-campaign-cover-block__title-field">
                            {campaign?.image && (
                                <img
                                    className={'givewp-campaign-cover-block__image'}
                                    src={campaign?.image}
                                    alt={attributes.alt ?? __('Campaign Cover image', 'give')}
                                />
                            )}
                            <p className={'givewp-campaign-cover-block__help-text'}>
                                {__('Shows the cover image of the campaign.', 'give')}
                            </p>
                            <a
                                href={editCampaignUrl}
                                target="_blank"
                                rel="noopener noreferrer"
                                className="givewp-campaign-cover-block__edit-campaign-link"
                                aria-label={__('Edit campaign settings in a new tab', 'give')}
                            >
                                {__('Change campaign cover', 'give')}
                                <Icon icon={external} />
                            </a>
                        </BaseControl>
                        <TextareaControl
                            label={__('Alternative text', 'give')}
                            value={attributes.alt}
                            onChange={(value: string) => setAttributes({alt: value})}
                        />
                    </PanelBody>
                </InspectorControls>
            )}
        </figure>
    );
}


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
Icon.tsx
0.622 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644
block.json
1.198 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644
edit.tsx
3.836 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644
editor.scss
1.287 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644
index.tsx
0.229 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644
render.php
1.358 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF