@flexis/ui
Version:
Styleless React Components
38 lines • 2.93 kB
JavaScript
import { __decorate } from "tslib";
import React, { PureComponent } from 'react';
import PropTypes from 'prop-types';
import { Bind } from '../../helpers';
import { InputValuePropType } from '../common/types';
import { style, classes } from './Switch.st.css';
let Switch = /** @class */ (() => {
class Switch extends PureComponent {
render() {
const { className, elementRef, ...props } = this.props;
return (<input ref={elementRef} {...props} className={style(classes.root, className)} onChange={this.onChange}/>);
}
onChange(event) {
const { onChange, value } = this.props;
if (typeof onChange === 'function') {
const nextValue = typeof value !== 'undefined'
? value
: event.currentTarget.checked;
onChange(nextValue, event);
}
}
}
Switch.propTypes = {
elementRef: PropTypes.func,
type: PropTypes.oneOf([
'checkbox',
'radio'
]).isRequired,
onChange: PropTypes.func,
value: InputValuePropType
};
__decorate([
Bind()
], Switch.prototype, "onChange", null);
return Switch;
})();
export default Switch;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3dpdGNoLmpzeCIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1N3aXRjaC9Td2l0Y2gudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssRUFBRSxFQUliLGFBQWEsRUFDYixNQUFNLE9BQU8sQ0FBQztBQUNmLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLEVBRU4sSUFBSSxFQUNKLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTixrQkFBa0IsRUFDbEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ04sS0FBSyxFQUNMLE9BQU8sRUFDUCxNQUFNLGlCQUFpQixDQUFDO0FBY3pCO0lBQUEsTUFBcUIsTUFBTyxTQUFRLGFBQXFCO1FBWXhELE1BQU07WUFFTCxNQUFNLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixHQUFHLEtBQUssRUFDUixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFFZixPQUFPLENBQ04sQ0FBQyxLQUFLLENBQ0wsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQ2hCLElBQUksS0FBSyxDQUFDLENBQ1YsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FDMUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUN2QixDQUNGLENBQUM7UUFDSCxDQUFDO1FBR08sUUFBUSxDQUFDLEtBQW9DO1lBRXBELE1BQU0sRUFDTCxRQUFRLEVBQ1IsS0FBSyxFQUNMLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUVmLElBQUksT0FBTyxRQUFRLEtBQUssVUFBVSxFQUFFO2dCQUVuQyxNQUFNLFNBQVMsR0FBRyxPQUFPLEtBQUssS0FBSyxXQUFXO29CQUM3QyxDQUFDLENBQUMsS0FBSztvQkFDUCxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7Z0JBRS9CLFFBQVEsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDM0I7UUFDRixDQUFDOztJQTVDTSxnQkFBUyxHQUFHO1FBQ2xCLFVBQVUsRUFBRSxTQUFTLENBQUMsSUFBSTtRQUMxQixJQUFJLEVBQVEsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUMzQixVQUFVO1lBQ1YsT0FBTztTQUNQLENBQUMsQ0FBQyxVQUFVO1FBQ2IsUUFBUSxFQUFJLFNBQVMsQ0FBQyxJQUFJO1FBQzFCLEtBQUssRUFBTyxrQkFBa0I7S0FDOUIsQ0FBQztJQXFCRjtRQURDLElBQUksRUFBRTswQ0FnQk47SUFDRixhQUFDO0tBQUE7ZUEvQ29CLE1BQU0ifQ==