discourse/app/assets/javascripts/discourse/helpers/node.js.es6

36 lines
823 B
JavaScript

import { h } from "virtual-dom";
import { relativeAge, longDate } from "discourse/lib/formatter";
import { number } from "discourse/lib/formatter";
export function dateNode(dt) {
if (typeof dt === "string") {
dt = new Date(dt);
}
if (dt) {
const attributes = {
title: longDate(dt),
"data-time": dt.getTime(),
"data-format": "tiny"
};
return h("span.relative-date", { attributes }, relativeAge(dt));
}
}
export function numberNode(num, opts) {
opts = opts || {};
num = parseInt(num, 10);
if (isNaN(num)) {
num = 0;
}
const numString = num.toString();
const attributes = {};
const formatted = number(num);
if (formatted !== numString) {
attributes.title = numString;
}
return h("span.number", { className: opts.className, attributes }, formatted);
}