$10 GRAYBYTE WORDPRESS FILE MANAGER $46

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

/home/bravetechrwanda/itiministry.org/plugins/give/src/Admin/fields/AsyncSelectOption/

HOME
Current File : /home/bravetechrwanda/itiministry.org/plugins/give/src/Admin/fields/AsyncSelectOption//index.tsx
import { __ } from '@wordpress/i18n';
import { AsyncPaginate } from 'react-select-async-paginate';
import { AdminSectionField } from '@givewp/components/AdminDetailsPage/AdminSection';
import { SelectOption } from '@givewp/admin/types';

import styles from './styles.module.scss';


/**
 * @since 4.11.0
 */
export default function AsyncSelectOption({
    name,
    label,
    description = '',
    selectedOption,
    loadOptions,
    mapOptionsForMenu,
    handleChange,
    isLoadingError,
    errorMessage,
    searchPlaceholder,
    loadingMessage,
    loadingError,
    ariaLabel,
    noOptionsMessage,
    children
}: AsyncSelectOptionProps) {
    return (
        <AdminSectionField error={errorMessage}>
            <label htmlFor={name}>{label}</label>
            {description && <p>{description}</p>}
            {isLoadingError ? (
                <div role="alert" style={{ color: 'var(--givewp-red-500)', fontSize: '0.875rem' }}>
                    {loadingError}
                </div>
            ) : (
                <AsyncPaginate
                    inputId={name}
                    className={styles.searchableSelect}
                    classNamePrefix="searchableSelect"
                    value={selectedOption}
                    loadOptions={loadOptions}
                    mapOptionsForMenu={mapOptionsForMenu}
                    onChange={handleChange}
                    debounceTimeout={600}
                    placeholder={searchPlaceholder}
                    loadingMessage={() => loadingMessage}
                    noOptionsMessage={() => noOptionsMessage}
                    aria-label={ariaLabel}
                />
            )}
            {children}
        </AdminSectionField>
    );
}

interface AsyncSelectOptionProps {
    name: string;
    label: string;
    description?: string;
    handleChange: (selectedOption: SelectOption) => void;
    selectedOption: SelectOption | null;
    loadOptions: (searchInput: string) => Promise<{
        options: SelectOption[];
        hasMore: boolean;
    }>;
    mapOptionsForMenu: (options: SelectOption[]) => SelectOption[];
    isLoadingError: Error | null;
    errorMessage: string;
    searchPlaceholder: string;
    loadingMessage: string;
    loadingError: string,
    noOptionsMessage: string;
    ariaLabel: string;
    children?: JSX.Element | JSX.Element[];
}

Current_dir [ WRITEABLE ] Document_root [ NOT WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
25 May 2026 4.20 PM
bravetechrwanda / bravetechrwanda
0755
index.tsx
2.314 KB
16 Oct 2025 6.10 PM
bravetechrwanda / bravetechrwanda
0644
styles.module.scss
2.978 KB
30 Oct 2025 12.17 AM
bravetechrwanda / bravetechrwanda
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF Static GIF