cuz
Version:
Front-end modular development kit.
73 lines (65 loc) • 2.94 kB
JavaScript
import 'babel-core/polyfill';
import './index.css';
import React from 'react';
import ReactDOM from 'react-dom';
import createStore from './store';
import App from './App';
import themeCreate from './cuz-theme';
import { combineReducers } from 'redux';
import { default as _cuz } from './redux-loading-reducer';
export default function(reducers, routes, options = {}) {
if (typeof reducers === 'function') {
console.error(`cuz: 异步 action 中已移除 readyState 字段, 请删除相应 reducer 中对 readyState === 'success' 的判断.`);
console.error('cuz: reducers 已修改为直接传递 Object 即可, 不需再使用 combineReducers 进行包装. 请移除 RootReduces 中的 combineReducers.');
return;
}
const store = createStore(combineReducers({
_cuz,
...reducers
}), options);
if (process.env.NODE_ENV === 'development' && module.hot) {
const basedir = process.cwd();
module.hot.accept(basedir + '/app/reducers', () => {
const newReducers = require(basedir + '/app/reducers');
store.replaceReducer(newReducers);
});
}
ReactDOM.render(
<App routes={routes()} store={store} theme={themeCreate(options.theme)} />,
document.getElementById('root')
);
}
export * from './utils';
// TODO 临时导出所有组件用于方便编写文档.
export * from 'react-bootstrap';
export { Grid, Row, Col } from './components/Grid';
export Button from './components/Button';
export ButtonGroup from './components/ButtonGroup';
export ButtonToolbar from './components/ButtonToolbar';
export Input from './components/Input';
export Checkbox from './components/Checkbox';
export Radio from './components/Radio';
export SearchGroup from './components/SearchGroup';
export NumberInput from './components/NumberInput';
export RadioGroup from './components/RadioGroup';
export CheckboxGroup from './components/CheckboxGroup';
export { Breadcrumb, BreadcrumbItem } from './components/Breadcrumb';
export Label from './components/Label';
export { Tabs, Tab } from './components/Tabs';
export Alert from './components/Alert';
export { Tooltip, OverlayTrigger } from './components/Tooltips';
export Box from './components/Box';
export Pagination from './components/Pagination';
export { Table, Column, ColumnGroup, Cell } from './components/Table';
export PageSize from './components/PageSize';
export PageTo from './components/PageTo';
export Modal from './components/Modal';
export Select from './components/Select';
export { Carousel, CarouselItem } from './components/Carousel';
export { Code } from './components/Code';
export { Category, CategoryGroup, CategoryItem } from './components/Category';
export Calendar from './components/Calendar';
export IndexGroup from './components/IndexGroup';
export { Steps, Step } from './components/Steps';
export { DropdownButton, SplitButton, MenuItem } from './components/Dropdown';
export { Upload } from './components/Upload';