Home Reference Source Repository

src/calendar/Header.js

/**
 * @file Calendar/CalendarHeader
 * @author cxtom([email protected])
 */

import React, {PropTypes, Component} from 'react';
import * as DateTime from '../util';
import {create} from 'melon-core/classname/cxBuilder';

const cx = create('CalendarHeader');

/**
 * CalendarHeader
 *
 * @class
 * @extends {React.Component}
 */
export default class CalendarHeader extends Component {

    /**
     * 渲染
     *
     * @public
     * @return {React.Element}
     */
    render() {

        /* eslint-disable fecs-min-vars-per-destructure */
        const {
            date,
            ...rest
        } = this.props;

        const year = date.getFullYear();

        const week = DateTime.getDayOfWeek(date);
        const month = DateTime.getShortMonth(date);
        const day = date.getDate();

        const fullDate = month + day + '日';

        return (
            <div {...rest} className={cx(this.props).build()}>
                <p className={cx.getPartClassName('year')}>{year}</p>
                <p className={cx.getPartClassName('week')}>{week}</p>
                <p className={cx.getPartClassName('date')}>{fullDate}</p>
            </div>
        );

    }
}

CalendarHeader.displayName = 'CalendarHeader';

CalendarHeader.propTypes = {
    date: PropTypes.object.isRequired
};