@panneau/action-duplicate 3.0.162 → 3.0.164
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/es/index.js +38 -18
- package/lib/index.js +38 -18
- package/package.json +6 -6
package/es/index.js
CHANGED
|
@@ -6,6 +6,7 @@ import classNames from 'classnames';
|
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
7
|
import React, { useState, useMemo, useCallback } from 'react';
|
|
8
8
|
import { FormattedMessage } from 'react-intl';
|
|
9
|
+
import { useModal } from '@panneau/core/contexts';
|
|
9
10
|
import Button from '@panneau/element-button';
|
|
10
11
|
import Confirm from '@panneau/modal-confirm';
|
|
11
12
|
|
|
@@ -36,7 +37,7 @@ var defaultProps = {
|
|
|
36
37
|
"value": "Duplicate"
|
|
37
38
|
}]
|
|
38
39
|
}),
|
|
39
|
-
icon: '
|
|
40
|
+
icon: 'copy',
|
|
40
41
|
value: null,
|
|
41
42
|
theme: 'primary',
|
|
42
43
|
disabled: false,
|
|
@@ -56,14 +57,17 @@ var DuplicateAction = function DuplicateAction(_ref) {
|
|
|
56
57
|
setSelectedItems = _ref.setSelectedItems,
|
|
57
58
|
className = _ref.className,
|
|
58
59
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
59
|
-
var
|
|
60
|
+
var _useModal = useModal(),
|
|
61
|
+
_useModal$modals = _useModal.modals,
|
|
62
|
+
modals = _useModal$modals === void 0 ? null : _useModal$modals,
|
|
63
|
+
_useModal$register = _useModal.register,
|
|
64
|
+
register = _useModal$register === void 0 ? null : _useModal$register,
|
|
65
|
+
_useModal$unregister = _useModal.unregister,
|
|
66
|
+
unregister = _useModal$unregister === void 0 ? null : _useModal$unregister;
|
|
67
|
+
var _useState = useState(null),
|
|
60
68
|
_useState2 = _slicedToArray(_useState, 2),
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
var _useState3 = useState(null),
|
|
64
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
65
|
-
error = _useState4[0],
|
|
66
|
-
setError = _useState4[1];
|
|
69
|
+
error = _useState2[0],
|
|
70
|
+
setError = _useState2[1];
|
|
67
71
|
var ids = useMemo(function () {
|
|
68
72
|
return (value || []).map(function () {
|
|
69
73
|
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
@@ -74,36 +78,51 @@ var DuplicateAction = function DuplicateAction(_ref) {
|
|
|
74
78
|
return id !== null;
|
|
75
79
|
});
|
|
76
80
|
}, [value]);
|
|
81
|
+
var idKeys = useMemo(function () {
|
|
82
|
+
return (ids || []).map(function (id) {
|
|
83
|
+
return "".concat(id);
|
|
84
|
+
}).join('-');
|
|
85
|
+
}, [ids]);
|
|
77
86
|
var idLabels = useMemo(function () {
|
|
78
87
|
return (ids || []).map(function (id) {
|
|
79
88
|
return "#".concat(id);
|
|
80
89
|
}).join(', ');
|
|
81
90
|
}, [ids]);
|
|
91
|
+
var modalKey = useMemo(function () {
|
|
92
|
+
return "duplicate-".concat(idKeys);
|
|
93
|
+
}, [idKeys]);
|
|
94
|
+
var modal = useMemo(function () {
|
|
95
|
+
return (modals || []).find(function (_ref3) {
|
|
96
|
+
var _ref3$id = _ref3.id,
|
|
97
|
+
id = _ref3$id === void 0 ? null : _ref3$id;
|
|
98
|
+
return id === "".concat(modalKey);
|
|
99
|
+
}) || null;
|
|
100
|
+
}, [modals, modalKey]);
|
|
82
101
|
var onOpen = useCallback(function () {
|
|
83
|
-
|
|
84
|
-
}, [
|
|
102
|
+
register(modalKey);
|
|
103
|
+
}, [modalKey, register]);
|
|
104
|
+
var onClose = useCallback(function () {
|
|
105
|
+
unregister(modalKey);
|
|
106
|
+
}, [modalKey, unregister]);
|
|
85
107
|
var onConfirm = useCallback(function () {
|
|
86
108
|
postJSON(endpoint, {
|
|
87
109
|
ids: ids
|
|
88
110
|
}, {
|
|
89
111
|
credentials: 'include',
|
|
90
112
|
headers: getCSRFHeaders(),
|
|
91
|
-
_method: '
|
|
113
|
+
_method: 'DELETE'
|
|
92
114
|
}).then(function (response) {
|
|
93
|
-
setShowModal(false);
|
|
94
115
|
if (setSelectedItems !== null) {
|
|
95
116
|
setSelectedItems([]);
|
|
96
117
|
}
|
|
97
118
|
if (onChange !== null) {
|
|
98
119
|
onChange(response);
|
|
99
120
|
}
|
|
121
|
+
onClose();
|
|
100
122
|
})["catch"](function (err) {
|
|
101
123
|
setError(err);
|
|
102
124
|
});
|
|
103
|
-
}, [ids, endpoint, onChange,
|
|
104
|
-
var onClose = useCallback(function () {
|
|
105
|
-
setShowModal(false);
|
|
106
|
-
}, [setShowModal]);
|
|
125
|
+
}, [ids, endpoint, onChange, onClose, setError]);
|
|
107
126
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, Object.assign({}, props, {
|
|
108
127
|
className: classNames([styles.container, _defineProperty({}, className, className !== null)]),
|
|
109
128
|
label: label,
|
|
@@ -111,7 +130,8 @@ var DuplicateAction = function DuplicateAction(_ref) {
|
|
|
111
130
|
onClick: onOpen,
|
|
112
131
|
disabled: disabled,
|
|
113
132
|
theme: disabled ? 'secondary' : theme
|
|
114
|
-
})),
|
|
133
|
+
})), modal !== null ? /*#__PURE__*/React.createElement(Confirm, {
|
|
134
|
+
id: modalKey,
|
|
115
135
|
title: title || /*#__PURE__*/React.createElement(FormattedMessage, {
|
|
116
136
|
id: "8T+JE7",
|
|
117
137
|
defaultMessage: [{
|
|
@@ -129,7 +149,7 @@ var DuplicateAction = function DuplicateAction(_ref) {
|
|
|
129
149
|
"value": "Confirm"
|
|
130
150
|
}]
|
|
131
151
|
}),
|
|
132
|
-
theme: '
|
|
152
|
+
theme: 'danger'
|
|
133
153
|
},
|
|
134
154
|
cancelButton: {
|
|
135
155
|
label: /*#__PURE__*/React.createElement(FormattedMessage, {
|
package/lib/index.js
CHANGED
|
@@ -10,6 +10,7 @@ var classNames = require('classnames');
|
|
|
10
10
|
var PropTypes = require('prop-types');
|
|
11
11
|
var React = require('react');
|
|
12
12
|
var reactIntl = require('react-intl');
|
|
13
|
+
var contexts = require('@panneau/core/contexts');
|
|
13
14
|
var Button = require('@panneau/element-button');
|
|
14
15
|
var Confirm = require('@panneau/modal-confirm');
|
|
15
16
|
|
|
@@ -40,7 +41,7 @@ var defaultProps = {
|
|
|
40
41
|
"value": "Duplicate"
|
|
41
42
|
}]
|
|
42
43
|
}),
|
|
43
|
-
icon: '
|
|
44
|
+
icon: 'copy',
|
|
44
45
|
value: null,
|
|
45
46
|
theme: 'primary',
|
|
46
47
|
disabled: false,
|
|
@@ -60,14 +61,17 @@ var DuplicateAction = function DuplicateAction(_ref) {
|
|
|
60
61
|
setSelectedItems = _ref.setSelectedItems,
|
|
61
62
|
className = _ref.className,
|
|
62
63
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
63
|
-
var
|
|
64
|
+
var _useModal = contexts.useModal(),
|
|
65
|
+
_useModal$modals = _useModal.modals,
|
|
66
|
+
modals = _useModal$modals === void 0 ? null : _useModal$modals,
|
|
67
|
+
_useModal$register = _useModal.register,
|
|
68
|
+
register = _useModal$register === void 0 ? null : _useModal$register,
|
|
69
|
+
_useModal$unregister = _useModal.unregister,
|
|
70
|
+
unregister = _useModal$unregister === void 0 ? null : _useModal$unregister;
|
|
71
|
+
var _useState = React.useState(null),
|
|
64
72
|
_useState2 = _slicedToArray(_useState, 2),
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
var _useState3 = React.useState(null),
|
|
68
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
69
|
-
error = _useState4[0],
|
|
70
|
-
setError = _useState4[1];
|
|
73
|
+
error = _useState2[0],
|
|
74
|
+
setError = _useState2[1];
|
|
71
75
|
var ids = React.useMemo(function () {
|
|
72
76
|
return (value || []).map(function () {
|
|
73
77
|
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
@@ -78,36 +82,51 @@ var DuplicateAction = function DuplicateAction(_ref) {
|
|
|
78
82
|
return id !== null;
|
|
79
83
|
});
|
|
80
84
|
}, [value]);
|
|
85
|
+
var idKeys = React.useMemo(function () {
|
|
86
|
+
return (ids || []).map(function (id) {
|
|
87
|
+
return "".concat(id);
|
|
88
|
+
}).join('-');
|
|
89
|
+
}, [ids]);
|
|
81
90
|
var idLabels = React.useMemo(function () {
|
|
82
91
|
return (ids || []).map(function (id) {
|
|
83
92
|
return "#".concat(id);
|
|
84
93
|
}).join(', ');
|
|
85
94
|
}, [ids]);
|
|
95
|
+
var modalKey = React.useMemo(function () {
|
|
96
|
+
return "duplicate-".concat(idKeys);
|
|
97
|
+
}, [idKeys]);
|
|
98
|
+
var modal = React.useMemo(function () {
|
|
99
|
+
return (modals || []).find(function (_ref3) {
|
|
100
|
+
var _ref3$id = _ref3.id,
|
|
101
|
+
id = _ref3$id === void 0 ? null : _ref3$id;
|
|
102
|
+
return id === "".concat(modalKey);
|
|
103
|
+
}) || null;
|
|
104
|
+
}, [modals, modalKey]);
|
|
86
105
|
var onOpen = React.useCallback(function () {
|
|
87
|
-
|
|
88
|
-
}, [
|
|
106
|
+
register(modalKey);
|
|
107
|
+
}, [modalKey, register]);
|
|
108
|
+
var onClose = React.useCallback(function () {
|
|
109
|
+
unregister(modalKey);
|
|
110
|
+
}, [modalKey, unregister]);
|
|
89
111
|
var onConfirm = React.useCallback(function () {
|
|
90
112
|
fetch.postJSON(endpoint, {
|
|
91
113
|
ids: ids
|
|
92
114
|
}, {
|
|
93
115
|
credentials: 'include',
|
|
94
116
|
headers: fetch.getCSRFHeaders(),
|
|
95
|
-
_method: '
|
|
117
|
+
_method: 'DELETE'
|
|
96
118
|
}).then(function (response) {
|
|
97
|
-
setShowModal(false);
|
|
98
119
|
if (setSelectedItems !== null) {
|
|
99
120
|
setSelectedItems([]);
|
|
100
121
|
}
|
|
101
122
|
if (onChange !== null) {
|
|
102
123
|
onChange(response);
|
|
103
124
|
}
|
|
125
|
+
onClose();
|
|
104
126
|
})["catch"](function (err) {
|
|
105
127
|
setError(err);
|
|
106
128
|
});
|
|
107
|
-
}, [ids, endpoint, onChange,
|
|
108
|
-
var onClose = React.useCallback(function () {
|
|
109
|
-
setShowModal(false);
|
|
110
|
-
}, [setShowModal]);
|
|
129
|
+
}, [ids, endpoint, onChange, onClose, setError]);
|
|
111
130
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, Object.assign({}, props, {
|
|
112
131
|
className: classNames([styles.container, _defineProperty({}, className, className !== null)]),
|
|
113
132
|
label: label,
|
|
@@ -115,7 +134,8 @@ var DuplicateAction = function DuplicateAction(_ref) {
|
|
|
115
134
|
onClick: onOpen,
|
|
116
135
|
disabled: disabled,
|
|
117
136
|
theme: disabled ? 'secondary' : theme
|
|
118
|
-
})),
|
|
137
|
+
})), modal !== null ? /*#__PURE__*/React.createElement(Confirm, {
|
|
138
|
+
id: modalKey,
|
|
119
139
|
title: title || /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
|
120
140
|
id: "8T+JE7",
|
|
121
141
|
defaultMessage: [{
|
|
@@ -133,7 +153,7 @@ var DuplicateAction = function DuplicateAction(_ref) {
|
|
|
133
153
|
"value": "Confirm"
|
|
134
154
|
}]
|
|
135
155
|
}),
|
|
136
|
-
theme: '
|
|
156
|
+
theme: 'danger'
|
|
137
157
|
},
|
|
138
158
|
cancelButton: {
|
|
139
159
|
label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@panneau/action-duplicate",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.164",
|
|
4
4
|
"description": "Duplicate action",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"javascript"
|
|
@@ -47,10 +47,10 @@
|
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@babel/runtime": "^7.12.5",
|
|
49
49
|
"@folklore/fetch": "^0.1.17",
|
|
50
|
-
"@panneau/core": "^3.0.
|
|
51
|
-
"@panneau/element-button": "^3.0.
|
|
52
|
-
"@panneau/modal-confirm": "^3.0.
|
|
53
|
-
"@panneau/themes": "^3.0.
|
|
50
|
+
"@panneau/core": "^3.0.164",
|
|
51
|
+
"@panneau/element-button": "^3.0.164",
|
|
52
|
+
"@panneau/modal-confirm": "^3.0.164",
|
|
53
|
+
"@panneau/themes": "^3.0.164",
|
|
54
54
|
"classnames": "^2.5.1",
|
|
55
55
|
"prop-types": "^15.7.2",
|
|
56
56
|
"react-intl": "^5.15.8||^6.0.0"
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"publishConfig": {
|
|
59
59
|
"access": "public"
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "7a1511eb7b08a09cfcf708d1ca314a12155e9bd8"
|
|
62
62
|
}
|