![]() 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/ |
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); } } }