Files
Hydro/ui/components/time/time.page.js
T
masnn f9468536de upgrade dep:
css-loader 0.28->3.5
del 4.1->5.1
eslint 5.18->6.8
eslint-config-airbnb 17.1->18.1
eslint-loader 2.1->4.0
file-loader 2.0->6.0
fs.extra 8.0->9.0
gulp 2.0->3.0
gulp-nunjucks 4.0->5.0
json-loader 0.5->Removed
style-loader 0.23->1.1
uglifyjs-webpack-plugin 1.3->2.2
yargs 13.2->15.3
katex 0.10->0.11
react-monaco-editor 0.35->0.36
timeage-react 1.2->3.0
timeago.js 3.0->4.0
uuid 3.3->7.0
2020-04-15 12:47:55 +08:00

40 lines
1.2 KiB
JavaScript

import * as timeago from 'timeago.js';
import { AutoloadPage } from 'vj/misc/PageLoader';
import i18n from 'vj/utils/i18n';
timeago.register(i18n('timeago_locale'));
function runRelativeTime($container) {
$container.find('span.time.relative[data-timestamp]').get().forEach((element) => {
const $element = $(element);
if ($element.attr('data-has-timeago') !== undefined) {
return;
}
$element.attr('data-tooltip', $element.text());
$element.attr('datetime', ($element.attr('data-timestamp') || 0) * 1000);
$element.attr('data-has-timeago', '1');
timeago.render(element);
});
}
function cancelRelativeTime($container) {
$container.find('span.time.relative[data-timestamp]').get().forEach((element) => {
const $element = $(element);
if ($element.attr('data-has-timeago') === undefined) {
return;
}
$element.removeAttr('data-has-timeago');
timeago.cancel(element);
});
}
const relativeTimePage = new AutoloadPage('relativeTimePage', () => {
runRelativeTime($('body'));
$(document).on('vjContentNew', (e) => runRelativeTime($(e.target)));
$(document).on('vjContentRemove', (e) => cancelRelativeTime($(e.target)));
});
export default relativeTimePage;