1
0
mirror of https://github.com/yldio/copilot.git synced 2024-09-22 14:23:50 +03:00
copilot/ui/src/components/checkbox/index.js

93 lines
1.7 KiB
JavaScript
Raw Normal View History

const classNames = require('classnames');
const React = require('react');
2016-12-08 14:41:37 +02:00
const constants = require('../../shared/constants');
const fns = require('../../shared/functions');
const match = require('../../shared/match');
const Styled = require('styled-components');
const {
colors,
boxes
} = constants;
const {
remcalc
} = fns;
const {
default: styled,
css
} = Styled;
const styles = {
...colors
};
const StyledInput = styled.input`
`;
const StyledLabel = styled.label`
color: #646464;
`;
const Checkbox = ({
checked = false,
children,
className,
disabled = false,
form,
2016-10-26 16:44:17 +03:00
id,
name,
onChange,
readOnly,
required,
selectionDirection,
style,
tabIndex
}) => {
const cn = classNames(
className,
styles.checkbox,
checked ? styles.checked : '',
disabled ? styles.disabled : ''
);
return (
2016-12-08 14:41:37 +02:00
<StyledLabel className={styles.label} htmlFor={id}>
<StyledInput
checked={checked}
2016-10-26 16:44:17 +03:00
className={cn}
disabled={disabled}
form={form}
2016-10-26 16:44:17 +03:00
id={id}
name={name}
2016-10-26 16:44:17 +03:00
onChange={onChange}
readOnly={readOnly}
required={required}
2016-10-26 16:44:17 +03:00
style={style}
tabIndex={tabIndex}
type='checkbox'
/>
<span>{children}</span>
2016-12-08 14:41:37 +02:00
</StyledLabel>
);
};
Checkbox.propTypes = {
2016-10-26 16:44:17 +03:00
checked: React.PropTypes.bool,
children: React.PropTypes.node,
className: React.PropTypes.string,
disabled: React.PropTypes.bool,
form: React.PropTypes.string,
2016-10-26 16:44:17 +03:00
id: React.PropTypes.string,
name: React.PropTypes.string,
onChange: React.PropTypes.func,
readOnly: React.PropTypes.bool,
required: React.PropTypes.bool,
selectionDirection: React.PropTypes.string,
style: React.PropTypes.object,
tabIndex: React.PropTypes.string
};
module.exports = Checkbox;