UNPKG

chowa

Version:

UI component library based on React

58 lines (57 loc) 2.67 kB
/** * @license chowa v1.1.3 * * Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn). * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const React = require("react"); const classNames = require("classnames"); const i18n_1 = require("../../i18n"); const utils_1 = require("../../utils"); const tool_1 = require("../tool"); const column_event_layout_1 = require("./column-event-layout"); class FullWeek extends React.PureComponent { constructor(props) { super(props); this.state = Object.assign({}, this.compileRenderParams(props.value, props.events)); } componentDidUpdate(preProps) { if (!utils_1.isSameMoment(preProps.value, this.props.value) || !utils_1.isEqual(preProps.events, this.props.events)) { this.setState(Object.assign({}, this.compileRenderParams(this.props.value, this.props.events))); } } compileRenderParams(value, events) { const renderMoms = []; const renderEvents = []; for (let i = 1; i <= 7; i++) { const mom = value.clone().startOf('isoWeek').day(i); renderMoms.push(mom); renderEvents.push(tool_1.compileColumnEvents(events, mom)); } return { renderMoms, renderEvents }; } render() { const { renderMoms, renderEvents } = this.state; const { editable, appendable, onContextMenu } = this.props; const wrapperClass = classNames({ [utils_1.preClass('full-calendar-mode-wrapper')]: true, [utils_1.preClass('full-calendar-mode-week')]: true }); return (React.createElement("div", { className: wrapperClass }, React.createElement("div", { className: utils_1.preClass('full-calendar-header') }, React.createElement("div", { className: utils_1.preClass('full-calendar-time-widget') }), React.createElement("dl", { className: utils_1.preClass('full-calendar-week-title-wrapper') }, renderMoms.map((mom, key) => (React.createElement("dd", { key: key, className: utils_1.preClass('full-calendar-header-title') }, React.createElement(i18n_1.I18nReceiver, { module: 'Calendar' }, (i18n) => i18n.weeks[key]), mom.format('M/D')))))), React.createElement(column_event_layout_1.default, { editable: editable, appendable: appendable, onContextMenu: onContextMenu, moms: renderMoms, events: renderEvents }))); } } exports.default = FullWeek;