import * as React from 'react'; import * as moment from 'moment-timezone'; import "./Component.css"; import { HolidayList } from '../../Data'; import { Utils, OpenOrClose } from "../../Utils"; export interface NextOpenCloseMiniProps { xDay: moment.Moment; openOrClose: OpenOrClose; allHolidays: HolidayList; } export class NextOpenCloseMini extends React.Component { xDay: moment.Moment; openOrClose: OpenOrClose; allHolidays: HolidayList; nextOpenOrCloseDate: moment.Moment | undefined; constructor(props: NextOpenCloseMiniProps) { super(props); this.xDay = props.xDay; this.openOrClose = props.openOrClose; this.allHolidays = props.allHolidays; this.nextOpenOrCloseDate = Utils.findNextOpenOrEventCloseFromDate( this.xDay, this.allHolidays, this.openOrClose); } getOpeningClosingString() { return this.openOrClose === OpenOrClose.Open ? "opening" : "closing"; } renderDate(): JSX.Element[] { const tmpNextDate = this.nextOpenOrCloseDate as moment.Moment; var nextDateString = tmpNextDate.from(this.xDay); return [ (
Next {this.getOpeningClosingString()}
), (
{nextDateString}
) ]; } renderNotFound(): JSX.Element[] { return [ (
No more {this.getOpeningClosingString()}s
), (
this year
) ]; } render() { return (
{this.nextOpenOrCloseDate === undefined ? this.renderNotFound() : this.renderDate()}
); } }