fix(ui): scope ToggleSwitch styles with CSS Modules to prevent label text collapsing into a vertical column

This commit is contained in:
LTbinglingfeng
2026-02-04 22:00:57 +08:00
parent 473cece09e
commit a94a9791bc
2 changed files with 67 additions and 4 deletions

View File

@@ -1,4 +1,5 @@
import type { ChangeEvent, ReactNode } from 'react';
import styles from './ToggleSwitch.module.scss';
interface ToggleSwitchProps {
checked: boolean;
@@ -21,7 +22,11 @@ export function ToggleSwitch({
onChange(event.target.checked);
};
const className = ['switch', labelPosition === 'left' ? 'switch-label-left' : '']
const className = [
styles.root,
labelPosition === 'left' ? styles.labelLeft : '',
disabled ? styles.disabled : '',
]
.filter(Boolean)
.join(' ');
@@ -34,10 +39,10 @@ export function ToggleSwitch({
disabled={disabled}
aria-label={ariaLabel}
/>
<span className="track">
<span className="thumb" />
<span className={styles.track}>
<span className={styles.thumb} />
</span>
{label && <span className="label">{label}</span>}
{label && <span className={styles.label}>{label}</span>}
</label>
);
}