UNPKG

@arnelirobles/rnxjs

Version:

Minimalist Vanilla JS component system with reactive data binding.

32 lines (27 loc) 869 B
import { createComponent } from '../../utils/createComponent.js'; export function Checkbox({ label = '', name = '', value = '', checked = false, disabled = false, required = false, onchange }) { const template = () => ` <div class="form-check"> <input class="form-check-input" type="checkbox" name="${name}" value="${value}" ${checked === 'true' ? 'checked' : ''} ${disabled ? 'disabled' : ''} ${required ? 'required' : ''} data-ref="checkbox" /> <label class="form-check-label"> ${label} </label> </div> `; const checkbox = createComponent(template, { label, name, value, checked, disabled, required }); checkbox.useEffect(() => { if (onchange) { checkbox.refs.checkbox.addEventListener('change', onchange); } }); return checkbox; }