Skip to content

Commit

Permalink
one-of-type
Browse files Browse the repository at this point in the history
  • Loading branch information
Lobos committed May 25, 2016
1 parent fa84fa0 commit 7b511a0
Show file tree
Hide file tree
Showing 28 changed files with 131 additions and 185 deletions.
1 change: 1 addition & 0 deletions .eslintignore
@@ -0,0 +1 @@
test/**/*
3 changes: 2 additions & 1 deletion docs/src/js/pages/form.jsx
Expand Up @@ -30,6 +30,7 @@ module.exports = class extends React.Component {
<div className="content">
<Code>
{`<Form
button='string' // 只有submit按钮,可以使用button
buttons={
submit: 'string', // submit 按钮文字
reset: 'string', // reset 按钮文字
Expand Down Expand Up @@ -63,7 +64,7 @@ module.exports = class extends React.Component {
value={this.state.layout}
onChange={layout => this.setState({ layout })} />

<Form buttons={'Submit'} layout={this.state.layout}>
<Form button='Submit' layout={this.state.layout}>
<FormControl label="name">
<Input name="name" style={{width: '10rem'}} type="text" min={2} max={6} />
</FormControl>
Expand Down
3 changes: 3 additions & 0 deletions package.json
Expand Up @@ -56,6 +56,7 @@
"express": "~4.13.4",
"extract-text-webpack-plugin": "~1.0.1",
"file-loader": "~0.8.5",
"gulp": "^3.9.1",
"gulp-webdriver": "^2.0.1",
"history": "~2.0.1",
"isparta-instrumenter-loader": "^1.0.0",
Expand Down Expand Up @@ -99,12 +100,14 @@
"url-loader": "~0.5.7",
"wdio-mocha-framework": "^0.2.13",
"wdio-selenium-standalone-service": "0.0.3",
"webdriverio": "^4.0.7",
"webpack": "~1.12.14",
"webpack-dev-middleware": "~1.5.1",
"webpack-hot-middleware": "~2.10.0"
},
"dependencies": {
"curry": "^1.2.0",
"one-of-type": "^0.1.0",
"refetch": "^0.2.1"
}
}
8 changes: 4 additions & 4 deletions src/Datepicker/Datetime.js
@@ -1,6 +1,6 @@
'use strict';

import React, { Component, PropTypes } from 'react';
import React, { Component } from 'react';
import { findDOMNode } from 'react-dom';
import classnames from 'classnames';
import { overView, getOuterHeight } from '../utils/dom';
Expand All @@ -10,7 +10,7 @@ import TimeSet from './TimeSet';
import Clock from './Clock';
import { ANGLE_LEFT, ANGLE_RIGHT, ANGLE_LEFT_DOUBLE, ANGLE_RIGHT_DOUBLE } from '../svgs';
import Transition from '../Transition';
import { PropDatetime } from '../utils/proptypes';
import PropTypes from '../utils/proptypes';

import Styles from '../styles/_datepicker.scss';
import InputStyles from '../styles/_input.scss';
Expand Down Expand Up @@ -458,8 +458,8 @@ Datetime.propTypes = {
className: PropTypes.string,
format: PropTypes.string,
hasError: PropTypes.bool,
max: PropDatetime,
min: PropDatetime,
max: PropTypes.datetime,
min: PropTypes.datetime,
onChange: PropTypes.func,
placeholder: PropTypes.string,
readOnly: PropTypes.bool,
Expand Down
8 changes: 4 additions & 4 deletions src/Datepicker/Pair.js
@@ -1,9 +1,9 @@
'use strict';

import React, { PropTypes } from 'react';
import React from 'react';
import { shallowEqual } from '../utils/objects';
import Datepicker from './index';
import { PropDatetime } from '../utils/proptypes';
import PropTypes from '../utils/proptypes';

export default class Pair extends React.Component {
constructor (props) {
Expand Down Expand Up @@ -37,8 +37,8 @@ Pair.isFormItem = true;

Pair.propTypes = {
con: PropTypes.any,
max: PropDatetime,
min: PropDatetime,
max: PropTypes.datetime,
min: PropTypes.datetime,
names: PropTypes.array
};

Expand Down
23 changes: 7 additions & 16 deletions src/Form.js
@@ -1,13 +1,14 @@
'use strict';

import React, { Children, Component, PropTypes, cloneElement } from 'react';
import React, { Children, Component, cloneElement } from 'react';
import classnames from 'classnames';
import { forEach, deepEqual, hashcode } from './utils/objects';
import clone from './utils/clone';
import { getGrid } from './utils/grids';
import FormControl from './FormControl';
import FormSubmit from './FormSubmit';
import Button from './Button';
import PropTypes from './utils/proptypes';

import { fetchEnhance } from './higherOrders/Fetch';

Expand Down Expand Up @@ -217,7 +218,7 @@ class Form extends Component {
}

render () {
let { button, buttons, controls, children, className, onSubmit, grid, layout, ...props } = this.props;
let { button, buttons, controls, children, className, grid, layout, ...props } = this.props;

className = classnames(
className,
Expand All @@ -226,11 +227,10 @@ class Form extends Component {
FormStyles[layout]
);

// old api
let btns = buttons || button;

return (
<form onSubmit={this.handleSubmit} className={className} {...props}>
<form {...props} onSubmit={this.handleSubmit} className={className}>
{controls && this.renderControls()}
{this.renderChildren(children)}
{btns && this.renderButtons(btns)}
Expand All @@ -242,24 +242,15 @@ class Form extends Component {
Form.propTypes = {
beforeSubmit: PropTypes.func,
button: PropTypes.string,
buttons: PropTypes.oneOfType([
PropTypes.string,
PropTypes.object
]),
buttons: PropTypes.object,
children: PropTypes.any,
className: PropTypes.string,
controls: PropTypes.array,
data: PropTypes.object,
disabled: PropTypes.bool,
grid: PropTypes.oneOfType([
PropTypes.number,
PropTypes.object
]),
grid: PropTypes.grid,
hintType: PropTypes.oneOf(['block', 'none', 'pop', 'inline']),
labelWidth: PropTypes.oneOfType([
PropTypes.number,
PropTypes.string
]),
labelWidth: PropTypes.number_string,
layout: PropTypes.oneOf(['aligned', 'stacked', 'inline']),
onCancel: PropTypes.func,
onReset: PropTypes.func,
Expand Down
24 changes: 6 additions & 18 deletions src/FormControl.js
@@ -1,13 +1,14 @@
'use strict';

import React, { Component, PropTypes, cloneElement, Children } from 'react';
import React, { Component, cloneElement, Children } from 'react';
import classnames from 'classnames';
import objectAssign from 'object-assign';
import { COMPONENTS, getValueType } from './higherOrders/FormItem';
import merge from './utils/merge';
import { getGrid } from './utils/grids';
import { format } from './utils/strings';
import { forEach, shallowEqual } from './utils/objects';
import PropTypes from './utils/proptypes';

import { getLang, setLang } from './lang';
setLang('validation');
Expand Down Expand Up @@ -294,33 +295,20 @@ FormControl.propTypes = {
data: PropTypes.any,
errorText: PropTypes.string,
formData: PropTypes.object,
grid: PropTypes.oneOfType([
PropTypes.number,
PropTypes.object
]),
grid: PropTypes.grid,
hintType: PropTypes.oneOf(['block', 'none', 'pop', 'inline']),
itemBind: PropTypes.func,
itemChange: PropTypes.func,
itemUnbind: PropTypes.func,
label: PropTypes.oneOfType([
PropTypes.string,
PropTypes.element
]),
labelWidth: PropTypes.oneOfType([
PropTypes.number,
PropTypes.string
]),
label: PropTypes.element_string,
labelWidth: PropTypes.number_string,
layout: PropTypes.oneOf(['aligned', 'stacked', 'inline']),
name: PropTypes.string,
onChange: PropTypes.func,
placeholder: PropTypes.string,
readOnly: PropTypes.bool,
required: PropTypes.bool,
style: PropTypes.object,
tip: PropTypes.oneOfType([
PropTypes.element,
PropTypes.string
]),
tip: PropTypes.element_string,
type: PropTypes.string,
value: PropTypes.any
};
Expand Down
5 changes: 3 additions & 2 deletions src/Icon.js
@@ -1,8 +1,9 @@
'use strict';

import React, { PropTypes } from 'react';
import React from 'react';
import classnames from 'classnames';
import objectAssign from 'object-assign';
import PropTypes from './utils/proptypes';

import Styles from './styles/_icon.scss';

Expand Down Expand Up @@ -52,7 +53,7 @@ Icon.propTypes = {
font: PropTypes.string,
icon: PropTypes.string,
prefix: PropTypes.string,
size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
size: PropTypes.number_string,
spin: PropTypes.bool,
style: PropTypes.object
};
Expand Down
8 changes: 3 additions & 5 deletions src/Input.js
@@ -1,10 +1,11 @@
'use strict';

import React, { Component, PropTypes } from 'react';
import React, { Component } from 'react';
import classnames from 'classnames';
import Regs from './utils/regs';
import { getGrid } from './utils/grids';
import { register } from './higherOrders/FormItem';
import PropTypes from './utils/proptypes';

import Styles from './styles/_input.scss';

Expand Down Expand Up @@ -93,10 +94,7 @@ class Input extends Component {
Input.propTypes = {
className: PropTypes.string,
defaultValue: PropTypes.string,
grid: PropTypes.oneOfType([
PropTypes.number,
PropTypes.object
]),
grid: PropTypes.grid,
id: PropTypes.string,
onBlur: PropTypes.func,
onChange: PropTypes.func,
Expand Down
8 changes: 3 additions & 5 deletions src/InputGroup.js
@@ -1,10 +1,11 @@
'use strict';

import React, { Children, PropTypes, cloneElement } from 'react';
import React, { Children, cloneElement } from 'react';
import classnames from 'classnames';
import { getGrid } from './utils/grids';
import Input from './Input';
import Button from './Button';
import PropTypes from './utils/proptypes';

import InputStyles from './styles/_input-group.scss';

Expand Down Expand Up @@ -41,10 +42,7 @@ export default function InputGroup (props) {
InputGroup.propTypes = {
children: PropTypes.array,
className: PropTypes.string,
grid: PropTypes.oneOfType([
PropTypes.number,
PropTypes.object
]),
grid: PropTypes.grid,
size: PropTypes.oneOf(['large', 'middle', 'small'])
};

Expand Down
4 changes: 2 additions & 2 deletions src/Message/Container.js
@@ -1,12 +1,12 @@
'use strict';

import { Component, DOM } from 'react';
import React, { DOM } from 'react';
import Message from './Message';
import { isEmpty } from '../utils/objects';

import Styles from '../styles/_message.scss';

export default class extends Component {
export default class extends React.Component {
constructor (props) {
super(props);

Expand Down
4 changes: 2 additions & 2 deletions src/Message/Message.js
@@ -1,11 +1,11 @@
'use strict';

import { Component, PropTypes } from 'react';
import React, { PropTypes } from 'react';
import Alert from '../Alert';

import Styles from '../styles/_message.scss';

export default class Message extends Component {
export default class Message extends React.Component {
constructor (props) {
super(props);
this.state = {
Expand Down
1 change: 1 addition & 0 deletions src/Message/index.js
@@ -1,5 +1,6 @@
'use strict';

import React from 'react';
import ReactDOM from 'react-dom';
import { nextUid } from '../utils/strings';
import Container from './Container';
Expand Down
28 changes: 10 additions & 18 deletions src/Modal/Fake.js
@@ -1,10 +1,11 @@
'use strict';

import React, { Component, PropTypes, DOM } from 'react';
import React, { DOM } from 'react';
import { nextUid } from '../utils/strings';
import PropTypes from '../utils/proptypes';

export default function (open, close) {
class Modal extends Component {
class Modal extends React.Component {
constructor (props) {
super(props);
this.id = nextUid();
Expand All @@ -16,10 +17,6 @@ export default function (open, close) {
}
}

componentWillUnmount () {
close(this.id);
}

componentWillReceiveProps (nextProps) {
if (!nextProps.isOpen && !this.props.isOpen) {
return;
Expand All @@ -32,6 +29,10 @@ export default function (open, close) {
}
}

componentWillUnmount () {
close(this.id);
}

renderModal (props) {
open({
id: this.id,
Expand All @@ -46,21 +47,12 @@ export default function (open, close) {
}

Modal.propTypes = {
buttons: PropTypes.oneOfType([
PropTypes.object,
PropTypes.array
]),
buttons: PropTypes.array_object,
children: PropTypes.any,
isOpen: PropTypes.bool,
onClose: PropTypes.func,
padding: PropTypes.oneOfType([
PropTypes.number,
PropTypes.string
]),
title: PropTypes.oneOfType([
PropTypes.string,
PropTypes.element
]),
padding: PropTypes.number_string,
title: PropTypes.element_string,
width: PropTypes.number
};

Expand Down

0 comments on commit 7b511a0

Please sign in to comment.