Jake Vanderwerf
2026-09-09 8318f60480aedd4aa1e64dc35468247dfbba9316
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import { CheckboxControl } from '@wordpress/components';
 
const CheckboxField = ({ field, value, onChange }) => {
    const selected = Array.isArray(value) ? value : [];
 
    const toggle = (key, checked) => {
        onChange(checked ? [...selected, key] : selected.filter((v) => v !== key));
    };
 
    return (
        <fieldset id={field.name}>
            <legend className="jvb-field-label">{field.label}</legend>
            {Object.entries(field.options || {}).map(([key, label]) => (
                <CheckboxControl
                    key={key}
                    label={label}
                    checked={selected.includes(key)}
                    onChange={(checked) => toggle(key, checked)}
                />
            ))}
        </fieldset>
    );
};
 
export default CheckboxField;