Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 26 27 28 29 30 31 32 33 34 35 36 37 | 1x 1x 1x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 4x 3x 3x 4x 4x 9x 9x 9x | import type { Bindable } from '../index.js';
import { debugRender, useValue } from '../index.js';
import type { WritableKeys } from '@anchorlib/core';
import type { InputProps } from './Types.js';
import { useRef } from 'react';
export function Checkbox<T extends Bindable, K extends WritableKeys<T>>({
ref,
bind,
name,
checked,
onChange,
...props
}: InputProps<T, K>) {
const selfRef = useRef<HTMLInputElement>(null);
debugRender(ref ?? selfRef);
const current = (useValue(bind, name) ?? checked ?? false) as boolean;
return (
<input
ref={ref ?? selfRef}
type="checkbox"
name={name as string}
checked={current}
onChange={(e) => {
if (bind) {
bind[name] = e.target.checked as T[K];
}
onChange?.(e);
}}
{...props}
/>
);
}
|