diff --git a/modules/ppcp-settings/resources/js/Components/ReusableComponents/Fields/OptionSelector.js b/modules/ppcp-settings/resources/js/Components/ReusableComponents/Fields/OptionSelector.js new file mode 100644 index 000000000..d2c52fa2d --- /dev/null +++ b/modules/ppcp-settings/resources/js/Components/ReusableComponents/Fields/OptionSelector.js @@ -0,0 +1,100 @@ +import classNames from 'classnames'; +import { PayPalCheckbox, PayPalRdb } from './index'; + +const OptionSelector = ( { + multiSelect = false, + options, + value, + onChange, +} ) => ( +
+ { options.map( + ( { value: itemValue, title, description, contents } ) => { + let isSelected; + + if ( Array.isArray( value ) ) { + isSelected = value.includes( itemValue ); + } else { + isSelected = value === itemValue; + } + + return ( + + { contents } + + ); + } + ) } +
+); + +export default OptionSelector; + +const OptionItem = ( { + itemTitle, + itemDescription, + itemValue, + onChange, + isMulti, + isSelected, + children, +} ) => { + const boxClassName = classNames( 'ppcp-r-select-box', { + 'ppcp--selected': isSelected, + } ); + + return ( +
+ + +
+
+ + { itemTitle } + +

+ { itemDescription } +

+ { children && ( +
+ { children } +
+ ) } +
+
+
+ ); +}; + +const InputField = ( { value, onChange, isRadio, isSelected } ) => { + if ( isRadio ) { + return ( + + ); + } + + return ( + + ); +}; diff --git a/modules/ppcp-settings/resources/js/Components/ReusableComponents/Fields/index.js b/modules/ppcp-settings/resources/js/Components/ReusableComponents/Fields/index.js index 9544463a5..4cc675afc 100644 --- a/modules/ppcp-settings/resources/js/Components/ReusableComponents/Fields/index.js +++ b/modules/ppcp-settings/resources/js/Components/ReusableComponents/Fields/index.js @@ -8,4 +8,5 @@ export { default as RadioGroup } from './RadioGroup'; export { default as PayPalRdb } from './RadioButton'; export { default as PayPalRdbWithContent } from './RadioContent'; export { default as SelectBox } from './SelectableContent'; +export { default as OptionSelector } from './OptionSelector'; export { default as Select } from './Select';