@atlaskit/reactions 24.7.0 → 24.8.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 +9 -0
- package/dist/cjs/analytics/index.js +1 -1
- package/dist/cjs/components/ReactionDialog/ReactionView.js +73 -60
- package/dist/cjs/components/ReactionDialog/ReactionsDialog.js +42 -81
- package/dist/cjs/components/ReactionDialog/ReactionsDialogHeader.js +205 -0
- package/dist/cjs/components/ReactionDialog/ReactionsList.js +12 -105
- package/dist/cjs/components/ReactionDialog/styles.js +3 -75
- package/dist/cjs/components/Reactions/Reactions.js +5 -2
- package/dist/es2019/analytics/index.js +1 -1
- package/dist/es2019/components/ReactionDialog/ReactionView.js +75 -62
- package/dist/es2019/components/ReactionDialog/ReactionsDialog.js +30 -64
- package/dist/es2019/components/ReactionDialog/ReactionsDialogHeader.js +188 -0
- package/dist/es2019/components/ReactionDialog/ReactionsList.js +12 -91
- package/dist/es2019/components/ReactionDialog/styles.js +3 -71
- package/dist/es2019/components/Reactions/Reactions.js +5 -2
- package/dist/esm/analytics/index.js +1 -1
- package/dist/esm/components/ReactionDialog/ReactionView.js +76 -63
- package/dist/esm/components/ReactionDialog/ReactionsDialog.js +44 -82
- package/dist/esm/components/ReactionDialog/ReactionsDialogHeader.js +196 -0
- package/dist/esm/components/ReactionDialog/ReactionsList.js +11 -99
- package/dist/esm/components/ReactionDialog/styles.js +3 -75
- package/dist/esm/components/Reactions/Reactions.js +5 -2
- package/dist/types/components/ReactionDialog/ReactionsDialogHeader.d.ts +15 -0
- package/dist/types/components/ReactionDialog/ReactionsList.d.ts +7 -7
- package/dist/types/components/ReactionDialog/styles.d.ts +0 -3
- package/dist/types-ts4.5/components/ReactionDialog/ReactionsDialogHeader.d.ts +15 -0
- package/dist/types-ts4.5/components/ReactionDialog/ReactionsList.d.ts +7 -7
- package/dist/types-ts4.5/components/ReactionDialog/styles.d.ts +0 -3
- package/package.json +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @atlaskit/reactions
|
|
2
2
|
|
|
3
|
+
## 24.8.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#111042](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/111042)
|
|
8
|
+
[`6e5ef11d2a9e6`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/6e5ef11d2a9e6) -
|
|
9
|
+
[ux] Refactor Reactions Dialog to have sticky header and change dialog rendering condition for
|
|
10
|
+
ReactionSummaryView
|
|
11
|
+
|
|
3
12
|
## 24.7.0
|
|
4
13
|
|
|
5
14
|
### Minor Changes
|
|
@@ -11,7 +11,7 @@ var _analyticsGasTypes = require("@atlaskit/analytics-gas-types");
|
|
|
11
11
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
12
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
13
|
var packageName = "@atlaskit/reactions";
|
|
14
|
-
var packageVersion = "24.
|
|
14
|
+
var packageVersion = "24.8.0";
|
|
15
15
|
/**
|
|
16
16
|
* TODO: move to utility package?
|
|
17
17
|
* A random sampling function
|
|
@@ -17,6 +17,7 @@ var _Avatar = _interopRequireDefault(require("@atlaskit/avatar/Avatar"));
|
|
|
17
17
|
var _spinner = _interopRequireDefault(require("@atlaskit/spinner"));
|
|
18
18
|
var _tabs = require("@atlaskit/tabs");
|
|
19
19
|
var _primitives = require("@atlaskit/primitives");
|
|
20
|
+
var _heading = _interopRequireDefault(require("@atlaskit/heading"));
|
|
20
21
|
var _i18n = require("../../shared/i18n");
|
|
21
22
|
var _styles = require("./styles");
|
|
22
23
|
/**
|
|
@@ -27,11 +28,20 @@ var _styles = require("./styles");
|
|
|
27
28
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
28
29
|
|
|
29
30
|
var userDescriptionStyle = (0, _primitives.xcss)({
|
|
30
|
-
marginLeft: 'space.
|
|
31
|
+
marginLeft: 'space.150'
|
|
31
32
|
});
|
|
32
33
|
var profileWrapperStyle = (0, _primitives.xcss)({
|
|
33
34
|
marginLeft: 'space.0'
|
|
34
35
|
});
|
|
36
|
+
var reactionViewStyle = (0, _primitives.xcss)({
|
|
37
|
+
marginTop: 'space.300'
|
|
38
|
+
});
|
|
39
|
+
var headerStyle = (0, _primitives.xcss)({
|
|
40
|
+
alignItems: 'flex-end'
|
|
41
|
+
});
|
|
42
|
+
var emojiSpacingStlye = (0, _primitives.xcss)({
|
|
43
|
+
marginLeft: 'space.100'
|
|
44
|
+
});
|
|
35
45
|
var ReactionView = exports.ReactionView = function ReactionView(_ref) {
|
|
36
46
|
var selectedEmojiId = _ref.selectedEmojiId,
|
|
37
47
|
emojiProvider = _ref.emojiProvider,
|
|
@@ -43,7 +53,7 @@ var ReactionView = exports.ReactionView = function ReactionView(_ref) {
|
|
|
43
53
|
setEmojiShortName = _useState2[1];
|
|
44
54
|
(0, _react.useEffect)(function () {
|
|
45
55
|
(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
46
|
-
var provider, emoji;
|
|
56
|
+
var provider, emoji, shortNameWithoutColons;
|
|
47
57
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
48
58
|
while (1) switch (_context.prev = _context.next) {
|
|
49
59
|
case 0:
|
|
@@ -59,7 +69,8 @@ var ReactionView = exports.ReactionView = function ReactionView(_ref) {
|
|
|
59
69
|
case 5:
|
|
60
70
|
emoji = _context.sent;
|
|
61
71
|
if (emoji !== null && emoji !== void 0 && emoji.shortName) {
|
|
62
|
-
|
|
72
|
+
shortNameWithoutColons = emoji.shortName.replace(/:/g, '');
|
|
73
|
+
setEmojiShortName(shortNameWithoutColons);
|
|
63
74
|
}
|
|
64
75
|
case 7:
|
|
65
76
|
case "end":
|
|
@@ -75,61 +86,63 @@ var ReactionView = exports.ReactionView = function ReactionView(_ref) {
|
|
|
75
86
|
return a.displayName.localeCompare(b.displayName);
|
|
76
87
|
})) || [];
|
|
77
88
|
}, [reaction]);
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
)
|
|
133
|
-
|
|
134
|
-
|
|
89
|
+
return (0, _react2.jsx)(_tabs.TabPanel, null, (0, _react2.jsx)(_primitives.Flex, {
|
|
90
|
+
direction: "column",
|
|
91
|
+
xcss: reactionViewStyle
|
|
92
|
+
}, (0, _react2.jsx)(_primitives.Inline, {
|
|
93
|
+
xcss: headerStyle
|
|
94
|
+
}, (0, _react2.jsx)(_heading.default, {
|
|
95
|
+
size: "xsmall"
|
|
96
|
+
}, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _i18n.messages.peopleWhoReactedSubheading, {
|
|
97
|
+
values: {
|
|
98
|
+
emojiShortName: emojiShortName
|
|
99
|
+
}
|
|
100
|
+
}))), (0, _react2.jsx)(_primitives.Box, {
|
|
101
|
+
as: "span",
|
|
102
|
+
xcss: emojiSpacingStlye
|
|
103
|
+
}, (0, _react2.jsx)(_element.ResourcedEmoji, {
|
|
104
|
+
emojiProvider: emojiProvider,
|
|
105
|
+
emojiId: {
|
|
106
|
+
id: selectedEmojiId,
|
|
107
|
+
shortName: ''
|
|
108
|
+
},
|
|
109
|
+
fitToHeight: 24
|
|
110
|
+
}))), alphabeticalNames.length === 0 ?
|
|
111
|
+
// eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
|
|
112
|
+
(0, _react2.jsx)("div", {
|
|
113
|
+
css: _styles.centerSpinner
|
|
114
|
+
}, (0, _react2.jsx)(_spinner.default, {
|
|
115
|
+
size: "large"
|
|
116
|
+
})) :
|
|
117
|
+
// eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
|
|
118
|
+
(0, _react2.jsx)("ul", {
|
|
119
|
+
css: _styles.userListStyle
|
|
120
|
+
}, alphabeticalNames.map(function (user) {
|
|
121
|
+
var _user$profilePicture;
|
|
122
|
+
var profile = (_user$profilePicture = user.profilePicture) === null || _user$profilePicture === void 0 ? void 0 : _user$profilePicture.path;
|
|
123
|
+
return (
|
|
124
|
+
// eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
|
|
125
|
+
(0, _react2.jsx)("li", {
|
|
126
|
+
css: _styles.userStyle,
|
|
127
|
+
key: user.id
|
|
128
|
+
}, ProfileCardWrapper && user.accountId ? (0, _react2.jsx)(_primitives.Box, {
|
|
129
|
+
xcss: profileWrapperStyle
|
|
130
|
+
}, (0, _react2.jsx)(ProfileCardWrapper, {
|
|
131
|
+
userId: user.accountId,
|
|
132
|
+
isAnonymous: false,
|
|
133
|
+
canViewProfile: true,
|
|
134
|
+
position: "left-start"
|
|
135
|
+
}, (0, _react2.jsx)(_Avatar.default, {
|
|
136
|
+
size: "medium",
|
|
137
|
+
src: profile,
|
|
138
|
+
testId: "profile"
|
|
139
|
+
}))) : (0, _react2.jsx)(_Avatar.default, {
|
|
140
|
+
size: "medium",
|
|
141
|
+
src: profile,
|
|
142
|
+
testId: "profile"
|
|
143
|
+
}), (0, _react2.jsx)(_primitives.Flex, {
|
|
144
|
+
xcss: userDescriptionStyle
|
|
145
|
+
}, (0, _react2.jsx)("div", null, user.displayName)))
|
|
146
|
+
);
|
|
147
|
+
}))));
|
|
135
148
|
};
|
|
@@ -8,20 +8,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.ReactionsDialog = exports.RENDER_MODAL_TESTID = void 0;
|
|
9
9
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
12
11
|
var _react = require("react");
|
|
13
12
|
var _reactIntlNext = require("react-intl-next");
|
|
14
13
|
var _react2 = require("@emotion/react");
|
|
14
|
+
var _tabs = _interopRequireDefault(require("@atlaskit/tabs"));
|
|
15
|
+
var _new = _interopRequireDefault(require("@atlaskit/button/new"));
|
|
15
16
|
var _primitives = require("@atlaskit/primitives");
|
|
16
|
-
var _new = _interopRequireWildcard(require("@atlaskit/button/new"));
|
|
17
|
-
var _heading = _interopRequireDefault(require("@atlaskit/heading"));
|
|
18
17
|
var _modalDialog = _interopRequireWildcard(require("@atlaskit/modal-dialog"));
|
|
19
|
-
var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
|
|
20
|
-
var _chevronLeft = _interopRequireDefault(require("@atlaskit/icon/utility/chevron-left"));
|
|
21
|
-
var _chevronRight = _interopRequireDefault(require("@atlaskit/icon/utility/chevron-right"));
|
|
22
18
|
var _constants = require("../../shared/constants");
|
|
23
19
|
var _i18n = require("../../shared/i18n");
|
|
24
20
|
var _ReactionsList = require("./ReactionsList");
|
|
21
|
+
var _ReactionsDialogHeader = require("./ReactionsDialogHeader");
|
|
25
22
|
var _styles = require("./styles");
|
|
26
23
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
27
24
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -32,12 +29,6 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
32
29
|
|
|
33
30
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
34
31
|
|
|
35
|
-
var fullWidthStyle = (0, _primitives.xcss)({
|
|
36
|
-
width: '100%',
|
|
37
|
-
padding: 'space.300',
|
|
38
|
-
paddingBlockEnd: 'space.400'
|
|
39
|
-
});
|
|
40
|
-
|
|
41
32
|
/**
|
|
42
33
|
* Test id for the Reactions modal dialog
|
|
43
34
|
*/
|
|
@@ -49,70 +40,22 @@ var getDimensions = function getDimensions(container) {
|
|
|
49
40
|
scrollLeft: container === null || container === void 0 ? void 0 : container.scrollLeft
|
|
50
41
|
};
|
|
51
42
|
};
|
|
52
|
-
var
|
|
53
|
-
var
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
currentPage = _ref.currentPage,
|
|
57
|
-
maxPages = _ref.maxPages;
|
|
58
|
-
var _useModal = (0, _modalDialog.useModal)(),
|
|
59
|
-
titleId = _useModal.titleId;
|
|
60
|
-
var intl = (0, _reactIntlNext.useIntl)();
|
|
61
|
-
var isSinglePage = maxPages === 1;
|
|
62
|
-
var isOnFirstPage = currentPage === 1;
|
|
63
|
-
var isOnLastPage = currentPage === maxPages;
|
|
64
|
-
return (0, _react2.jsx)(_primitives.Flex, {
|
|
65
|
-
direction: "row",
|
|
66
|
-
justifyContent: "space-between",
|
|
67
|
-
alignItems: "center",
|
|
68
|
-
xcss: fullWidthStyle
|
|
69
|
-
}, (0, _react2.jsx)(_heading.default, {
|
|
70
|
-
size: "medium",
|
|
71
|
-
id: titleId
|
|
72
|
-
}, intl.formatMessage(_i18n.messages.reactionsCount, {
|
|
73
|
-
count: totalReactionsCount
|
|
74
|
-
})), !isSinglePage && (0, _react2.jsx)(_primitives.Flex, {
|
|
75
|
-
alignItems: "center",
|
|
76
|
-
gap: "space.100"
|
|
77
|
-
}, (0, _react2.jsx)(_tooltip.default, {
|
|
78
|
-
content: intl.formatMessage(_i18n.messages.leftNavigateLabel),
|
|
79
|
-
canAppear: function canAppear() {
|
|
80
|
-
return !isOnFirstPage;
|
|
81
|
-
}
|
|
82
|
-
}, function (tooltipProps) {
|
|
83
|
-
return (0, _react2.jsx)(_new.IconButton, (0, _extends2.default)({}, tooltipProps, {
|
|
84
|
-
isDisabled: isOnFirstPage,
|
|
85
|
-
onClick: handlePreviousPage,
|
|
86
|
-
icon: _chevronLeft.default,
|
|
87
|
-
label: intl.formatMessage(_i18n.messages.leftNavigateLabel)
|
|
88
|
-
}));
|
|
89
|
-
}), (0, _react2.jsx)(_tooltip.default, {
|
|
90
|
-
content: intl.formatMessage(_i18n.messages.rightNavigateLabel),
|
|
91
|
-
canAppear: function canAppear() {
|
|
92
|
-
return !isOnLastPage;
|
|
93
|
-
}
|
|
94
|
-
}, function (tooltipProps) {
|
|
95
|
-
return (0, _react2.jsx)(_new.IconButton, (0, _extends2.default)({}, tooltipProps, {
|
|
96
|
-
onClick: handleNextPage,
|
|
97
|
-
isDisabled: isOnLastPage,
|
|
98
|
-
icon: _chevronRight.default,
|
|
99
|
-
label: intl.formatMessage(_i18n.messages.rightNavigateLabel)
|
|
100
|
-
}));
|
|
101
|
-
})));
|
|
102
|
-
};
|
|
103
|
-
var ReactionsDialog = exports.ReactionsDialog = function ReactionsDialog(_ref2) {
|
|
43
|
+
var footerStyle = (0, _primitives.xcss)({
|
|
44
|
+
borderTop: "2px solid ".concat("var(--ds-border, rgba(11, 18, 14, 0.14))")
|
|
45
|
+
});
|
|
46
|
+
var ReactionsDialog = exports.ReactionsDialog = function ReactionsDialog(_ref) {
|
|
104
47
|
var _currentReactions$;
|
|
105
|
-
var
|
|
106
|
-
reactions =
|
|
107
|
-
|
|
108
|
-
handleCloseReactionsDialog =
|
|
109
|
-
emojiProvider =
|
|
110
|
-
selectedEmojiId =
|
|
111
|
-
|
|
112
|
-
handleSelectReaction =
|
|
113
|
-
|
|
114
|
-
handlePaginationChange =
|
|
115
|
-
ProfileCardWrapper =
|
|
48
|
+
var _ref$reactions = _ref.reactions,
|
|
49
|
+
reactions = _ref$reactions === void 0 ? [] : _ref$reactions,
|
|
50
|
+
_ref$handleCloseReact = _ref.handleCloseReactionsDialog,
|
|
51
|
+
handleCloseReactionsDialog = _ref$handleCloseReact === void 0 ? function () {} : _ref$handleCloseReact,
|
|
52
|
+
emojiProvider = _ref.emojiProvider,
|
|
53
|
+
selectedEmojiId = _ref.selectedEmojiId,
|
|
54
|
+
_ref$handleSelectReac = _ref.handleSelectReaction,
|
|
55
|
+
handleSelectReaction = _ref$handleSelectReac === void 0 ? function () {} : _ref$handleSelectReac,
|
|
56
|
+
_ref$handlePagination = _ref.handlePaginationChange,
|
|
57
|
+
handlePaginationChange = _ref$handlePagination === void 0 ? function () {} : _ref$handlePagination,
|
|
58
|
+
ProfileCardWrapper = _ref.ProfileCardWrapper;
|
|
116
59
|
var _useState = (0, _react.useState)(),
|
|
117
60
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
118
61
|
elementToScroll = _useState2[0],
|
|
@@ -233,6 +176,16 @@ var ReactionsDialog = exports.ReactionsDialog = function ReactionsDialog(_ref2)
|
|
|
233
176
|
}
|
|
234
177
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
235
178
|
}, []);
|
|
179
|
+
var selectedIndex = currentReactions.findIndex(function (reaction) {
|
|
180
|
+
return reaction.emojiId === selectedEmojiId;
|
|
181
|
+
});
|
|
182
|
+
var onTabChange = (0, _react.useCallback)(function (index, analyticsEvent) {
|
|
183
|
+
if (index === selectedIndex) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
var emojiId = currentReactions[index].emojiId;
|
|
187
|
+
handleSelectReaction(emojiId, analyticsEvent);
|
|
188
|
+
}, [selectedIndex, currentReactions, handleSelectReaction]);
|
|
236
189
|
return (0, _react2.jsx)(_modalDialog.default, {
|
|
237
190
|
onClose: handleCloseReactionsDialog,
|
|
238
191
|
height: 600,
|
|
@@ -240,23 +193,31 @@ var ReactionsDialog = exports.ReactionsDialog = function ReactionsDialog(_ref2)
|
|
|
240
193
|
// eslint-disable-next-line jsx-a11y/no-autofocus
|
|
241
194
|
,
|
|
242
195
|
autoFocus: false
|
|
243
|
-
}, (0, _react2.jsx)(
|
|
196
|
+
}, (0, _react2.jsx)(_tabs.default, {
|
|
197
|
+
id: "reactions-dialog-tabs",
|
|
198
|
+
onChange: onTabChange,
|
|
199
|
+
selected: selectedIndex
|
|
200
|
+
}, (0, _react2.jsx)(_ReactionsDialogHeader.ReactionsDialogHeader, {
|
|
244
201
|
totalReactionsCount: totalReactionsCount,
|
|
245
202
|
maxPages: maxPages,
|
|
246
203
|
handlePreviousPage: handlePreviousPage,
|
|
247
204
|
handleNextPage: handleNextPage,
|
|
248
|
-
currentPage: currentPage
|
|
205
|
+
currentPage: currentPage,
|
|
206
|
+
emojiProvider: emojiProvider,
|
|
207
|
+
selectedEmojiId: selectedEmojiId,
|
|
208
|
+
currentReactions: currentReactions
|
|
249
209
|
}), (0, _react2.jsx)(_modalDialog.ModalBody, null, (0, _react2.jsx)("div", {
|
|
250
210
|
css: (0, _styles.containerStyle)(reactionsBorderWidth),
|
|
251
211
|
ref: setRef
|
|
252
212
|
}, (0, _react2.jsx)(_ReactionsList.ReactionsList, {
|
|
253
|
-
|
|
213
|
+
selectedEmojiId: selectedEmojiId,
|
|
254
214
|
reactions: currentReactions,
|
|
255
215
|
emojiProvider: emojiProvider,
|
|
256
|
-
onReactionChanged: handleSelectReaction,
|
|
257
216
|
ProfileCardWrapper: ProfileCardWrapper
|
|
258
|
-
})))
|
|
217
|
+
})))), (0, _react2.jsx)(_primitives.Box, {
|
|
218
|
+
xcss: footerStyle
|
|
219
|
+
}, (0, _react2.jsx)(_modalDialog.ModalFooter, null, (0, _react2.jsx)(_new.default, {
|
|
259
220
|
appearance: "subtle",
|
|
260
221
|
onClick: handleCloseReactionsDialog
|
|
261
|
-
}, intl.formatMessage(_i18n.messages.closeReactionsDialog))));
|
|
222
|
+
}, intl.formatMessage(_i18n.messages.closeReactionsDialog)))));
|
|
262
223
|
};
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.ReactionsDialogHeader = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _reactIntlNext = require("react-intl-next");
|
|
10
|
+
var _react = require("@emotion/react");
|
|
11
|
+
var _tokens = require("@atlaskit/tokens");
|
|
12
|
+
var _tabs = require("@atlaskit/tabs");
|
|
13
|
+
var _primitives = require("@atlaskit/primitives");
|
|
14
|
+
var _new = require("@atlaskit/button/new");
|
|
15
|
+
var _heading = _interopRequireDefault(require("@atlaskit/heading"));
|
|
16
|
+
var _modalDialog = require("@atlaskit/modal-dialog");
|
|
17
|
+
var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
|
|
18
|
+
var _chevronLeft = _interopRequireDefault(require("@atlaskit/icon/utility/chevron-left"));
|
|
19
|
+
var _chevronRight = _interopRequireDefault(require("@atlaskit/icon/utility/chevron-right"));
|
|
20
|
+
var _element = require("@atlaskit/emoji/element");
|
|
21
|
+
var _i18n = require("../../shared/i18n");
|
|
22
|
+
var _Counter = require("../Counter");
|
|
23
|
+
/**
|
|
24
|
+
* @jsxRuntime classic
|
|
25
|
+
* @jsx jsx
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
29
|
+
|
|
30
|
+
var REACTIONS_CONTAINER_WIDTH = 56;
|
|
31
|
+
var REACTION_CONTAINER_HEIGHT = 40;
|
|
32
|
+
var containerEdgeAngle = {
|
|
33
|
+
rightEdge: 270,
|
|
34
|
+
leftEdge: 90
|
|
35
|
+
};
|
|
36
|
+
var fadedCss = function fadedCss(edge, theme) {
|
|
37
|
+
return (0, _react.css)({
|
|
38
|
+
content: '""',
|
|
39
|
+
position: 'absolute',
|
|
40
|
+
left: '0px',
|
|
41
|
+
top: '0px',
|
|
42
|
+
width: "".concat(REACTIONS_CONTAINER_WIDTH, "px"),
|
|
43
|
+
height: "".concat(REACTION_CONTAINER_HEIGHT, "px"),
|
|
44
|
+
zIndex: 0,
|
|
45
|
+
background:
|
|
46
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
|
|
47
|
+
theme === 'dark' ? "linear-gradient(".concat(containerEdgeAngle[edge], "deg, rgba(34, 39, 43, 0.95) 40.23%, rgba(34, 39, 43, 0.55) 58.33%, rgba(34, 39, 43, 0) 77.49%)") : "linear-gradient(".concat(containerEdgeAngle[edge], "deg, rgba(255, 255, 255, 0.95) 40.23%, rgba(255, 255, 255, 0.55) 58.33%, rgba(255, 255, 255, 0) 77.49%)")
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
var customTabListStyles = (0, _react.css)({
|
|
51
|
+
overflow: 'auto',
|
|
52
|
+
display: 'flex',
|
|
53
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
|
|
54
|
+
'div[role=tablist]': {
|
|
55
|
+
flexGrow: 1,
|
|
56
|
+
// paddingInline exists to maintain styling prior to @atlaskit/tabs update that removed baked in horizontal padding
|
|
57
|
+
paddingInline: "var(--ds-space-100, 8px)"
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
var customTabWrapper = function customTabWrapper(theme) {
|
|
61
|
+
return (0, _react.css)({
|
|
62
|
+
flexShrink: 0,
|
|
63
|
+
display: 'flex',
|
|
64
|
+
flexDirection: 'column',
|
|
65
|
+
textAlign: 'center',
|
|
66
|
+
alignItems: 'center',
|
|
67
|
+
justifyContent: 'center',
|
|
68
|
+
minWidth: "".concat(REACTIONS_CONTAINER_WIDTH, "px"),
|
|
69
|
+
boxSizing: 'border-box',
|
|
70
|
+
position: 'relative',
|
|
71
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
|
|
72
|
+
'> div': {
|
|
73
|
+
minWidth: "".concat(REACTIONS_CONTAINER_WIDTH, "px"),
|
|
74
|
+
minHeight: "".concat(REACTION_CONTAINER_HEIGHT, "px"),
|
|
75
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-important-styles -- Ignored via go/DSP-18766
|
|
76
|
+
padding: '0px !important',
|
|
77
|
+
alignItems: 'center',
|
|
78
|
+
justifyContent: 'center'
|
|
79
|
+
},
|
|
80
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
|
|
81
|
+
'& > span': {
|
|
82
|
+
minHeight: '16px',
|
|
83
|
+
minWidth: '16px'
|
|
84
|
+
},
|
|
85
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
|
|
86
|
+
'&.disabled:after': fadedCss('rightEdge', theme),
|
|
87
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
|
|
88
|
+
'&.disabled + &.disabled:after': fadedCss('leftEdge', theme)
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
var firstElement = (0, _react.css)({
|
|
92
|
+
paddingLeft: "var(--ds-space-200, 16px)"
|
|
93
|
+
});
|
|
94
|
+
var fullWidthStyle = (0, _primitives.xcss)({
|
|
95
|
+
width: '100%',
|
|
96
|
+
padding: 'space.300',
|
|
97
|
+
paddingBlockEnd: 'space.400'
|
|
98
|
+
});
|
|
99
|
+
var emojiStyles = (0, _primitives.xcss)({
|
|
100
|
+
transformOrigin: 'center center 0',
|
|
101
|
+
paddingInlineStart: 'space.100',
|
|
102
|
+
paddingBlock: 'space.050',
|
|
103
|
+
paddingInlineEnd: 'space.050'
|
|
104
|
+
});
|
|
105
|
+
var counterStyle = (0, _primitives.xcss)({
|
|
106
|
+
marginTop: 'space.025'
|
|
107
|
+
});
|
|
108
|
+
var ReactionsTabs = function ReactionsTabs(_ref) {
|
|
109
|
+
var currentReactions = _ref.currentReactions,
|
|
110
|
+
emojiProvider = _ref.emojiProvider,
|
|
111
|
+
selectedEmojiId = _ref.selectedEmojiId;
|
|
112
|
+
var _useThemeObserver = (0, _tokens.useThemeObserver)(),
|
|
113
|
+
colorMode = _useThemeObserver.colorMode;
|
|
114
|
+
return (0, _react.jsx)("div", {
|
|
115
|
+
css: customTabListStyles,
|
|
116
|
+
id: "reactions-dialog-tabs-list"
|
|
117
|
+
}, (0, _react.jsx)(_tabs.TabList, null, currentReactions.map(function (reaction, index) {
|
|
118
|
+
var emojiId = {
|
|
119
|
+
id: reaction.emojiId,
|
|
120
|
+
shortName: ''
|
|
121
|
+
};
|
|
122
|
+
return (0, _react.jsx)("div", {
|
|
123
|
+
// eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
|
|
124
|
+
css: [customTabWrapper(colorMode), index === 0 ? firstElement : []]
|
|
125
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
126
|
+
,
|
|
127
|
+
className: "reaction-elements",
|
|
128
|
+
key: reaction.emojiId,
|
|
129
|
+
"data-testid": emojiId === null || emojiId === void 0 ? void 0 : emojiId.id
|
|
130
|
+
}, (0, _react.jsx)(_tabs.Tab, null, (0, _react.jsx)(_primitives.Flex, {
|
|
131
|
+
justifyContent: "center",
|
|
132
|
+
alignItems: "center",
|
|
133
|
+
direction: "row"
|
|
134
|
+
}, (0, _react.jsx)(_primitives.Box, {
|
|
135
|
+
xcss: emojiStyles
|
|
136
|
+
}, (0, _react.jsx)(_element.ResourcedEmoji, {
|
|
137
|
+
emojiProvider: emojiProvider,
|
|
138
|
+
emojiId: emojiId,
|
|
139
|
+
fitToHeight: 16,
|
|
140
|
+
showTooltip: true
|
|
141
|
+
})), (0, _react.jsx)(_primitives.Box, {
|
|
142
|
+
xcss: counterStyle
|
|
143
|
+
}, (0, _react.jsx)(_Counter.Counter, {
|
|
144
|
+
value: reaction.count
|
|
145
|
+
})))));
|
|
146
|
+
})));
|
|
147
|
+
};
|
|
148
|
+
var ReactionsDialogHeader = exports.ReactionsDialogHeader = function ReactionsDialogHeader(_ref2) {
|
|
149
|
+
var totalReactionsCount = _ref2.totalReactionsCount,
|
|
150
|
+
handlePreviousPage = _ref2.handlePreviousPage,
|
|
151
|
+
handleNextPage = _ref2.handleNextPage,
|
|
152
|
+
currentPage = _ref2.currentPage,
|
|
153
|
+
maxPages = _ref2.maxPages,
|
|
154
|
+
currentReactions = _ref2.currentReactions,
|
|
155
|
+
emojiProvider = _ref2.emojiProvider,
|
|
156
|
+
selectedEmojiId = _ref2.selectedEmojiId;
|
|
157
|
+
var _useModal = (0, _modalDialog.useModal)(),
|
|
158
|
+
titleId = _useModal.titleId;
|
|
159
|
+
var intl = (0, _reactIntlNext.useIntl)();
|
|
160
|
+
var isSinglePage = maxPages === 1;
|
|
161
|
+
var isOnFirstPage = currentPage === 1;
|
|
162
|
+
var isOnLastPage = currentPage === maxPages;
|
|
163
|
+
return (0, _react.jsx)(_primitives.Stack, null, (0, _react.jsx)(_primitives.Flex, {
|
|
164
|
+
direction: "row",
|
|
165
|
+
justifyContent: "space-between",
|
|
166
|
+
alignItems: "center",
|
|
167
|
+
xcss: fullWidthStyle
|
|
168
|
+
}, (0, _react.jsx)(_heading.default, {
|
|
169
|
+
size: "medium",
|
|
170
|
+
id: titleId
|
|
171
|
+
}, intl.formatMessage(_i18n.messages.reactionsCount, {
|
|
172
|
+
count: totalReactionsCount
|
|
173
|
+
})), !isSinglePage && (0, _react.jsx)(_primitives.Flex, {
|
|
174
|
+
alignItems: "center",
|
|
175
|
+
gap: "space.100"
|
|
176
|
+
}, (0, _react.jsx)(_tooltip.default, {
|
|
177
|
+
content: intl.formatMessage(_i18n.messages.leftNavigateLabel),
|
|
178
|
+
canAppear: function canAppear() {
|
|
179
|
+
return !isOnFirstPage;
|
|
180
|
+
}
|
|
181
|
+
}, function (tooltipProps) {
|
|
182
|
+
return (0, _react.jsx)(_new.IconButton, (0, _extends2.default)({}, tooltipProps, {
|
|
183
|
+
isDisabled: isOnFirstPage,
|
|
184
|
+
onClick: handlePreviousPage,
|
|
185
|
+
icon: _chevronLeft.default,
|
|
186
|
+
label: intl.formatMessage(_i18n.messages.leftNavigateLabel)
|
|
187
|
+
}));
|
|
188
|
+
}), (0, _react.jsx)(_tooltip.default, {
|
|
189
|
+
content: intl.formatMessage(_i18n.messages.rightNavigateLabel),
|
|
190
|
+
canAppear: function canAppear() {
|
|
191
|
+
return !isOnLastPage;
|
|
192
|
+
}
|
|
193
|
+
}, function (tooltipProps) {
|
|
194
|
+
return (0, _react.jsx)(_new.IconButton, (0, _extends2.default)({}, tooltipProps, {
|
|
195
|
+
onClick: handleNextPage,
|
|
196
|
+
isDisabled: isOnLastPage,
|
|
197
|
+
icon: _chevronRight.default,
|
|
198
|
+
label: intl.formatMessage(_i18n.messages.rightNavigateLabel)
|
|
199
|
+
}));
|
|
200
|
+
}))), (0, _react.jsx)(ReactionsTabs, {
|
|
201
|
+
currentReactions: currentReactions,
|
|
202
|
+
emojiProvider: emojiProvider,
|
|
203
|
+
selectedEmojiId: selectedEmojiId
|
|
204
|
+
}));
|
|
205
|
+
};
|