⬅️ Back to Table of Contents
📄 Checkbox.tsx
📊 Analysis Summary
Metric |
Count |
🔧 Functions |
1 |
📦 Imports |
2 |
💠 JSX Elements |
1 |
📐 Interfaces |
1 |
📚 Table of Contents
🛠️ File Location:
📂 packages/website/src/components/inputs/Checkbox.tsx
📦 Imports
Name |
Source |
useCallback |
react |
React |
react |
JSX Elements
Component |
Type |
Props |
Children |
input |
element |
checked={props.checked && !props.indeterminate}, className={props.className}, name={props.name}, onChange={(e): void => |
|
props.onChange(e.target.checked, props.value ?? '') |
|
|
|
}, ref={checkboxRef}, type="checkbox" |
none |
|
|
Functions
Checkbox(props: CheckboxProps): React.JSX.Element
Code
function Checkbox(props: CheckboxProps): React.JSX.Element {
const { indeterminate } = props;
const checkboxRef = useCallback(
(node: HTMLInputElement | null) => {
if (!node) {
return;
}
node.indeterminate = indeterminate ?? false;
},
[indeterminate],
);
return (
<input
checked={props.checked && !props.indeterminate}
className={props.className}
name={props.name}
onChange={(e): void =>
props.onChange(e.target.checked, props.value ?? '')
}
ref={checkboxRef}
type="checkbox"
/>
);
}
- Parameters:
props: CheckboxProps
- Return Type:
React.JSX.Element
- Calls:
useCallback (from react)
props.onChange
Interfaces
CheckboxProps
Interface Code
export interface CheckboxProps {
readonly checked: boolean | undefined;
readonly className?: string;
readonly indeterminate?: boolean;
readonly name: string;
readonly onChange: (checked: boolean, value: string) => void;
readonly value?: string;
}
Properties
Name |
Type |
Optional |
Description |
checked |
boolean | undefined |
✗ |
|
className |
string |
✓ |
|
indeterminate |
boolean |
✓ |
|
name |
string |
✗ |
|
onChange |
(checked: boolean, value: string) => void |
✗ |
|
value |
string |
✓ |
|