HEX
Server: LiteSpeed
System: Linux server315.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: globfdxw (6114)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //home/globfdxw/www/wp-content/plugins/give/src/Views/Components/Select/index.js
import PropTypes from 'prop-types';
import classNames from 'classnames';

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

const Select = ({options, onChange, defaultValue, className, ...rest}) => {
    const optionElements = options.map((option) => (
        <option key={option.value} value={option.value}>
            {option.label}
        </option>
    ));
    return (
        <div key={defaultValue} className={classNames(style.select, className)}>
            <select onChange={onChange} defaultValue={defaultValue} {...rest}>
                {optionElements}
            </select>
        </div>
    );
};

Select.propTypes = {
    // Array of objects with labels and values defining select options (ex: {label: Option A, value: option-a})
    options: PropTypes.array.isRequired,
    // Fired on select change event
    onChange: PropTypes.func,
    // Default value of select element
    defaultValue: PropTypes.string.isRequired,
    // Additional class
    className: PropTypes.string,
};
export default Select;