MCPcopy
hub / github.com/facebook/react / Toggle

Function Toggle

packages/react-devtools-shared/src/devtools/views/Toggle.js:27–67  ·  view source on GitHub ↗
({
  children,
  className = '',
  isDisabled = false,
  isChecked,
  onChange,
  testName,
  title,
}: Props)

Source from the content-addressed store, hash-verified

25};
26
27export default function Toggle({
28 children,
29 className = '',
30 isDisabled = false,
31 isChecked,
32 onChange,
33 testName,
34 title,
35}: Props): React.Node {
36 let defaultClassName;
37 if (isDisabled) {
38 defaultClassName = styles.ToggleDisabled;
39 } else if (isChecked) {
40 defaultClassName = styles.ToggleOn;
41 } else {
42 defaultClassName = styles.ToggleOff;
43 }
44
45 const handleClick = useCallback(
46 () => onChange(!isChecked),
47 [isChecked, onChange],
48 );
49
50 let toggle = (
51 <button
52 className={`${defaultClassName} ${className}`}
53 data-testname={testName}
54 disabled={isDisabled}
55 onClick={handleClick}>
56 <span className={styles.ToggleContent} tabIndex={-1}>
57 {children}
58 </span>
59 </button>
60 );
61
62 if (title) {
63 toggle = <Tooltip label={title}>{toggle}</Tooltip>;
64 }
65
66 return toggle;
67}

Callers

nothing calls this directly

Calls 2

useCallbackFunction · 0.90
onChangeFunction · 0.50

Tested by

no test coverage detected