diff --git a/src/main.tsx b/src/main.tsx index ec8707f4..d3ac2275 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -7,7 +7,10 @@ import * as dayjs from 'dayjs' import {If, For, When, Otherwise, Choose} from "tsx-control-statements/components"; import cn from "classnames" import {TermWrap} from "./term"; -import {getDefaultSession} from "./session"; +import {getDefaultSession, getLineId} from "./session"; +import localizedFormat from 'dayjs/plugin/localizedFormat'; + +dayjs.extend(localizedFormat) @mobxReact.observer class LineMeta extends React.Component<{line : LineType}, {}> { @@ -23,10 +26,30 @@ class LineMeta extends React.Component<{line : LineType}, {}> { } } +function getLineDateStr(ts : number) : string { + let lineDate = new Date(ts); + let nowDate = new Date(); + if (nowDate.getFullYear() != lineDate.getFullYear()) { + return dayjs(lineDate).format("ddd L LTS"); + } + else if (nowDate.getMonth() != lineDate.getMonth() || nowDate.getDate() != lineDate.getDate()) { + let yesterdayDate = (new Date()); + yesterdayDate.setDate(yesterdayDate.getDate()-1); + if (yesterdayDate.getMonth() == lineDate.getMonth() && yesterdayDate.getDate() == lineDate.getDate()) { + return "Yesterday " + dayjs(lineDate).format("LTS");; + } + return dayjs(lineDate).format("ddd L LTS"); + } + else { + return dayjs(ts).format("LTS"); + } +} + @mobxReact.observer class LineText extends React.Component<{line : LineType, session : Session}, {}> { render() { let line = this.props.line; + let formattedTime = getLineDateStr(line.ts); return (