import { Component } from "inferno"; import moment from "moment"; import { i18n } from "../../i18next"; import { capitalizeFirstLetter, getMomentLanguage } from "../../utils"; import { Icon } from "./icon"; interface MomentTimeProps { data: { published?: string; when_?: string; updated?: string; }; showAgo?: boolean; ignoreUpdated?: boolean; } export class MomentTime extends Component { constructor(props: any, context: any) { super(props, context); let lang = getMomentLanguage(); moment.locale(lang); } createdAndModifiedTimes() { let created = this.props.data.published || this.props.data.when_; return `
${capitalizeFirstLetter(i18n.t("created"))}: ${this.format(created)}
${capitalizeFirstLetter(i18n.t("modified"))} ${this.format( this.props.data.updated )}
`; } render() { if (!this.props.ignoreUpdated && this.props.data.updated) { return ( {moment.utc(this.props.data.updated).fromNow(!this.props.showAgo)} ); } else { let created = this.props.data.published || this.props.data.when_; return ( {moment.utc(created).fromNow(!this.props.showAgo)} ); } } format(input: string): string { return moment.utc(input).local().format("LLLL"); } }