aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2023-08-18 17:27:11 +0800
committerGitHub <noreply@github.com>2023-08-18 17:27:11 +0800
commite5b3f53d36b69ce73cf2870cddd13cd15a799424 (patch)
tree15e97880f368e10b92ae28e4130a7b0a2e4902dd
parent445dbda2768500d2eb08382d2adf0798d67c1a6e (diff)
downloadgitea-e5b3f53d36b69ce73cf2870cddd13cd15a799424.tar.gz
gitea-e5b3f53d36b69ce73cf2870cddd13cd15a799424.zip
Add minimum polyfill to support "relative-time-element" in PaleMoon (#26575)
Close #26525
-rw-r--r--web_src/js/webcomponents/polyfill.js17
-rw-r--r--web_src/js/webcomponents/webcomponents.js2
2 files changed, 19 insertions, 0 deletions
diff --git a/web_src/js/webcomponents/polyfill.js b/web_src/js/webcomponents/polyfill.js
new file mode 100644
index 0000000000..88c7276881
--- /dev/null
+++ b/web_src/js/webcomponents/polyfill.js
@@ -0,0 +1,17 @@
+try {
+ // some browsers like PaleMoon don't have full support for Intl.NumberFormat, so do the minimum polyfill to support "relative-time-element"
+ // https://repo.palemoon.org/MoonchildProductions/UXP/issues/2289
+ new Intl.NumberFormat('en', {style: 'unit', unit: 'minute'}).format(1);
+} catch {
+ const intlNumberFormat = Intl.NumberFormat;
+ Intl.NumberFormat = function(locales, options) {
+ if (options.style === 'unit') {
+ return {
+ format(value) {
+ return ` ${value} ${options.unit}`;
+ }
+ };
+ }
+ return intlNumberFormat(locales, options);
+ };
+}
diff --git a/web_src/js/webcomponents/webcomponents.js b/web_src/js/webcomponents/webcomponents.js
index 123607282b..b17a4a832f 100644
--- a/web_src/js/webcomponents/webcomponents.js
+++ b/web_src/js/webcomponents/webcomponents.js
@@ -1,3 +1,5 @@
import '@webcomponents/custom-elements'; // polyfill for some browsers like Pale Moon
+import './polyfill.js';
+
import '@github/relative-time-element';
import './GiteaOriginUrl.js';