Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/mets.corals.io/wp-content/plugins/give/src/Views/Components/ListTable/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/mets.corals.io/wp-content/plugins/give/src/Views/Components/ListTable/FormSelect.tsx
import styles from './FormSelect.module.scss';
import cx from "classnames";
import Input from "@givewp/components/ListTable/Input";

export const FormSelect = ({options, name, placeholder = '', ariaLabel = '', onChange, ...rest}) => {
    return (
        <>
            <Input
                type='search'
                className={cx(styles.formSelect)}
                list={`giveSearchSelect-${name}`}
                onChange={updateSearchableSelect(options, name, onChange)}
                autoComplete={'off'}
                aria-label={ariaLabel}
                placeholder={placeholder}
                {...rest}
            />
            <datalist

                id={`giveSearchSelect-${name}`}
                onChange={onChange}
            >
                {options.map(({value, text}) => (
                    <option
                        key={`${value}${text}`}
                        value={value === '0' ? text : `${text} (#${value})`}
                    />
                ))}
            </datalist>
        </>
    );
}

const updateSearchableSelect = (options, name, onChange) => {
    return (event) => {
        if(event.target.value === ''){
            onChange(name, 0);
        }
        const selectedIndex = options.findIndex((option) => {
            return event.target.value.endsWith(`(#${option.value})`);
        });
        if(selectedIndex > -1){
            onChange(name, options[selectedIndex].value);
        }
    }
}

Spamworldpro Mini