blob: ae9312845fb7bcbc3e55c82e8a2fb10be6ec09e7 [file] [log] [blame]
Jeremy Mordkoffe29efc32016-09-07 18:59:17 -04001import React from 'react';
2
3import 'style/base.scss';
4import './button.scss';
5
6const icons = {
7 check: require("style/icons/svg-sprite-navigation-symbol.svg") + "#ic_check_24px"
8}
9
10export default class SqButton extends React.Component {
11 constructor(props) {
12 super(props);
13 }
14 render() {
15 let {icon, primary, size, disabled, label, ...props} = this.props;
16 let svgHTML = null;
17 let Class = "SqButton";
18 if(icon) {
19 svgHTML = <svg className="svg-24px SqButton-icon">
20 <use xlinkHref={icons[icon]}></use></svg>;
21 }
22 if(primary) {
23 Class += " SqButton--primary";
24 } else {
25 Class += " SqButton--normal";
26 }
27 if(size && (
28 size == 'small'
29 || size == 'medium'
30 || size == 'large'
31 )
32 ) {
33 Class += " SqButton--" + size;
34 }
35 if(disabled) {
36 Class += " is-disabled";
37 }
38 return (
39 <div style={{display: 'flex'}}>
40 <div className={Class} tabIndex="0">
41 {svgHTML}
42 <div className="SqButton-content">{label}</div>
43 </div>
44 </div>
45 )
46 }
47}
48
49SqButton.defaultProps = {
50 icon: false,
51 primary: false,
52 disabled: false,
53 size: false, // 'small', 'medium', 'large'
54 label: 'Submit'
55}