@r3l/app
Version:
174 lines (146 loc) • 6.08 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireDefault(require("react"));
var _reactNativeWeb = require("react-native-web");
var _propTypes = _interopRequireDefault(require("prop-types"));
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
var ToggleSwitch = /*#__PURE__*/function (_React$Component) {
(0, _inherits2.default)(ToggleSwitch, _React$Component);
var _super = _createSuper(ToggleSwitch);
function ToggleSwitch() {
var _this;
(0, _classCallCheck2.default)(this, ToggleSwitch);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = _super.call.apply(_super, [this].concat(args));
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "offsetX", new _reactNativeWeb.Animated.Value(0));
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "dimensions", ToggleSwitch.calculateDimensions(_this.props.size));
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "createToggleSwitchStyle", function () {
return {
justifyContent: 'center',
width: _this.dimensions.width,
borderRadius: 20,
padding: _this.dimensions.padding,
backgroundColor: _this.props.isOn ? _this.props.onColor : _this.props.offColor
};
});
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "createInsideCircleStyle", function () {
return {
alignItems: 'center',
justifyContent: 'center',
marginRight: 4,
marginLeft: 4,
left: 0,
position: 'absolute',
backgroundColor: 'white',
transform: [{
translateX: _this.offsetX
}],
width: _this.dimensions.circleWidth,
height: _this.dimensions.circleHeight,
borderRadius: _this.dimensions.circleWidth / 2
};
});
return _this;
}
(0, _createClass2.default)(ToggleSwitch, [{
key: "render",
value: function render() {
var toValue = this.props.isOn ? this.dimensions.width - this.dimensions.translateX : 0;
_reactNativeWeb.Animated.timing(this.offsetX, {
toValue: toValue,
delay: 0,
duration: 300
}).start();
var _this$props = this.props,
isOn = _this$props.isOn,
onToggle = _this$props.onToggle;
return /*#__PURE__*/_react.default.createElement(_reactNativeWeb.TouchableOpacity, {
style: this.createToggleSwitchStyle(),
activeOpacity: 0.8,
onPress: function onPress() {
onToggle(!isOn);
}
}, /*#__PURE__*/_react.default.createElement(_reactNativeWeb.Animated.View, {
style: this.createInsideCircleStyle()
}));
}
}], [{
key: "calculateDimensions",
value: function calculateDimensions(size) {
switch (size) {
case 'custom':
return {
width: 32,
padding: 10,
circleWidth: 14,
circleHeight: 14,
translateX: 22
};
case 'custom2':
return {
width: 32,
padding: 10,
circleWidth: 14,
circleHeight: 14,
translateX: 18
};
case 'small':
return {
width: 50,
padding: 10,
circleWidth: 15,
circleHeight: 15,
translateX: 22
};
case 'large':
return {
width: 100,
padding: 20,
circleWidth: 30,
circleHeight: 30,
translateX: 38
};
default:
return {
width: 60,
padding: 12,
circleWidth: 18,
circleHeight: 18,
translateX: 26
};
}
}
}]);
return ToggleSwitch;
}(_react.default.Component);
exports.default = ToggleSwitch;
(0, _defineProperty2.default)(ToggleSwitch, "propTypes", {
isOn: _propTypes.default.bool.isRequired,
onColor: _propTypes.default.string.isRequired,
offColor: _propTypes.default.string.isRequired,
size: _propTypes.default.string,
onToggle: _propTypes.default.func.isRequired
});
(0, _defineProperty2.default)(ToggleSwitch, "defaultProps", {
isOn: false,
onColor: '#634fc9',
offColor: '#ecf0f1',
size: 'medium',
labelStyle: {},
icon: null
});
//# sourceMappingURL=toggleswitch.component.js.map