Files
dashboards/apps/business/src/components/ToggleSwitch.tsx
T
Alireza HassaniandCursor f566387c61 Initial commit: Meshkee dashboards monorepo.
Includes business, customer, and super-admin apps with shared packages and production deploy scripts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 13:48:53 +03:30

32 lines
736 B
TypeScript

import styles from './ToggleSwitch.module.css'
interface ToggleSwitchProps {
checked: boolean
onChange: (checked: boolean) => void
disabled?: boolean
ariaLabel?: string
size?: 'default' | 'compact'
}
export function ToggleSwitch({
checked,
onChange,
disabled,
ariaLabel,
size = 'default',
}: ToggleSwitchProps) {
return (
<button
type="button"
role="switch"
aria-checked={checked}
aria-label={ariaLabel ?? (checked ? 'Enabled' : 'Disabled')}
className={`${styles.switch} ${size === 'compact' ? styles.compact : ''} ${checked ? styles.on : ''}`}
onClick={() => onChange(!checked)}
disabled={disabled}
>
<span className={styles.thumb} />
</button>
)
}