mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-18 01:36:08 +08:00
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
40 lines
1.2 KiB
JavaScript
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;
|