You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.5 KiB

window['css-animation'] = require('css-animation');
window['react-router'] = require('react-router');
9 years ago
var antd = require('antd');
10 years ago
var $ = require('jquery');
var React = require('react');
InstantClickChangeFns.push(function () {
// auto complete for components
10 years ago
var Select = antd.Select;
var Option = Select.Option;
// 获取搜索数据
var searchData = window.ANT_COMPONENTS.sort(function(a, b){
return a.title.localeCompare(b.title);
});
10 years ago
var AutoComplete = React.createClass({
getOptions() {
return searchData.map(function (s) {
return <Option sData={s} key={s.title} text={'跳转到 ' + s.title}>
10 years ago
<strong>{s.title}</strong>
9 years ago
&nbsp;
<span className="ant-component-decs">{s.desc}</span>
10 years ago
</Option>;
});
},
handleSelect(value) {
9 years ago
location.href = rootUrl + '/components/' + value.replace(/([a-z])([A-Z])/g, function (m, m1, m2) {
10 years ago
return m1 + '-' + m2;
9 years ago
}).toLowerCase() + '/';
10 years ago
},
filterOption(input, option) {
return option.props.sData.title.toLowerCase().indexOf(input.toLowerCase()) !== -1 || option.props.sData.desc.indexOf(input) !== -1;
},
render() {
return <Select combobox style={{width: '100%'}}
onSelect={this.handleSelect}
optionLabelProp="text"
dropdownClassName="autoComplete"
searchPlaceholder="搜索组件..."
10 years ago
filterOption={this.filterOption}>{this.getOptions()}</Select>;
}
});
React.render(<AutoComplete/>, document.getElementById('autoComplete'));
});
9 years ago
module.exports = antd;