tuya-panel-kit
Version:
a functional component library for developing tuya device panels!
138 lines (109 loc) • 4.46 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _jsxFileName = 'src/components/slider/index.js';
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactNative = require('react-native');
var _slider = require('./slider');
var _slider2 = _interopRequireDefault(_slider);
var _utils = require('../../utils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
var isNil = _utils.CoreUtils.isNil;
var getTheme = _utils.ThemeUtils.getTheme,
ThemeConsumer = _utils.ThemeUtils.ThemeConsumer;
var ThemedSlider = function ThemedSlider(props) {
var localTheme = props.theme,
rest = _objectWithoutProperties(props, ['theme']);
return _react2.default.createElement(
ThemeConsumer,
{
__source: {
fileName: _jsxFileName,
lineNumber: 13
}
},
function (globalTheme) {
var isHoriz = typeof props.horizontal === 'undefined' || props.horizontal;
var theme = _extends({}, globalTheme, {
slider: _extends({}, globalTheme.slider, localTheme)
});
var propsWithTheme = _extends({ theme: theme }, rest);
var width = getTheme(propsWithTheme, 'slider.width');
var trackRadius = getTheme(propsWithTheme, 'slider.trackRadius');
var trackHeight = getTheme(propsWithTheme, 'slider.trackHeight');
var thumbSize = getTheme(propsWithTheme, 'slider.thumbSize');
var thumbRadius = getTheme(propsWithTheme, 'slider.thumbRadius');
var trackStyle = isHoriz ? { height: trackHeight } : { width: trackHeight };
var themedProps = {
style: isNil(width) ? null : { width: width },
trackStyle: _extends({
borderRadius: trackRadius
}, trackStyle),
thumbStyle: {
width: thumbSize,
height: thumbSize,
borderRadius: thumbRadius
}
};
var keys = ['thumbTintColor', 'minimumTrackTintColor', 'maximumTrackTintColor'];
keys.forEach(function (themeKey) {
var path = 'slider.' + themeKey;
themedProps[themeKey] = getTheme(propsWithTheme, path);
});
return _react2.default.createElement(_slider2.default, _extends({}, themedProps, props, {
__source: {
fileName: _jsxFileName,
lineNumber: 44
}
}));
}
);
};
ThemedSlider.propTypes = _extends({}, _slider2.default.propTypes, {
theme: _propTypes2.default.shape({
width: _propTypes2.default.number,
trackRadius: _propTypes2.default.number,
trackHeight: _propTypes2.default.number,
thumbSize: _propTypes2.default.number,
thumbRadius: _propTypes2.default.number,
thumbTintColor: _reactNative.ColorPropType,
minimumTrackTintColor: _reactNative.ColorPropType,
maximumTrackTintColor: _reactNative.ColorPropType
})
});
ThemedSlider.defaultProps = {
theme: null
};
ThemedSlider.Vertical = function (_props) {
return _react2.default.createElement(ThemedSlider, _extends({}, _props, { ref: _props.sliderRef, horizontal: false, styles: _slider.verticalStyles, __source: {
fileName: _jsxFileName,
lineNumber: 93
}
}));
};
ThemedSlider.Horizontal = function (_props) {
return _react2.default.createElement(ThemedSlider, _extends({}, _props, { ref: _props.sliderRef, horizontal: true, __source: {
fileName: _jsxFileName,
lineNumber: 97
}
}));
};
ThemedSlider.dpView = function (WrappedComponent) {
return function (_props) {
return _react2.default.createElement(WrappedComponent, _extends({}, _props, {
minimumValue: _props.min || _props.minimumValue,
maximumValue: _props.max || _props.maximumValue,
stepValue: _props.step || _props.stepValue,
__source: {
fileName: _jsxFileName,
lineNumber: 101
}
}));
};
};
exports.default = ThemedSlider;