UNPKG

react-native-toggle-button

Version:

Cool and easy to use react native toggle button

44 lines 2.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const React = tslib_1.__importStar(require("react")); const react_native_1 = require("react-native"); /** * ? Local Imports */ const ToggleButton_style_1 = tslib_1.__importDefault(require("./ToggleButton.style")); const useStateWithCallback_1 = tslib_1.__importDefault(require("./helpers/useStateWithCallback")); const ToggleButton = ({ style, activeButtonStyle, activeTextStyle, inactiveButtonStyle, inactiveTextStyle, primaryText, secondaryText, initial = true, TouchableComponent = react_native_1.TouchableWithoutFeedback, onPress, }) => { const [isToggled, setToggled] = useStateWithCallback_1.default(initial); const handlePress = () => { setToggled(!isToggled, (newValue) => { onPress && onPress(newValue); }); }; const onToggleButtonStyle = isToggled ? [ToggleButton_style_1.default.activeButtonStyle, activeButtonStyle] : [ToggleButton_style_1.default.inactiveButtonStyle, inactiveButtonStyle]; const onToggleTextStyle = isToggled ? [ToggleButton_style_1.default.activeTextStyle, activeTextStyle] : [ToggleButton_style_1.default.inactiveTextStyle, inactiveTextStyle]; const offToggleButtonStyle = !isToggled ? [ToggleButton_style_1.default.activeButtonStyle, activeButtonStyle] : [ToggleButton_style_1.default.inactiveButtonStyle, inactiveButtonStyle]; const offToggleTextStyle = !isToggled ? [ToggleButton_style_1.default.activeTextStyle, activeTextStyle] : [ToggleButton_style_1.default.inactiveTextStyle, inactiveTextStyle]; return (<react_native_1.View style={[ToggleButton_style_1.default.container, style]}> <TouchableComponent style={{}} onPress={handlePress}> <react_native_1.View style={ToggleButton_style_1.default.containerGlue}> <react_native_1.View style={onToggleButtonStyle}> <react_native_1.Text style={onToggleTextStyle}>{primaryText}</react_native_1.Text> </react_native_1.View> <react_native_1.View style={offToggleButtonStyle}> <react_native_1.Text style={offToggleTextStyle}>{secondaryText}</react_native_1.Text> </react_native_1.View> </react_native_1.View> </TouchableComponent> </react_native_1.View>); }; exports.default = ToggleButton; //# sourceMappingURL=ToggleButton.js.map