cozy-ui 130.5.0 → 130.6.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/CHANGELOG.md +7 -0
- package/package.json +1 -1
- package/react/providers/Alert/Readme.md +5 -1
- package/react/providers/Alert/helpers.js +13 -0
- package/react/providers/Alert/index.jsx +12 -5
- package/transpiled/react/providers/Alert/helpers.d.ts +1 -0
- package/transpiled/react/providers/Alert/helpers.js +24 -0
- package/transpiled/react/providers/Alert/index.js +10 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [130.6.0](https://github.com/cozy/cozy-ui/compare/v130.5.0...v130.6.0) (2025-10-02)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **AlertProvider:** Add `noClickAway` and `noTimeOut` prop ([eee29d0](https://github.com/cozy/cozy-ui/commit/eee29d0))
|
|
7
|
+
|
|
1
8
|
# [130.5.0](https://github.com/cozy/cozy-ui/compare/v130.4.0...v130.5.0) (2025-10-01)
|
|
2
9
|
|
|
3
10
|
|
package/package.json
CHANGED
|
@@ -15,6 +15,8 @@ const initialVariants = [{
|
|
|
15
15
|
square: false,
|
|
16
16
|
standard: false,
|
|
17
17
|
outlined: false,
|
|
18
|
+
noClickAway: false,
|
|
19
|
+
noTimeOut: false,
|
|
18
20
|
close: true
|
|
19
21
|
}]
|
|
20
22
|
|
|
@@ -23,7 +25,7 @@ const Component = ({ variant }) => {
|
|
|
23
25
|
|
|
24
26
|
return (
|
|
25
27
|
<Button
|
|
26
|
-
label="
|
|
28
|
+
label="Show alert"
|
|
27
29
|
onClick={() =>
|
|
28
30
|
showAlert({
|
|
29
31
|
title: variant.title ? 'Alert title' : undefined,
|
|
@@ -42,6 +44,8 @@ const Component = ({ variant }) => {
|
|
|
42
44
|
: variant.largeIcon
|
|
43
45
|
? <Icon icon={DeviceLaptopIcon} size={32} />
|
|
44
46
|
: undefined,
|
|
47
|
+
noClickAway: variant.noClickAway,
|
|
48
|
+
noTimeOut: variant.noTimeOut,
|
|
45
49
|
onClose: variant.close ? () => {} : undefined
|
|
46
50
|
})
|
|
47
51
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const handleClose = (state, setState) => (event, reason) => {
|
|
2
|
+
const { noClickAway, noTimeOut } = state
|
|
3
|
+
|
|
4
|
+
if (reason === 'clickaway' && noClickAway) {
|
|
5
|
+
return
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
if (reason === 'timeout' && noTimeOut) {
|
|
9
|
+
return
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return setState({ ...state, open: false })
|
|
13
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React, { createContext, useState, useContext, useMemo } from 'react'
|
|
2
2
|
|
|
3
|
+
import { handleClose } from './helpers'
|
|
3
4
|
import Alert from '../../Alert'
|
|
4
5
|
import AlertTitle from '../../AlertTitle'
|
|
5
6
|
import Snackbar from '../../Snackbar'
|
|
@@ -32,13 +33,19 @@ const defaultState = {
|
|
|
32
33
|
duration: null,
|
|
33
34
|
open: false
|
|
34
35
|
}
|
|
35
|
-
const handleClose = (state, setState) => () => {
|
|
36
|
-
return setState({ ...state, open: false })
|
|
37
|
-
}
|
|
38
36
|
|
|
39
37
|
const AlertProvider = ({ children }) => {
|
|
40
38
|
const [state, setState] = useState(defaultState)
|
|
41
|
-
|
|
39
|
+
// noTimeOut and noClickAway are destructured to not being passed to the DOM through ...alertProps
|
|
40
|
+
const {
|
|
41
|
+
open,
|
|
42
|
+
message,
|
|
43
|
+
title,
|
|
44
|
+
duration,
|
|
45
|
+
noTimeOut, // eslint-disable-line no-unused-vars
|
|
46
|
+
noClickAway, // eslint-disable-line no-unused-vars
|
|
47
|
+
...alertProps
|
|
48
|
+
} = state
|
|
42
49
|
|
|
43
50
|
const value = useMemo(
|
|
44
51
|
() => ({
|
|
@@ -63,7 +70,7 @@ const AlertProvider = ({ children }) => {
|
|
|
63
70
|
<Alert
|
|
64
71
|
variant="filled"
|
|
65
72
|
elevation={6}
|
|
66
|
-
onClose={handleClose(state, setState)}
|
|
73
|
+
onClose={ev => handleClose(state, setState)(ev, 'click')}
|
|
67
74
|
{...alertProps}
|
|
68
75
|
>
|
|
69
76
|
{title && <AlertTitle>{title}</AlertTitle>}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export function handleClose(state: any, setState: any): (event: any, reason: any) => any;
|
|
@@ -0,0 +1,24 @@
|
|
|
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
|
+
|
|
7
|
+
export var handleClose = function handleClose(state, setState) {
|
|
8
|
+
return function (event, reason) {
|
|
9
|
+
var noClickAway = state.noClickAway,
|
|
10
|
+
noTimeOut = state.noTimeOut;
|
|
11
|
+
|
|
12
|
+
if (reason === 'clickaway' && noClickAway) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
if (reason === 'timeout' && noTimeOut) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return setState(_objectSpread(_objectSpread({}, state), {}, {
|
|
21
|
+
open: false
|
|
22
|
+
}));
|
|
23
|
+
};
|
|
24
|
+
};
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
4
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
4
|
-
|
|
5
|
-
var _excluded = ["open", "message", "title", "duration"];
|
|
5
|
+
var _excluded = ["open", "message", "title", "duration", "noTimeOut", "noClickAway"];
|
|
6
6
|
|
|
7
7
|
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; }
|
|
8
8
|
|
|
9
9
|
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; }
|
|
10
10
|
|
|
11
11
|
import React, { createContext, useState, useContext, useMemo } from 'react';
|
|
12
|
+
import { handleClose } from "cozy-ui/transpiled/react/providers/Alert/helpers";
|
|
12
13
|
import Alert from "cozy-ui/transpiled/react/Alert";
|
|
13
14
|
import AlertTitle from "cozy-ui/transpiled/react/AlertTitle";
|
|
14
15
|
import Snackbar from "cozy-ui/transpiled/react/Snackbar";
|
|
@@ -42,26 +43,21 @@ var defaultState = {
|
|
|
42
43
|
open: false
|
|
43
44
|
};
|
|
44
45
|
|
|
45
|
-
var handleClose = function handleClose(state, setState) {
|
|
46
|
-
return function () {
|
|
47
|
-
return setState(_objectSpread(_objectSpread({}, state), {}, {
|
|
48
|
-
open: false
|
|
49
|
-
}));
|
|
50
|
-
};
|
|
51
|
-
};
|
|
52
|
-
|
|
53
46
|
var AlertProvider = function AlertProvider(_ref) {
|
|
54
47
|
var children = _ref.children;
|
|
55
48
|
|
|
56
49
|
var _useState = useState(defaultState),
|
|
57
50
|
_useState2 = _slicedToArray(_useState, 2),
|
|
58
51
|
state = _useState2[0],
|
|
59
|
-
setState = _useState2[1];
|
|
52
|
+
setState = _useState2[1]; // noTimeOut and noClickAway are destructured to not being passed to the DOM through ...alertProps
|
|
53
|
+
|
|
60
54
|
|
|
61
55
|
var open = state.open,
|
|
62
56
|
message = state.message,
|
|
63
57
|
title = state.title,
|
|
64
58
|
duration = state.duration,
|
|
59
|
+
noTimeOut = state.noTimeOut,
|
|
60
|
+
noClickAway = state.noClickAway,
|
|
65
61
|
alertProps = _objectWithoutProperties(state, _excluded);
|
|
66
62
|
|
|
67
63
|
var value = useMemo(function () {
|
|
@@ -85,7 +81,9 @@ var AlertProvider = function AlertProvider(_ref) {
|
|
|
85
81
|
}, /*#__PURE__*/React.createElement(Alert, _extends({
|
|
86
82
|
variant: "filled",
|
|
87
83
|
elevation: 6,
|
|
88
|
-
onClose:
|
|
84
|
+
onClose: function onClose(ev) {
|
|
85
|
+
return handleClose(state, setState)(ev, 'click');
|
|
86
|
+
}
|
|
89
87
|
}, alertProps), title && /*#__PURE__*/React.createElement(AlertTitle, null, title), message)));
|
|
90
88
|
};
|
|
91
89
|
|