react-widgets
Version:
212 lines (189 loc) • 6.34 kB
JSX
var React = require('react/addons')
var Widgets = require('../index')
var DropdownList = require('../src/dropdowns/Dropdown-List.jsx')
var Select = require('../src/select/select.jsx')
var Calendar = require('../src/calendar/calendar.jsx')
var DatePicker = require('../src/pickers/datepicker.jsx')
var NumberPicker = require('../src/pickers/numberpicker.jsx')
var ComboBox = require('../src/dropdowns/Combobox.jsx')
var chance = new (require('chance'))
//var _ = require('lodash')
var ListItem = React.createClass({
render: function(){
return (
<span>{ "hi: " + this.props.item.name}</span>
)
}
})
var App = React.createClass({
getInitialState: function(){
var list = generateList()
return {
data: list,
suggestdata: suggestList(),
dropdownValue: list[0],
comboboxValue: 1,
//comboboxValue: list[0],
selectValues: [1,3],
calDate: new Date(2014,5,10,0,0,0),
numberValue: 1
}
},
render: function(){
var self = this;
function change(field, data) {
var obj = {}
if(field === 'selectValues')
data = _.pluck(data, 'id')
obj[field] = _.has(data, 'id') ? data.id : data
self.setState(obj)
//console.log('example: set field: ' + field, data)
}
return (
<div style={{ fontSize: 14 }}>
<div style={{ maxWidth: 600 }}>
<section className="example" style={{ marginBottom: 20 }}>
<DropdownList
isRtl={false}
id='MyDropdownList'
data={ this.state.data }
textField='name'
valueField='id'
initialBufferSize={10}
busy={false}
disabled={true}
value={this.state.dropdownValue}
onChange={change.bind(null, 'dropdownValue')}/>
</section>
<section className="example" style={{ marginBottom: 20 }}>
<Calendar
value={ new Date }
onChange={change.bind(null, 'calValue')}/>
</section>
<section className="example" style={{ marginBottom: 20 }}>
<ComboBox
isRtl={true}
data={ this.state.suggestdata }
textField='name'
valueField='id'
filter={'startsWith'}
suggest={true}
busy={false}
disabled={false}
value={ this.state.comboboxValue}
onChange={change.bind(null, 'comboboxValue')}/>
</section>
<section className="example" style={{ marginBottom: 20 }}>
<Select
isRtl={false}
data={ this.state.data }
placeholder="hi i am a placeholder"
textField='name'
valueField='id'
value={ this.state.selectValues }
busy={false}
tagComponent={ListItem}
itemComponent={ListItem}
onChange={change.bind(null, 'selectValues')}/>
</section>
<section className="example" style={{ marginBottom: 20 }}>
<DatePicker
isRtl={false}
id='swweeeeet'
value={this.state.calDate}
time={false}
format='MM/dd/yy'
min={new Date(2014,5,1,0,0,0)}
max={new Date(2014,5,15,0,0,0)}
onChange={change.bind(null, 'calDate')}/>
</section>
<section className="example" style={{ marginBottom: 20 }}>
<NumberPicker id='AwesomeNumPicker'
isRtl={false}
format="D"
value={this.state.numberValue}
onChange={change.bind(null, 'numberValue')}/>
</section>
</div>
<div className='clearfix'>
<div className='c1' style={{ float: 'left', width: 150, height: 200 }}/>
<div className='c2' style={{ float: 'left', width: 150, height: 200 }}/>
<div className='c3' style={{ float: 'left', width: 150, height: 200 }}/>
<div className='c4' style={{ float: 'left', width: 150, height: 200 }}/>
<div className='c5' style={{ float: 'left', width: 150, height: 200 }}/>
<div className='c6' style={{ float: 'left', width: 150, height: 200 }}/>
<div className='c7' style={{ float: 'left', width: 150, height: 200 }}/>
<div className='c8' style={{ float: 'left', width: 150, height: 200 }}/>
</div>
</div>
)
},
})
React.renderComponent(
App()
, document.body);
function generateList(){
var arr = new Array(100)
for(var i = 0; i < arr.length; i++)
arr[i] = { id: i + 1, name: chance.name() }
return arr
}
function suggestList(){
var i = 0;
return [
{ id: i += 1, name: "james" },
{ id: i += 1, name: "jan" },
{ id: i += 1, name: "jase" },
{ id: i += 1, name: "jason" },
{ id: i += 1, name: "jim" },
{ id: i += 1, name: "jimmy" },
{ id: i += 1, name: "jimmy smith" },
{ id: i += 1, name: "john" }
]
}
// <section className="example" style={{ marginBottom: 20 }}>
// <Calendar
// id='Calendar'
// value={ new Date }
// onChange={change.bind(null, 'calValue')}/>
// </section>
// <section className="example" style={{ marginBottom: 20 }}>
// <ComboBox
// isRtl={false}
// data={ this.state.data }
// textField='name'
// valueField='id'
// suggest={true}
// busy={true}
// value={ this.state.comboboxValue}
// onChange={change.bind(null, 'comboboxValue')}/>
// </section>
// <section className="example" style={{ marginBottom: 20 }}>
// <Select
// isRtl={false}
// data={ this.state.data }
// placeholder="hi i am a placeholder"
// textField='name'
// valueField='id'
// value={ this.state.selectValues }
// busy={true}
// tagComponent={ListItem}
// itemComponent={ListItem}
// onChange={change.bind(null, 'selectValues')}/>
// </section>
// <section className="example" style={{ marginBottom: 20 }}>
// <DatePicker
// id='AwesomeDatePicker'
// isRtl={false}
// value={this.state.calDate}
// onChange={change.bind(null, 'calDate')}/>
// </section>
// <section className="example" style={{ marginBottom: 20 }}>
// <NumberPicker id='AwesomeNumPicker'
// isRtl={false}
// min={0}
// max={5}
// format="c"
// value={this.state.numberValue}
// onChange={change.bind(null, 'numberValue')}/>
// </section>