application/components/container-blog.js
import React from 'react';
import Immutable from 'immutable';
import {connect} from 'react-redux';
import {Link} from 'react-router';
import RaisedButton from 'material-ui/RaisedButton';
import Paper from 'material-ui/Paper';
import IconAdd from 'material-ui/svg-icons/content/add';
import {Toolbar, ToolbarGroup, ToolbarSeparator, ToolbarTitle} from 'material-ui/Toolbar';
import ReduxPaginator from './common/redux-paginator';
import LoadingIndicator from './common/loading-indicator';
import ContainerTable from './container/container-table';
import ContainerToolbar from './container/container-toolbar';
import {Row, Col} from './flexbox';
import {
    containersMaybeFetch,
    containersFetch
} from './../redux/actions/container-actions';
class Blog extends React.Component {
    constructor(props) {
        super(props);
    }
    componentWillMount() {
        const {dispatch} = this.props;
        const page = (this.props.location && this.props.location.query.page)
            ? this.props.location.query.page
            : 1;
        dispatch(containersFetch({page: page, type: ['blog']}));
    }
    handlePagination(page) {
        if (this.props.containers.pagination.current == page) {
            return;
        }
        const {dispatch} = this.props;
        dispatch(containersFetch({page: page, type: ['blog']}));
    }
    render() {
        return (
            <div id='containers-root'>
                <Row>
                    <Col xs={12} md={10} lg={9} offsetMd={1} offsetLg={1}>
                        <ContainerToolbar
                            items={this.props.containers.items}
                            page={this.props.containers.pagination.current}
                            search=''
                            perPage={20}
                            onPaginate={this.handlePagination.bind(this)}
                            containerType={'blog'}
                            />
                        {
                            this.props.containers.isFetching
                            ? <LoadingIndicator />
                            : (
                                <ContainerTable containers={this.props.containers.items} />
                            )
                        }
                    </Col>
                </Row>
            </div>
        );
    }
}
const mapStateToProps = (state) => {
    return {
        containers: state.containers
    };
}
export default connect(mapStateToProps)(Blog);