@sb1/ffe-feedback-react 1.2.1 → 1.2.3
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/feedback.js +22 -9
- package/lib/feedback.js +21 -8
- package/package.json +3 -3
- package/types/index.d.ts +1 -1
package/es/feedback.js
CHANGED
|
@@ -8,7 +8,8 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
8
8
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
9
9
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
10
10
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
11
|
-
import React, { useState } from 'react';
|
|
11
|
+
import React, { useState, useRef } from 'react';
|
|
12
|
+
import { flushSync } from 'react-dom';
|
|
12
13
|
import { Heading2 } from '@sb1/ffe-core-react';
|
|
13
14
|
import { Animation } from './animation';
|
|
14
15
|
import { func, oneOf, shape, string } from 'prop-types';
|
|
@@ -23,6 +24,8 @@ export var Feedback = function Feedback(_ref) {
|
|
|
23
24
|
bgColor = _ref.bgColor,
|
|
24
25
|
bgDarkmodeColor = _ref.bgDarkmodeColor,
|
|
25
26
|
contactLink = _ref.contactLink;
|
|
27
|
+
var feedbackSentRef = useRef();
|
|
28
|
+
var expandedRef = useRef();
|
|
26
29
|
var _useState = useState(),
|
|
27
30
|
_useState2 = _slicedToArray(_useState, 2),
|
|
28
31
|
feedbackThumbClicked = _useState2[0],
|
|
@@ -38,11 +41,19 @@ export var Feedback = function Feedback(_ref) {
|
|
|
38
41
|
var feedbackClassnames = classNames('ffe-feedback', _defineProperty(_defineProperty({}, "ffe-feedback--bg-".concat(bgColor), bgColor), "ffe-feedback--dm-bg-".concat(bgDarkmodeColor), bgDarkmodeColor));
|
|
39
42
|
var handleThumbClicked = function handleThumbClicked(thumb) {
|
|
40
43
|
setFeedbackThumbClicked(thumb);
|
|
41
|
-
|
|
44
|
+
flushSync(function () {
|
|
45
|
+
setExpanded(function (prevState) {
|
|
46
|
+
return !prevState;
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
expandedRef.current.focus();
|
|
42
50
|
onThumbClick(thumb);
|
|
43
51
|
};
|
|
44
52
|
var handleFeedbackSent = function handleFeedbackSent(feedbackText) {
|
|
45
|
-
|
|
53
|
+
flushSync(function () {
|
|
54
|
+
setFeedbackSent(true);
|
|
55
|
+
});
|
|
56
|
+
feedbackSentRef.current.focus();
|
|
46
57
|
onFeedbackSend(feedbackText);
|
|
47
58
|
};
|
|
48
59
|
if (feedbackSent) {
|
|
@@ -51,7 +62,9 @@ export var Feedback = function Feedback(_ref) {
|
|
|
51
62
|
}, /*#__PURE__*/React.createElement("div", {
|
|
52
63
|
className: "ffe-feedback__content"
|
|
53
64
|
}, /*#__PURE__*/React.createElement(Heading2, {
|
|
54
|
-
lookLike: 4
|
|
65
|
+
lookLike: 4,
|
|
66
|
+
ref: feedbackSentRef,
|
|
67
|
+
tabIndex: -1
|
|
55
68
|
}, i18n[language].FEEDBACK_SENT_HEADING), /*#__PURE__*/React.createElement(Animation, null)));
|
|
56
69
|
}
|
|
57
70
|
if (expanded) {
|
|
@@ -59,11 +72,11 @@ export var Feedback = function Feedback(_ref) {
|
|
|
59
72
|
className: feedbackClassnames
|
|
60
73
|
}, /*#__PURE__*/React.createElement("div", {
|
|
61
74
|
className: "ffe-feedback__content"
|
|
62
|
-
},
|
|
63
|
-
lookLike: 5
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}, i18n[language].FEEDBACK_IMPROVE), /*#__PURE__*/React.createElement(FeedbackExpanded, {
|
|
75
|
+
}, /*#__PURE__*/React.createElement(Heading2, {
|
|
76
|
+
lookLike: 5,
|
|
77
|
+
ref: expandedRef,
|
|
78
|
+
tabIndex: -1
|
|
79
|
+
}, feedbackThumbClicked === Thumbs.UP ? i18n[language].FEEDBACK_GOOD : i18n[language].FEEDBACK_IMPROVE), /*#__PURE__*/React.createElement(FeedbackExpanded, {
|
|
67
80
|
language: language,
|
|
68
81
|
onSend: handleFeedbackSent,
|
|
69
82
|
onCancel: function onCancel() {
|
package/lib/feedback.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = exports.Feedback = void 0;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _reactDom = require("react-dom");
|
|
9
10
|
var _ffeCoreReact = require("@sb1/ffe-core-react");
|
|
10
11
|
var _animation = require("./animation");
|
|
11
12
|
var _propTypes = require("prop-types");
|
|
@@ -32,6 +33,8 @@ var Feedback = exports.Feedback = function Feedback(_ref) {
|
|
|
32
33
|
bgColor = _ref.bgColor,
|
|
33
34
|
bgDarkmodeColor = _ref.bgDarkmodeColor,
|
|
34
35
|
contactLink = _ref.contactLink;
|
|
36
|
+
var feedbackSentRef = (0, _react.useRef)();
|
|
37
|
+
var expandedRef = (0, _react.useRef)();
|
|
35
38
|
var _useState = (0, _react.useState)(),
|
|
36
39
|
_useState2 = _slicedToArray(_useState, 2),
|
|
37
40
|
feedbackThumbClicked = _useState2[0],
|
|
@@ -47,11 +50,19 @@ var Feedback = exports.Feedback = function Feedback(_ref) {
|
|
|
47
50
|
var feedbackClassnames = (0, _classnames.default)('ffe-feedback', _defineProperty(_defineProperty({}, "ffe-feedback--bg-".concat(bgColor), bgColor), "ffe-feedback--dm-bg-".concat(bgDarkmodeColor), bgDarkmodeColor));
|
|
48
51
|
var handleThumbClicked = function handleThumbClicked(thumb) {
|
|
49
52
|
setFeedbackThumbClicked(thumb);
|
|
50
|
-
|
|
53
|
+
(0, _reactDom.flushSync)(function () {
|
|
54
|
+
setExpanded(function (prevState) {
|
|
55
|
+
return !prevState;
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
expandedRef.current.focus();
|
|
51
59
|
onThumbClick(thumb);
|
|
52
60
|
};
|
|
53
61
|
var handleFeedbackSent = function handleFeedbackSent(feedbackText) {
|
|
54
|
-
|
|
62
|
+
(0, _reactDom.flushSync)(function () {
|
|
63
|
+
setFeedbackSent(true);
|
|
64
|
+
});
|
|
65
|
+
feedbackSentRef.current.focus();
|
|
55
66
|
onFeedbackSend(feedbackText);
|
|
56
67
|
};
|
|
57
68
|
if (feedbackSent) {
|
|
@@ -60,7 +71,9 @@ var Feedback = exports.Feedback = function Feedback(_ref) {
|
|
|
60
71
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
61
72
|
className: "ffe-feedback__content"
|
|
62
73
|
}, /*#__PURE__*/_react.default.createElement(_ffeCoreReact.Heading2, {
|
|
63
|
-
lookLike: 4
|
|
74
|
+
lookLike: 4,
|
|
75
|
+
ref: feedbackSentRef,
|
|
76
|
+
tabIndex: -1
|
|
64
77
|
}, _i18n.default[language].FEEDBACK_SENT_HEADING), /*#__PURE__*/_react.default.createElement(_animation.Animation, null)));
|
|
65
78
|
}
|
|
66
79
|
if (expanded) {
|
|
@@ -68,11 +81,11 @@ var Feedback = exports.Feedback = function Feedback(_ref) {
|
|
|
68
81
|
className: feedbackClassnames
|
|
69
82
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
70
83
|
className: "ffe-feedback__content"
|
|
71
|
-
},
|
|
72
|
-
lookLike: 5
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}, _i18n.default[language].FEEDBACK_IMPROVE), /*#__PURE__*/_react.default.createElement(_feedbackExpanded.default, {
|
|
84
|
+
}, /*#__PURE__*/_react.default.createElement(_ffeCoreReact.Heading2, {
|
|
85
|
+
lookLike: 5,
|
|
86
|
+
ref: expandedRef,
|
|
87
|
+
tabIndex: -1
|
|
88
|
+
}, feedbackThumbClicked === _feedbackThumbs.Thumbs.UP ? _i18n.default[language].FEEDBACK_GOOD : _i18n.default[language].FEEDBACK_IMPROVE), /*#__PURE__*/_react.default.createElement(_feedbackExpanded.default, {
|
|
76
89
|
language: language,
|
|
77
90
|
onSend: handleFeedbackSent,
|
|
78
91
|
onCancel: function onCancel() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sb1/ffe-feedback-react",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.3",
|
|
4
4
|
"description": "React component for ffe-feedback",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "SpareBank 1",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@sb1/ffe-buttons-react": "^20.0.8",
|
|
29
29
|
"@sb1/ffe-collapse-react": "^2.0.7",
|
|
30
|
-
"@sb1/ffe-core-react": "^7.
|
|
30
|
+
"@sb1/ffe-core-react": "^7.2.0",
|
|
31
31
|
"@sb1/ffe-feedback": "^1.2.1",
|
|
32
32
|
"@sb1/ffe-form-react": "^14.0.9",
|
|
33
33
|
"classnames": "^2.3.1",
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
"publishConfig": {
|
|
49
49
|
"access": "public"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "b47fbdb7daaf9d3edc12366a6fbb90f462268b1f"
|
|
52
52
|
}
|
package/types/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export type bgDarkmodeColors = 'svart' | 'natt';
|
|
|
11
11
|
export interface ContactLink {
|
|
12
12
|
url?: string;
|
|
13
13
|
linkText?: string;
|
|
14
|
-
onClick?: (e: React.MouseEvent
|
|
14
|
+
onClick?: (e: React.MouseEvent) => void;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
export interface FeedbackProps extends React.ComponentProps<'div'> {
|