Vulcan/packages/vulcan-ui-bootstrap/lib/components/forms/Checkboxgroup.jsx

32 lines
1.1 KiB
React
Raw Normal View History

import React from 'react';
import { Checkbox } from 'formsy-react-components';
import { registerComponent } from 'meteor/vulcan:core';
2018-06-25 08:16:22 +02:00
import without from 'lodash/without';
// note: treat checkbox group the same as a nested component, using `path`
const CheckboxGroupComponent = ({ refFunction, label, path, value, updateCurrentValues, inputProperties }) => {
return (
<div className="form-group row">
<label className="control-label col-sm-3">{label}</label>
<div className="col-sm-9">
{inputProperties.options.map((option, i) => (
<Checkbox
layout="elementOnly"
key={i}
{...inputProperties}
label={option.label}
value={value.includes(option.value)}
ref={refFunction}
onChange={(name, isChecked) => {
const newValue = isChecked ? [...value, option.value] : without(value, option.value);
updateCurrentValues({ [path]: newValue });
}}
/>
))}
</div>
2018-06-24 09:05:54 +02:00
</div>
);
};
registerComponent('FormComponentCheckboxGroup', CheckboxGroupComponent);