cozy-ui 114.0.1 → 115.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.bundlemonrc +1 -2
- package/CHANGELOG.md +14 -0
- package/package.json +2 -2
- package/react/BarContextProvider/index.spec.jsx +1 -1
- package/react/DateMonthPicker/index.jsx +3 -3
- package/react/FilePicker/FilePickerBodyItem.jsx +1 -1
- package/react/ListItem/ListItemFile/SecondaryText.jsx +1 -1
- package/react/providers/I18n/format.jsx +8 -5
- package/react/providers/I18n/index.spec.jsx +1 -1
- package/transpiled/react/DateMonthPicker/index.js +3 -3
- package/transpiled/react/FilePicker/FilePickerBodyItem.js +1 -1
- package/transpiled/react/ListItem/ListItemFile/SecondaryText.js +1 -1
- package/transpiled/react/providers/I18n/format.js +12 -4
package/.bundlemonrc
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
# [115.0.0](https://github.com/cozy/cozy-ui/compare/v114.0.1...v115.0.0) (2024-12-19)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* Upgrade date-fns to 2.30.0 ([a89c524](https://github.com/cozy/cozy-ui/commit/a89c524))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### BREAKING CHANGES
|
|
10
|
+
|
|
11
|
+
* The date formatting function (`f` from `useI18n`) changes,
|
|
12
|
+
please refer to this doc.
|
|
13
|
+
https://date-fns.org/v2.30.0/docs/format
|
|
14
|
+
|
|
1
15
|
## [114.0.1](https://github.com/cozy/cozy-ui/compare/v114.0.0...v114.0.1) (2024-12-16)
|
|
2
16
|
|
|
3
17
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cozy-ui",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "115.0.0",
|
|
4
4
|
"description": "Cozy apps UI SDK",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"bin": {
|
|
@@ -162,7 +162,7 @@
|
|
|
162
162
|
"chart.js": "3.7.1",
|
|
163
163
|
"classnames": "^2.2.5",
|
|
164
164
|
"cozy-interapp": "^0.5.4",
|
|
165
|
-
"date-fns": "
|
|
165
|
+
"date-fns": "2.30.0",
|
|
166
166
|
"filesize": "8.0.7",
|
|
167
167
|
"hammerjs": "^2.0.8",
|
|
168
168
|
"intersection-observer": "0.11.0",
|
|
@@ -26,7 +26,7 @@ const MonthButton = ({ monthNum, onClick, isSelected }) => {
|
|
|
26
26
|
)}
|
|
27
27
|
onClick={handleClick}
|
|
28
28
|
>
|
|
29
|
-
{f(d, '
|
|
29
|
+
{f(d, 'LLL')}
|
|
30
30
|
</button>
|
|
31
31
|
)
|
|
32
32
|
}
|
|
@@ -50,7 +50,7 @@ const DateMonthPicker = ({ initialValue, onSelect }) => {
|
|
|
50
50
|
|
|
51
51
|
const handleClickMonth = month => {
|
|
52
52
|
const d = new Date(year, month, 1)
|
|
53
|
-
onSelect(format(d, '
|
|
53
|
+
onSelect(format(d, 'yyyy-LL-dd'))
|
|
54
54
|
}
|
|
55
55
|
return (
|
|
56
56
|
<div>
|
|
@@ -93,7 +93,7 @@ const dateMonthProp = function (props, propName, componentName) {
|
|
|
93
93
|
'` supplied to' +
|
|
94
94
|
' `' +
|
|
95
95
|
componentName +
|
|
96
|
-
'`. Should be in the form
|
|
96
|
+
'`. Should be in the form yyyy-LL.'
|
|
97
97
|
)
|
|
98
98
|
}
|
|
99
99
|
}
|
|
@@ -51,7 +51,7 @@ const FilePickerBodyItem = ({
|
|
|
51
51
|
const Input = multiple ? Checkbox : Radio
|
|
52
52
|
|
|
53
53
|
const listItemSecondaryContent = isFile(item)
|
|
54
|
-
? `${f(item.updated_at, '
|
|
54
|
+
? `${f(item.updated_at, 'dd LLL yyyy')} - ${filesize(item.size, {
|
|
55
55
|
base: 10
|
|
56
56
|
})}`
|
|
57
57
|
: null
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import distanceInWordsToNow from 'date-fns/distance_in_words_to_now'
|
|
2
1
|
import format from 'date-fns/format'
|
|
2
|
+
import formatDistanceToNow from 'date-fns/formatDistanceToNow'
|
|
3
3
|
|
|
4
4
|
import { DEFAULT_LANG } from '.'
|
|
5
5
|
|
|
@@ -29,10 +29,13 @@ export const provideDateFnsLocale = (userLang, defaultLang = DEFAULT_LANG) => {
|
|
|
29
29
|
|
|
30
30
|
export const initFormat =
|
|
31
31
|
(userLang, defaultLang = DEFAULT_LANG) =>
|
|
32
|
-
(date, formatStr) => {
|
|
32
|
+
(date, formatStr, opts = {}) => {
|
|
33
33
|
const locale = provideDateFnsLocale(userLang, defaultLang)
|
|
34
|
-
|
|
34
|
+
const ensureDate = date && typeof date === 'string' ? new Date(date) : date
|
|
35
|
+
|
|
36
|
+
return format(ensureDate, formatStr, { locale, ...opts })
|
|
35
37
|
}
|
|
36
38
|
|
|
37
|
-
export const formatLocallyDistanceToNow = date =>
|
|
38
|
-
|
|
39
|
+
export const formatLocallyDistanceToNow = date => {
|
|
40
|
+
return formatDistanceToNow(date, { locale: locales[lang] })
|
|
41
|
+
}
|
|
@@ -36,7 +36,7 @@ var MonthButton = function MonthButton(_ref) {
|
|
|
36
36
|
return /*#__PURE__*/React.createElement("button", {
|
|
37
37
|
className: cx(styles.DateMonthPicker__MonthButton, isSelected ? styles['DateMonthPicker__MonthButton--selected'] : null),
|
|
38
38
|
onClick: handleClick
|
|
39
|
-
}, f(d, '
|
|
39
|
+
}, f(d, 'LLL'));
|
|
40
40
|
};
|
|
41
41
|
|
|
42
42
|
var useCounter = function useCounter(initialValue, min, max) {
|
|
@@ -75,7 +75,7 @@ var DateMonthPicker = function DateMonthPicker(_ref2) {
|
|
|
75
75
|
|
|
76
76
|
var handleClickMonth = function handleClickMonth(month) {
|
|
77
77
|
var d = new Date(year, month, 1);
|
|
78
|
-
onSelect(format(d, '
|
|
78
|
+
onSelect(format(d, 'yyyy-LL-dd'));
|
|
79
79
|
};
|
|
80
80
|
|
|
81
81
|
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
|
|
@@ -108,7 +108,7 @@ var DateMonthPicker = function DateMonthPicker(_ref2) {
|
|
|
108
108
|
|
|
109
109
|
var dateMonthProp = function dateMonthProp(props, propName, componentName) {
|
|
110
110
|
if (!/^[0-9]{4}-[0-9]{2}$/.test(props[propName])) {
|
|
111
|
-
return new Error('Invalid prop `' + propName + '` supplied to' + ' `' + componentName + '`. Should be in the form
|
|
111
|
+
return new Error('Invalid prop `' + propName + '` supplied to' + ' `' + componentName + '`. Should be in the form yyyy-LL.');
|
|
112
112
|
}
|
|
113
113
|
};
|
|
114
114
|
|
|
@@ -50,7 +50,7 @@ var FilePickerBodyItem = function FilePickerBodyItem(_ref) {
|
|
|
50
50
|
|
|
51
51
|
var hasChoice = isValidFile(item, itemTypesAccepted) || isValidFolder(item, itemTypesAccepted);
|
|
52
52
|
var Input = multiple ? Checkbox : Radio;
|
|
53
|
-
var listItemSecondaryContent = isFile(item) ? "".concat(f(item.updated_at, '
|
|
53
|
+
var listItemSecondaryContent = isFile(item) ? "".concat(f(item.updated_at, 'dd LLL yyyy'), " - ").concat(filesize(item.size, {
|
|
54
54
|
base: 10
|
|
55
55
|
})) : null;
|
|
56
56
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ListItem, {
|
|
@@ -14,7 +14,7 @@ var SecondaryText = function SecondaryText(_ref) {
|
|
|
14
14
|
f = _useI18n.f;
|
|
15
15
|
|
|
16
16
|
if (secondary) return secondary;
|
|
17
|
-
var date = file !== null && file !== void 0 && (_file$metadata = file.metadata) !== null && _file$metadata !== void 0 && _file$metadata.datetime ? f(file === null || file === void 0 ? void 0 : (_file$metadata2 = file.metadata) === null || _file$metadata2 === void 0 ? void 0 : _file$metadata2.datetime, '
|
|
17
|
+
var date = file !== null && file !== void 0 && (_file$metadata = file.metadata) !== null && _file$metadata !== void 0 && _file$metadata.datetime ? f(file === null || file === void 0 ? void 0 : (_file$metadata2 = file.metadata) === null || _file$metadata2 === void 0 ? void 0 : _file$metadata2.datetime, 'dd/LL/yyyy') : null;
|
|
18
18
|
return /*#__PURE__*/React.createElement(React.Fragment, null, date ? date : '', (isExpired(file) || isExpiringSoon(file)) && /*#__PURE__*/React.createElement(React.Fragment, null, date ? ' · ' : '', /*#__PURE__*/React.createElement(ExpirationAnnotation, {
|
|
19
19
|
file: file
|
|
20
20
|
})));
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
|
|
3
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
4
|
+
|
|
5
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
6
|
+
|
|
2
7
|
import format from 'date-fns/format';
|
|
8
|
+
import formatDistanceToNow from 'date-fns/formatDistanceToNow';
|
|
3
9
|
import { DEFAULT_LANG } from "cozy-ui/transpiled/react/providers/I18n";
|
|
4
10
|
var locales = {};
|
|
5
11
|
var lang = DEFAULT_LANG;
|
|
@@ -31,14 +37,16 @@ export var provideDateFnsLocale = function provideDateFnsLocale(userLang) {
|
|
|
31
37
|
export var initFormat = function initFormat(userLang) {
|
|
32
38
|
var defaultLang = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_LANG;
|
|
33
39
|
return function (date, formatStr) {
|
|
40
|
+
var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
34
41
|
var locale = provideDateFnsLocale(userLang, defaultLang);
|
|
35
|
-
|
|
42
|
+
var ensureDate = date && typeof date === 'string' ? new Date(date) : date;
|
|
43
|
+
return format(ensureDate, formatStr, _objectSpread({
|
|
36
44
|
locale: locale
|
|
37
|
-
});
|
|
45
|
+
}, opts));
|
|
38
46
|
};
|
|
39
47
|
};
|
|
40
48
|
export var formatLocallyDistanceToNow = function formatLocallyDistanceToNow(date) {
|
|
41
|
-
return
|
|
49
|
+
return formatDistanceToNow(date, {
|
|
42
50
|
locale: locales[lang]
|
|
43
51
|
});
|
|
44
52
|
};
|