Currently this is works perfectly when the cell editor is opened by enter (I can see 13 in the keyPress prop, but it's null when its opened by tab navigation)
export const CellEditor = forwardRef((props, ref) => {
const { value, api: gridApi, keyPress, column } = props
const isOpenedByEnter = 13 === keyPress
// the above is null when the cell editor is opened by tab navigation, and no field for moude events
const checkboxRef = useRef()
const initialValue = isEmptyValue(value) ? undefined : value
const [checkboxValue, setCheckboxValue] = useState(initialValue)
useImperativeHandle(ref, () => {
return {
getValue: () => {
return checkboxValue
},
isPopup() {
return false
},
afterGuiAttached: () => {
isOpenedByEnter && toggleCheckbox()
},
}
})
const toggleCheckbox = () => {
setCheckboxValue((prevCheck) => !prevCheck)
}
const handleOnChange = (clickEvent) => {
setCheckboxValue(clickEvent.target.checked)
}
return (
<div>
<input type="checkbox" ref={checkboxRef} checked={!!checkboxValue} onChange={handleOnChange} />
</div>
)})