项目文件夹

文件
wehub-resource-sync 98e40dac97
CLI Smoke Test / smoke-test-linux (20) (push) Has been cancelled
CLI Smoke Test / smoke-test-linux (24) (push) Has been cancelled
CLI Smoke Test / smoke-test-windows (20) (push) Has been cancelled
CLI Smoke Test / smoke-test-windows (24) (push) Has been cancelled
Expo App TypeScript typecheck / typecheck (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:40:49 +08:00

27 行
749 B
TypeScript

import { useState } from 'react'
import './ToggleSwitch.css'
interface ToggleSwitchProps {
label: string
defaultChecked?: boolean
}
export function ToggleSwitch({ label, defaultChecked = false }: ToggleSwitchProps) {
const [checked, setChecked] = useState(defaultChecked)
return (
<button
type="button"
className={checked ? 'toggle-switch toggle-switch--checked' : 'toggle-switch'}
role="switch"
aria-checked={checked}
aria-label={label}
onClick={() => setChecked((value) => !value)}
>
<span className="toggle-switch__track">
<span className="toggle-switch__thumb" />
</span>
</button>
)
}