403Webshell
Server IP : 192.158.238.246  /  Your IP : 18.119.102.106
Web Server : LiteSpeed
System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64
User : jenniferflocom ( 1321)
PHP Version : 8.1.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /proc/7779/cwd/plugins/give/src/DonationForms/resources/app/form/MultiStepForm/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/7779/cwd/plugins/give/src/DonationForms/resources/app/form/MultiStepForm/index.tsx
import type {Form} from '@givewp/forms/types';
import {Section} from '@givewp/forms/types';
import {DonationFormMultiStepStateProvider} from './store';
import {StepObject} from '@givewp/forms/app/form/MultiStepForm/types';
import StepForm from '@givewp/forms/app/form/MultiStepForm/components/StepForm';
import getSectionFieldNames from '@givewp/forms/app/form/MultiStepForm/utilities/getSectionFieldNames';
import DonationFormErrorBoundary from '@givewp/forms/app/errors/boundaries/DonationFormErrorBoundary';
import {withTemplateWrapper} from '@givewp/forms/app/templates';
import SectionNode from '@givewp/forms/app/fields/SectionNode';
import Steps from '@givewp/forms/app/form/MultiStepForm/components/Steps';
import HeaderStep from '@givewp/forms/app/form/MultiStepForm/components/HeaderStep';
import {DonationSummaryProvider} from '@givewp/forms/app/store/donation-summary';

const FormSectionTemplate = withTemplateWrapper(window.givewp.form.templates.layouts.section, 'section');

/**
 * @since 3.0.0
 */
const convertSectionsToSteps = (sections: Section[], hasFirstStep: boolean) => {
    const totalSteps = hasFirstStep ? sections.length + 1 : sections.length;

    return sections.map((section, index) => {
        const currentStep = hasFirstStep ? index + 1 : index;
        const isFirstStep = currentStep === 0;
        const isLastStep = currentStep === totalSteps - 1;
        const fields = getSectionFieldNames(section);
        const title = section?.label;
        const description = section?.description;

        const element = (
            <StepForm key={currentStep} currentStep={currentStep} isFirstStep={isFirstStep} isLastStep={isLastStep}>
                <DonationFormErrorBoundary key={section.name}>
                    <FormSectionTemplate key={section.name} section={section} hideLabel>
                        {section.nodes.map((node) => (
                            <DonationFormErrorBoundary key={node.name}>
                                <SectionNode key={node.name} node={node} />
                            </DonationFormErrorBoundary>
                        ))}
                    </FormSectionTemplate>
                </DonationFormErrorBoundary>
            </StepForm>
        );

        return {
            id: currentStep,
            title,
            description,
            element,
            fields,
            visibilityConditions: section.visibilityConditions,
            isVisible: !section.visibilityConditions.length,
        } as StepObject;
    });
};

/**
 * @since 3.6.0 updated to use includeHeaderInMultiStep
 * @since 3.0.0
 */
export default function MultiStepForm({form}: {form: Form}) {
    const shouldIncludeHeaderInSteps = form.design?.includeHeaderInMultiStep && form.settings?.showHeader;
    const steps = convertSectionsToSteps(form.nodes, shouldIncludeHeaderInSteps);

    if (shouldIncludeHeaderInSteps) {
        steps.unshift({
            id: 0,
            title: null,
            description: null,
            element: <HeaderStep form={form} />,
            fields: [],
            visibilityConditions: [],
            isVisible: true,
        });
    }

    return (
        <DonationFormMultiStepStateProvider initialState={{steps, currentStep: 0}}>
            <DonationSummaryProvider>
                <Steps steps={steps} />
            </DonationSummaryProvider>
        </DonationFormMultiStepStateProvider>
    );
}

Youez - 2016 - github.com/yon3zu
LinuXploit