admin / SAynapse-Horizon
publicSelf Hosted Cyber Threat Intelligence Hub
SAynapse-Horizon / Synapse-Horizon / src / components / ToggleSwitch.jsx
934 B · main
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 | // Accessible on/off switch used across the control panel. export default function ToggleSwitch({ checked, onChange, disabled = false, label }) { return ( <button type="button" role="switch" aria-checked={checked} aria-label={label} disabled={disabled} onClick={onChange} className={[ 'relative inline-flex h-5 w-9 shrink-0 items-center rounded-full transition-colors duration-200 focus:outline-none focus-visible:ring-2 focus-visible:ring-sky-500/60', checked ? 'bg-emerald-500/80' : 'bg-slate-700', disabled ? 'opacity-40 cursor-not-allowed' : 'cursor-pointer', ].join(' ')} > <span className={[ 'inline-block h-3.5 w-3.5 transform rounded-full bg-white shadow-sm transition-transform duration-200', checked ? 'translate-x-4.5 translate-x-[18px]' : 'translate-x-1', ].join(' ')} /> </button> ) } |