diff options
author | Claire <claire.github-309c@sitedethib.com> | 2022-12-16 11:50:35 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-16 11:50:35 +0100 |
commit | 7ca0a71601f92064db64862c8cab46a77d9c3d3d (patch) | |
tree | 342c9a8972757d3706903a40e27a6f8e5a43533e /app/javascript/packs | |
parent | 3868ba683d56dbbeecc839fdeaeb7b3d0b18bb9a (diff) | |
parent | 0912fb736d435b132779828376cd10cf7ad8e56e (diff) |
Merge pull request #2014 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/javascript/packs')
-rw-r--r-- | app/javascript/packs/public.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/app/javascript/packs/public.js b/app/javascript/packs/public.js index ab7c4a3f3..8017734d5 100644 --- a/app/javascript/packs/public.js +++ b/app/javascript/packs/public.js @@ -46,6 +46,18 @@ function main() { minute: 'numeric', }); + const dateFormat = new Intl.DateTimeFormat(locale, { + year: 'numeric', + month: 'short', + day: 'numeric', + timeFormat: false, + }); + + const timeFormat = new Intl.DateTimeFormat(locale, { + timeStyle: 'short', + hour12: false, + }); + [].forEach.call(document.querySelectorAll('.emojify'), (content) => { content.innerHTML = emojify(content.innerHTML); }); @@ -58,6 +70,32 @@ function main() { content.textContent = formattedDate; }); + const isToday = date => { + const today = new Date(); + + return date.getDate() === today.getDate() && + date.getMonth() === today.getMonth() && + date.getFullYear() === today.getFullYear(); + }; + const todayFormat = new IntlMessageFormat(messages['relative_format.today'] || 'Today at {time}', locale); + + [].forEach.call(document.querySelectorAll('time.relative-formatted'), (content) => { + const datetime = new Date(content.getAttribute('datetime')); + + let formattedContent; + + if (isToday(datetime)) { + const formattedTime = timeFormat.format(datetime); + + formattedContent = todayFormat.format({ time: formattedTime }); + } else { + formattedContent = dateFormat.format(datetime); + } + + content.title = formattedContent; + content.textContent = formattedContent; + }); + [].forEach.call(document.querySelectorAll('time.time-ago'), (content) => { const datetime = new Date(content.getAttribute('datetime')); const now = new Date(); |