Skip to content

Commit 22370b1

Browse files
perf: replace moment with dayjs (#6980)
* perf: replace moment with dayjs - replace react-datetime with datetime-local input * fix: format code * feat: add clear button to datetime widget
1 parent 99002dd commit 22370b1

File tree

43 files changed

+93
-121
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+93
-121
lines changed

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@
186186
"@emotion/babel-preset-css-prop": "^11.11.0",
187187
"browserify": "^17.0.0",
188188
"buffer": "^6.0.3",
189+
"dayjs": "^1.11.10",
189190
"emotion": "^11.0.0",
190191
"eslint-config-prettier": "^8.0.0",
191192
"eslint-plugin-babel": "^5.3.0",

packages/decap-cms-app/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,12 @@
6060
"decap-cms-widget-text": "^3.1.0-beta.0",
6161
"immutable": "^3.7.6",
6262
"lodash": "^4.17.11",
63-
"moment": "^2.24.0",
6463
"prop-types": "^15.7.2",
6564
"react-immutable-proptypes": "^2.1.0",
6665
"uuid": "^8.3.2"
6766
},
6867
"peerDependencies": {
68+
"dayjs": "^1.11.10",
6969
"react": "^18.2.0",
7070
"react-dom": "^18.2.0"
7171
},

packages/decap-cms-app/src/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { DecapCmsCore as CMS } from 'decap-cms-core';
2-
import moment from 'moment';
2+
import dayjs from 'dayjs';
33
import './extensions.js';
44

55
// Log version
@@ -11,6 +11,6 @@ if (typeof window !== 'undefined') {
1111

1212
export const DecapCmsApp = {
1313
...CMS,
14-
moment,
14+
dayjs,
1515
};
1616
export default CMS;

packages/decap-cms-core/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,14 @@
7777
"peerDependencies": {
7878
"@emotion/react": "^11.11.1",
7979
"@emotion/styled": "^11.11.0",
80+
"dayjs": "^1.11.10",
8081
"decap-cms-editor-component-image": "^3.0.0",
8182
"decap-cms-lib-auth": "^3.0.0",
8283
"decap-cms-lib-util": "^3.0.0",
8384
"decap-cms-lib-widgets": "^3.0.0",
8485
"decap-cms-ui-default": "^3.0.0",
8586
"immutable": "^3.7.6",
8687
"lodash": "^4.17.11",
87-
"moment": "^2.24.0",
8888
"prop-types": "^15.7.2",
8989
"react": "^18.2.0",
9090
"react-dom": "^18.2.0",

packages/decap-cms-core/src/components/Workflow/WorkflowList.js

+2-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import React from 'react';
33
import ImmutablePropTypes from 'react-immutable-proptypes';
44
import { css } from '@emotion/react';
55
import styled from '@emotion/styled';
6-
import moment from 'moment';
6+
import dayjs from 'dayjs';
77
import { translate } from 'react-polyglot';
88
import { colors, lengths } from 'decap-cms-ui-default';
99

@@ -205,9 +205,7 @@ class WorkflowList extends React.Component {
205205
return (
206206
<div>
207207
{entries.map(entry => {
208-
const timestamp = moment(entry.get('updatedOn')).format(
209-
t('workflow.workflow.dateFormat'),
210-
);
208+
const timestamp = dayjs(entry.get('updatedOn')).format(t('workflow.workflow.dateFormat'));
211209
const slug = entry.get('slug');
212210
const collectionName = entry.get('collection');
213211
const editLink = `collections/${collectionName}/entries/${slug}?ref=workflow`;

packages/decap-cms-core/src/formats/toml.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import toml from '@iarna/toml';
22
import tomlify from 'tomlify-j0.4';
3-
import moment from 'moment';
3+
import dayjs from 'dayjs';
44

55
import AssetProxy from '../valueObjects/AssetProxy';
66
import { sortKeys } from './helpers';
77

88
function outputReplacer(_key: string, value: unknown) {
9-
if (moment.isMoment(value)) {
9+
if (dayjs.isDayjs(value)) {
1010
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
1111
// @ts-ignore
1212
return value.format(value._f);

packages/decap-cms-core/src/lib/formatters.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ export function previewUrlFormatter(
195195
compiledPath = compileStringTemplate(pathTemplate, date, slug, fields, processSegment);
196196
} catch (err) {
197197
// Print an error and ignore `preview_path` if both:
198-
// 1. Date is invalid (according to Moment), and
198+
// 1. Date is invalid (according to DayJs), and
199199
// 2. A date expression (eg. `{{year}}`) is used in `preview_path`
200200
if (err.name === SLUG_MISSING_REQUIRED_DATE) {
201201
console.error(stripIndent`

packages/decap-cms-default-exports/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@
2323
"@emotion/styled": "^11.11.0",
2424
"immutable": "^3.7.6",
2525
"lodash": "^4.17.11",
26-
"moment": "^2.24.0",
2726
"prop-types": "^15.7.2",
2827
"react-immutable-proptypes": "^2.1.0",
2928
"uuid": "^8.3.2"
3029
},
3130
"peerDependencies": {
31+
"dayjs": "^1.11.10",
3232
"react": "^18.2.0",
3333
"react-dom": "^18.2.0"
3434
}

packages/decap-cms-default-exports/src/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import EmotionStyled from '@emotion/styled';
1313
import Immutable from 'immutable';
1414
import ImmutablePropTypes from 'react-immutable-proptypes';
1515
import Lodash from 'lodash/lodash';
16-
import Moment from 'moment';
16+
import Dayjs from 'dayjs';
1717
import PropTypes from 'prop-types';
1818
import React from 'react';
1919
import ReactDOM from 'react-dom';
@@ -35,7 +35,7 @@ export const DecapCmsDefaultExports = {
3535
Immutable,
3636
ImmutablePropTypes,
3737
Lodash,
38-
Moment,
38+
Dayjs,
3939
PropTypes,
4040
React,
4141
ReactDOM,

packages/decap-cms-lib-widgets/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
"build:esm": "cross-env NODE_ENV=esm babel src --out-dir dist/esm --ignore \"**/__tests__\" --root-mode upward --extensions \".js,.jsx,.ts,.tsx\""
1818
},
1919
"peerDependencies": {
20+
"dayjs": "^1.11.10",
2021
"immutable": "^3.7.6",
21-
"lodash": "^4.17.11",
22-
"moment": "^2.24.0"
22+
"lodash": "^4.17.11"
2323
}
2424
}

packages/decap-cms-lib-widgets/src/stringTemplate.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Map } from 'immutable';
22
import { get, trimEnd, truncate } from 'lodash';
3-
import moment from 'moment';
3+
import dayjs from 'dayjs';
44
import { basename, dirname, extname } from 'path';
55

66
const filters = [
@@ -11,7 +11,7 @@ const filters = [
1111
},
1212
{
1313
pattern: /^date\('(.+)'\)$/,
14-
transform: (str: string, match: RegExpMatchArray) => moment(str).format(match[1]),
14+
transform: (str: string, match: RegExpMatchArray) => dayjs(str).format(match[1]),
1515
},
1616
{
1717
pattern: /^default\('(.+)'\)$/,
@@ -60,9 +60,9 @@ export function parseDateFromEntry(entry: Map<string, unknown>, dateFieldName?:
6060
}
6161

6262
const dateValue = entry.getIn(['data', dateFieldName]);
63-
const dateMoment = dateValue && moment(dateValue);
64-
if (dateMoment && dateMoment.isValid()) {
65-
return dateMoment.toDate();
63+
const dateDayjs = dateValue && dayjs(dateValue);
64+
if (dateDayjs && dateDayjs.isValid()) {
65+
return dateDayjs.toDate();
6666
}
6767
}
6868

packages/decap-cms-locales/src/bg/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ const bg = {
195195
},
196196
datetime: {
197197
now: 'Сега',
198+
clear: 'Изчисти',
198199
},
199200
},
200201
},

packages/decap-cms-locales/src/ca/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ const ca = {
193193
},
194194
datetime: {
195195
now: 'Ara',
196+
clear: 'Netejar',
196197
},
197198
},
198199
},

packages/decap-cms-locales/src/cs/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@ const cs = {
194194
},
195195
datetime: {
196196
now: 'Teď',
197+
clear: 'Vymazat',
197198
},
198199
},
199200
},

packages/decap-cms-locales/src/da/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ const da = {
205205
},
206206
datetime: {
207207
now: 'Nu',
208+
clear: 'Ryd',
208209
},
209210
list: {
210211
add: 'Tilføj %{item}',

packages/decap-cms-locales/src/de/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ const de = {
204204
},
205205
datetime: {
206206
now: 'Jetzt',
207+
clear: 'Löschen',
207208
},
208209
list: {
209210
add: '%{item} hinzufügen',

packages/decap-cms-locales/src/en/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ const en = {
206206
},
207207
datetime: {
208208
now: 'Now',
209+
clear: 'Clear',
209210
},
210211
list: {
211212
add: 'Add %{item}',

packages/decap-cms-locales/src/es/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@ const es = {
159159
},
160160
datetime: {
161161
now: 'Ahora',
162+
clear: 'Limpiar',
162163
},
163164
},
164165
},

packages/decap-cms-locales/src/fr/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ const fr = {
196196
},
197197
datetime: {
198198
now: 'Maintenant',
199+
clear: 'Effacer',
199200
},
200201
list: {
201202
add: 'Ajouter %{item}',

packages/decap-cms-locales/src/he/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,7 @@ const he = {
197197
},
198198
datetime: {
199199
now: 'עכשיו',
200+
clear: 'ניקוי',
200201
},
201202
list: {
202203
add: 'הוספת %{item}',

packages/decap-cms-locales/src/hr/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,7 @@ const hr = {
184184
},
185185
datetime: {
186186
now: 'Sad',
187+
clear: 'Očisti',
187188
},
188189
},
189190
},

packages/decap-cms-locales/src/ja/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ const ja = {
198198
},
199199
datetime: {
200200
now: '現時刻',
201+
clear: 'クリア',
201202
},
202203
},
203204
},

packages/decap-cms-locales/src/ko/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ const ko = {
205205
},
206206
datetime: {
207207
now: '현재시각',
208+
clear: '지우기',
208209
},
209210
list: {
210211
add: '%{item} 추가',

packages/decap-cms-locales/src/lt/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ const lt = {
186186
},
187187
datetime: {
188188
now: 'Dabar',
189+
clear: 'Išvalyti',
189190
},
190191
},
191192
},

packages/decap-cms-locales/src/nb_no/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ const nb_no = {
156156
},
157157
datetime: {
158158
now: 'Nå',
159+
clear: 'Nullstill',
159160
},
160161
},
161162
},

packages/decap-cms-locales/src/nl/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ const nl = {
193193
},
194194
datetime: {
195195
now: 'Nu',
196+
clear: 'Wissen',
196197
},
197198
list: {
198199
add: 'Voeg %{item} toe',

packages/decap-cms-locales/src/nn_no/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ const nn_no = {
157157
},
158158
datetime: {
159159
now: 'No',
160+
clear: 'Nullstill',
160161
},
161162
},
162163
},

packages/decap-cms-locales/src/pl/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ const pl = {
198198
},
199199
datetime: {
200200
now: 'Teraz',
201+
clear: 'Wyczyść',
201202
},
202203
list: {
203204
add: 'Dodaj %{item}',

packages/decap-cms-locales/src/pt/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ const pt = {
199199
},
200200
datetime: {
201201
now: 'Agora',
202+
clear: 'Limpar',
202203
},
203204
list: {
204205
add: 'Adicionar %{item}',

packages/decap-cms-locales/src/ro/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ const ro = {
196196
},
197197
datetime: {
198198
now: 'Acum',
199+
clear: 'Șterge',
199200
},
200201
},
201202
},

packages/decap-cms-locales/src/ru/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ const ru = {
209209
},
210210
datetime: {
211211
now: 'Сейчас',
212+
clear: 'Очистить',
212213
},
213214
list: {
214215
add: 'Добавить %{item}',

packages/decap-cms-locales/src/sl/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ const sl = {
206206
},
207207
datetime: {
208208
now: 'Zdaj',
209+
clear: 'Počisti',
209210
},
210211
list: {
211212
add: 'Dodaj %{item}',

packages/decap-cms-locales/src/sv/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ const sv = {
195195
},
196196
datetime: {
197197
now: 'Nu',
198+
clear: 'Rensa',
198199
},
199200
},
200201
},

packages/decap-cms-locales/src/th/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ const th = {
167167
},
168168
datetime: {
169169
now: 'เวลาตอนนี้',
170+
clear: 'ล้าง',
170171
},
171172
},
172173
},

packages/decap-cms-locales/src/tr/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,7 @@ const tr = {
203203
},
204204
datetime: {
205205
now: 'Şimdi',
206+
clear: 'Temizle',
206207
},
207208
list: {
208209
add: '%{item} Ekle',

packages/decap-cms-locales/src/vi/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ const vi = {
165165
},
166166
datetime: {
167167
now: 'Ngay lúc này',
168+
clear: 'Xóa',
168169
},
169170
},
170171
},

packages/decap-cms-locales/src/zh_Hans/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ const zh_Hans = {
191191
},
192192
datetime: {
193193
now: '现在',
194+
clear: '清除',
194195
},
195196
},
196197
},

packages/decap-cms-locales/src/zh_Hant/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ const zh_Hant = {
174174
},
175175
datetime: {
176176
now: '現在',
177+
clear: '清除',
177178
},
178179
},
179180
},

packages/decap-cms-widget-datetime/package.json

+1-3
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,7 @@
2323
},
2424
"peerDependencies": {
2525
"@emotion/react": "^11.11.1",
26+
"dayjs": "^1.11.10",
2627
"react": "^18.2.0"
27-
},
28-
"dependencies": {
29-
"react-datetime": "^3.1.1"
3028
}
3129
}

0 commit comments

Comments
 (0)