custom linear haptics

This commit is contained in:
Boof2015
2026-07-13 02:20:57 -04:00
parent a34d9cba89
commit 261d095090
42 changed files with 1569 additions and 89 deletions
+31
View File
@@ -0,0 +1,31 @@
import { Switch, type SwitchProps } from 'react-native';
import { hapticForToggle } from '@/lib/hapticCatalog';
import { playHaptic } from '@/lib/haptics';
export interface HapticSwitchProps
extends Omit<SwitchProps, 'value' | 'onValueChange'> {
value: boolean;
onValueChange: (value: boolean) => void;
}
/** Switch feedback fires only for a user-requested value transition. */
export function HapticSwitch({
value,
onValueChange,
...props
}: HapticSwitchProps) {
const handleValueChange = (nextValue: boolean) => {
if (nextValue !== value) playHaptic(hapticForToggle(nextValue));
onValueChange(nextValue);
};
return (
<Switch
{...props}
value={value}
onValueChange={handleValueChange}
/>
);
}
export default HapticSwitch;