Skip to content

Commit 250acd0

Browse files
authored
refactor: replace moment with dayjs (#1856)
* chore: update id-id.json * fix(i18n): fix typo in ./src/lang/id-id.json * chore(i18n): update id-id.json with new strings * refactor: replace moment with dayjs * chore: use utc plugin * chore: move dayjs config to top * chore: use suffix
1 parent 68a7166 commit 250acd0

File tree

3 files changed

+38
-34
lines changed

3 files changed

+38
-34
lines changed

package-lock.json

Lines changed: 7 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@
113113
"cordova": "13.0.0",
114114
"core-js": "^3.45.0",
115115
"crypto-js": "^4.2.0",
116+
"dayjs": "^1.11.19",
116117
"dompurify": "^3.2.6",
117118
"escape-string-regexp": "^5.0.0",
118119
"filesize": "^11.0.2",
@@ -125,7 +126,6 @@
125126
"markdown-it-github-alerts": "^1.0.0",
126127
"markdown-it-task-lists": "^2.1.1",
127128
"mime-types": "^3.0.1",
128-
"moment": "^2.30.1",
129129
"mustache": "^4.2.0",
130130
"picomatch": "^4.0.3",
131131
"url-parse": "^1.5.10",

src/pages/plugin/plugin.view.js

Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,42 @@
11
import fsOperation from "fileSystem";
22
import TabView from "components/tabView";
33
import toast from "components/toast";
4+
import dayjs from "dayjs/esm";
5+
import dayjsRelativeTime from "dayjs/esm/plugin/relativeTime";
6+
import dayjsUpdateLocale from "dayjs/esm/plugin/updateLocale";
7+
import dayjsUtc from "dayjs/esm/plugin/utc";
48
import alert from "dialogs/alert";
59
import DOMPurify from "dompurify";
610
import Ref from "html-tag-js/ref";
711
import actionStack from "lib/actionStack";
812
import constants from "lib/constants";
9-
import moment from "moment";
1013
import helpers from "utils/helpers";
1114
import Url from "utils/Url";
1215

16+
dayjs.extend(dayjsRelativeTime);
17+
dayjs.extend(dayjsUtc);
18+
dayjs.extend(dayjsUpdateLocale);
19+
20+
// Configure dayjs for shorter relative time format
21+
dayjs.updateLocale("en", {
22+
relativeTime: {
23+
future: "in %s",
24+
past: "%s ago",
25+
s: "now",
26+
ss: "now",
27+
m: "1m",
28+
mm: "%dm",
29+
h: "1h",
30+
hh: "%dh",
31+
d: "1d",
32+
dd: "%dd",
33+
M: "1mo",
34+
MM: "%dmo",
35+
y: "1y",
36+
yy: "%dy",
37+
},
38+
});
39+
1340
export default (props) => {
1441
const {
1542
id,
@@ -48,32 +75,12 @@ export default (props) => {
4875
if (!dateString) return null;
4976

5077
try {
51-
// Configure moment for shorter relative time format
52-
moment.updateLocale("en", {
53-
relativeTime: {
54-
future: "in %s",
55-
past: "%s ago",
56-
s: "now",
57-
ss: "now",
58-
m: "1m",
59-
mm: "%dm",
60-
h: "1h",
61-
hh: "%dh",
62-
d: "1d",
63-
dd: "%dd",
64-
M: "1mo",
65-
MM: "%dmo",
66-
y: "1y",
67-
yy: "%dy",
68-
},
69-
});
70-
71-
const updateTime = moment.utc(dateString);
78+
const updateTime = dayjs.utc(dateString);
7279
if (!updateTime.isValid()) return null;
7380

7481
return updateTime.fromNow();
7582
} catch (error) {
76-
console.warn("Error parsing date with moment:", dateString, error);
83+
console.warn("Error parsing date with dayjs:", dateString, error);
7784
return null;
7885
}
7986
};

0 commit comments

Comments
 (0)