LCOV - code coverage report
Current view: top level - dashql-app/src/ui/foundations - toggle_switch.tsx Coverage Total Hit
Test: DashQL 915828b Lines: 100.0 % 19 19
Test Date: 2026-11-06 19:30:32

            Line data    Source code
       1              : import * as React from 'react';
       2              : import * as styles from './toggle_switch.module.css';
       3              : 
       4              : import { classNames } from '../../utils/classnames.js';
       5              : 
       6              : interface ToggleSwitchProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onChange'> {
       7              :     checked: boolean;
       8              :     size?: 'small' | 'medium';
       9              : }
      10              : 
      11            1 : export const ToggleSwitch = React.forwardRef<HTMLButtonElement, ToggleSwitchProps>((props: ToggleSwitchProps, ref) => {
      12            1 :     const { checked, className, disabled, size = 'medium', type, ...rest } = props;
      13            1 :     return (
      14            1 :         <button
      15            1 :             {...rest}
      16            1 :             ref={ref}
      17            1 :             type={type ?? 'button'}
      18            1 :             role="switch"
      19            1 :             aria-checked={checked}
      20            1 :             disabled={disabled}
      21            1 :             className={classNames(styles.root, {
      22            1 :                 [styles.checked]: checked,
      23            1 :                 [styles.disabled]: disabled,
      24            1 :                 [styles.small]: size === 'small',
      25            1 :                 [styles.medium]: size === 'medium',
      26            1 :             }, className)}
      27              :         >
      28            1 :             <span className={styles.handle} />
      29            1 :         </button>
      30              :     );
      31            1 : });
        

Generated by: LCOV version 2.0-1