@bigbinary/neeto-molecules 4.2.0 → 4.3.1
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/dist/{Columns-DpeV3Jzz.js → Columns-gR00LMKF.js} +2 -2
- package/dist/Columns-gR00LMKF.js.map +1 -0
- package/dist/{ConfigureView-B0UvLoJe.js → ConfigureView-CG1M2-3b.js} +4 -15
- package/dist/ConfigureView-CG1M2-3b.js.map +1 -0
- package/dist/check-DvxzqR83.js +15 -0
- package/dist/check-DvxzqR83.js.map +1 -0
- package/dist/chevron-down-BMerqYpK.js +15 -0
- package/dist/chevron-down-BMerqYpK.js.map +1 -0
- package/dist/chevron-left-BTVCxPw8.js +15 -0
- package/dist/chevron-left-BTVCxPw8.js.map +1 -0
- package/dist/cjs/{Columns-C2ke8N58.js → Columns-Brpr2a_M.js} +2 -2
- package/dist/cjs/Columns-Brpr2a_M.js.map +1 -0
- package/dist/cjs/{ConfigureView-Coy1ViRc.js → ConfigureView-BVRHqVpb.js} +5 -16
- package/dist/cjs/ConfigureView-BVRHqVpb.js.map +1 -0
- package/dist/cjs/check-VgZf0qTr.js +17 -0
- package/dist/cjs/check-VgZf0qTr.js.map +1 -0
- package/dist/cjs/chevron-down-DwiliwN1.js +17 -0
- package/dist/cjs/chevron-down-DwiliwN1.js.map +1 -0
- package/dist/cjs/chevron-left-DWN80ILn.js +17 -0
- package/dist/cjs/chevron-left-DWN80ILn.js.map +1 -0
- package/dist/cjs/{useKeyboardShortcutsPaneState-BG_xVteC.js → useKeyboardShortcutsPaneState-DZUnpw9v.js} +2 -2
- package/dist/cjs/useKeyboardShortcutsPaneState-DZUnpw9v.js.map +1 -0
- package/dist/cjs/v2/AuditLogs.js +8 -8
- package/dist/cjs/v2/AuditLogs.js.map +1 -1
- package/dist/cjs/v2/BoardView.js +427 -0
- package/dist/cjs/v2/BoardView.js.map +1 -0
- package/dist/cjs/v2/Breadcrumbs.js +2 -2
- package/dist/cjs/v2/Breadcrumbs.js.map +1 -1
- package/dist/cjs/v2/CalendarView.js +429 -0
- package/dist/cjs/v2/CalendarView.js.map +1 -0
- package/dist/cjs/v2/Columns.js +2 -2
- package/dist/cjs/v2/ConfigurePageSidebar.js +4 -3
- package/dist/cjs/v2/ConfigurePageSidebar.js.map +1 -1
- package/dist/cjs/v2/CopyToClipboardButton.js +3 -13
- package/dist/cjs/v2/CopyToClipboardButton.js.map +1 -1
- package/dist/cjs/v2/DateFormat.js +42 -0
- package/dist/cjs/v2/DateFormat.js.map +1 -0
- package/dist/cjs/v2/DocumentEditor.js +329 -0
- package/dist/cjs/v2/DocumentEditor.js.map +1 -0
- package/dist/cjs/v2/EmojiPicker.js +125 -0
- package/dist/cjs/v2/EmojiPicker.js.map +1 -0
- package/dist/cjs/v2/Engagements.js +283 -0
- package/dist/cjs/v2/Engagements.js.map +1 -0
- package/dist/cjs/v2/ErrorPage.js +1 -1
- package/dist/cjs/v2/ErrorPage.js.map +1 -1
- package/dist/cjs/v2/FileUpload.js +644 -0
- package/dist/cjs/v2/FileUpload.js.map +1 -0
- package/dist/cjs/v2/FinderModal.js +253 -0
- package/dist/cjs/v2/FinderModal.js.map +1 -0
- package/dist/cjs/v2/FloatingActionMenu.js +11 -9
- package/dist/cjs/v2/FloatingActionMenu.js.map +1 -1
- package/dist/cjs/v2/Header.js +6 -6
- package/dist/cjs/v2/InlineInput.js +293 -0
- package/dist/cjs/v2/InlineInput.js.map +1 -0
- package/dist/cjs/v2/KeyboardShortcuts.js +3 -3
- package/dist/cjs/v2/KeyboardShortcuts.js.map +1 -1
- package/dist/cjs/v2/LoginPage.js +1 -1
- package/dist/cjs/v2/LoginPage.js.map +1 -1
- package/dist/cjs/v2/MenuBar.js +2 -2
- package/dist/cjs/v2/MenuBar.js.map +1 -1
- package/dist/cjs/v2/MoreDropdown.js +1 -1
- package/dist/cjs/v2/MoreDropdown.js.map +1 -1
- package/dist/cjs/v2/NavigationHeader.js +328 -0
- package/dist/cjs/v2/NavigationHeader.js.map +1 -0
- package/dist/cjs/v2/PublishBlock.js +414 -0
- package/dist/cjs/v2/PublishBlock.js.map +1 -0
- package/dist/cjs/v2/Rename.js +350 -0
- package/dist/cjs/v2/Rename.js.map +1 -0
- package/dist/cjs/v2/Scrollable.js +37 -0
- package/dist/cjs/v2/Scrollable.js.map +1 -0
- package/dist/cjs/v2/Search.js +5 -5
- package/dist/cjs/v2/Search.js.map +1 -1
- package/dist/cjs/v2/Settings.js +6 -6
- package/dist/cjs/v2/Settings.js.map +1 -1
- package/dist/cjs/v2/Sidebar.js +8 -7
- package/dist/cjs/v2/Sidebar.js.map +1 -1
- package/dist/cjs/v2/StickyRibbonsContainer.js +4 -4
- package/dist/cjs/v2/StickyRibbonsContainer.js.map +1 -1
- package/dist/cjs/v2/SubHeader.js +3 -3
- package/dist/cjs/v2/SubHeader.js.map +1 -1
- package/dist/cjs/v2/TimeFormat.js +15 -0
- package/dist/cjs/v2/TimeFormat.js.map +1 -0
- package/dist/{useKeyboardShortcutsPaneState-dNIbb_PI.js → useKeyboardShortcutsPaneState-BlyFMEtW.js} +2 -2
- package/dist/useKeyboardShortcutsPaneState-BlyFMEtW.js.map +1 -0
- package/dist/v2/AuditLogs.js +8 -8
- package/dist/v2/AuditLogs.js.map +1 -1
- package/dist/v2/BoardView.js +425 -0
- package/dist/v2/BoardView.js.map +1 -0
- package/dist/v2/Breadcrumbs.js +2 -2
- package/dist/v2/Breadcrumbs.js.map +1 -1
- package/dist/v2/CalendarView.js +427 -0
- package/dist/v2/CalendarView.js.map +1 -0
- package/dist/v2/Columns.js +2 -2
- package/dist/v2/ConfigurePageSidebar.js +4 -3
- package/dist/v2/ConfigurePageSidebar.js.map +1 -1
- package/dist/v2/CopyToClipboardButton.js +2 -12
- package/dist/v2/CopyToClipboardButton.js.map +1 -1
- package/dist/v2/DateFormat.js +40 -0
- package/dist/v2/DateFormat.js.map +1 -0
- package/dist/v2/DocumentEditor.js +327 -0
- package/dist/v2/DocumentEditor.js.map +1 -0
- package/dist/v2/EmojiPicker.js +123 -0
- package/dist/v2/EmojiPicker.js.map +1 -0
- package/dist/v2/Engagements.js +281 -0
- package/dist/v2/Engagements.js.map +1 -0
- package/dist/v2/ErrorPage.js +1 -1
- package/dist/v2/ErrorPage.js.map +1 -1
- package/dist/v2/FileUpload.js +641 -0
- package/dist/v2/FileUpload.js.map +1 -0
- package/dist/v2/FinderModal.js +251 -0
- package/dist/v2/FinderModal.js.map +1 -0
- package/dist/v2/FloatingActionMenu.js +11 -9
- package/dist/v2/FloatingActionMenu.js.map +1 -1
- package/dist/v2/Header.js +6 -6
- package/dist/v2/InlineInput.js +290 -0
- package/dist/v2/InlineInput.js.map +1 -0
- package/dist/v2/KeyboardShortcuts.js +3 -3
- package/dist/v2/KeyboardShortcuts.js.map +1 -1
- package/dist/v2/LoginPage.js +1 -1
- package/dist/v2/LoginPage.js.map +1 -1
- package/dist/v2/MenuBar.js +2 -2
- package/dist/v2/MenuBar.js.map +1 -1
- package/dist/v2/MoreDropdown.js +1 -1
- package/dist/v2/MoreDropdown.js.map +1 -1
- package/dist/v2/NavigationHeader.js +326 -0
- package/dist/v2/NavigationHeader.js.map +1 -0
- package/dist/v2/PublishBlock.js +412 -0
- package/dist/v2/PublishBlock.js.map +1 -0
- package/dist/v2/Rename.js +348 -0
- package/dist/v2/Rename.js.map +1 -0
- package/dist/v2/Scrollable.js +35 -0
- package/dist/v2/Scrollable.js.map +1 -0
- package/dist/v2/Search.js +5 -5
- package/dist/v2/Search.js.map +1 -1
- package/dist/v2/Settings.js +6 -6
- package/dist/v2/Settings.js.map +1 -1
- package/dist/v2/Sidebar.js +8 -7
- package/dist/v2/Sidebar.js.map +1 -1
- package/dist/v2/StickyRibbonsContainer.js +4 -4
- package/dist/v2/StickyRibbonsContainer.js.map +1 -1
- package/dist/v2/SubHeader.js +3 -3
- package/dist/v2/SubHeader.js.map +1 -1
- package/dist/v2/TimeFormat.js +13 -0
- package/dist/v2/TimeFormat.js.map +1 -0
- package/package.json +5 -5
- package/src/translations/en.json +4 -2
- package/types/v2/BoardView.d.ts +27 -0
- package/types/v2/CalendarView.d.ts +40 -0
- package/types/v2/DateFormat.d.ts +19 -0
- package/types/v2/DocumentEditor.d.ts +20 -0
- package/types/v2/EmojiPicker.d.ts +14 -0
- package/types/v2/Engagements.d.ts +50 -0
- package/types/v2/FileUpload.d.ts +30 -0
- package/types/v2/FinderModal.d.ts +24 -0
- package/types/v2/InlineInput.d.ts +28 -0
- package/types/v2/NavigationHeader.d.ts +80 -0
- package/types/v2/PublishBlock.d.ts +39 -0
- package/types/v2/Rename.d.ts +33 -0
- package/types/v2/Scrollable.d.ts +15 -0
- package/types/v2/TimeFormat.d.ts +17 -0
- package/dist/Columns-DpeV3Jzz.js.map +0 -1
- package/dist/ConfigureView-B0UvLoJe.js.map +0 -1
- package/dist/cjs/Columns-C2ke8N58.js.map +0 -1
- package/dist/cjs/ConfigureView-Coy1ViRc.js.map +0 -1
- package/dist/cjs/useKeyboardShortcutsPaneState-BG_xVteC.js.map +0 -1
- package/dist/useKeyboardShortcutsPaneState-dNIbb_PI.js.map +0 -1
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import React__default, { memo, forwardRef } from 'react';
|
|
3
|
+
import { isPresent, findIndexBy, noop } from '@bigbinary/neeto-cist';
|
|
4
|
+
import { Avatar, Typography, Tooltip, Button } from '@bigbinary/neeto-atoms';
|
|
5
|
+
import classnames from 'classnames';
|
|
6
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
7
|
+
import { P as PropTypes } from '../index-DAYCJu79.js';
|
|
8
|
+
import DateFormat from './DateFormat.js';
|
|
9
|
+
import MoreDropdown from './MoreDropdown.js';
|
|
10
|
+
import { globalProps } from '@bigbinary/neeto-commons-frontend/v2/initializers';
|
|
11
|
+
import { collectBy, prop, eqProps, pathEq } from 'ramda';
|
|
12
|
+
import { useTranslation } from 'react-i18next';
|
|
13
|
+
import EmojiPicker from './EmojiPicker.js';
|
|
14
|
+
import '../_commonjsHelpers-BFTU3MAI.js';
|
|
15
|
+
import '@bigbinary/neeto-commons-frontend/v2/react-utils/useTimer';
|
|
16
|
+
import '@bigbinary/neeto-commons-frontend/v2/utils/datetime';
|
|
17
|
+
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
18
|
+
import '@bigbinary/neeto-commons-frontend/v2/react-utils';
|
|
19
|
+
import '../createLucideIcon-mNMhCCpf.js';
|
|
20
|
+
import '../ellipsis-DpI9xqUK.js';
|
|
21
|
+
import '@babel/runtime/helpers/slicedToArray';
|
|
22
|
+
import '@bigbinary/neeto-atoms/primitives';
|
|
23
|
+
import 'emoji-mart';
|
|
24
|
+
import '@tanstack/react-query';
|
|
25
|
+
import 'axios';
|
|
26
|
+
|
|
27
|
+
var ActivityIcon = function ActivityIcon(_ref) {
|
|
28
|
+
var icon = _ref.icon,
|
|
29
|
+
unread = _ref.unread;
|
|
30
|
+
return /*#__PURE__*/jsx("div", {
|
|
31
|
+
className: "bg-card relative z-10 mx-0.5 flex-shrink-0 rounded-full",
|
|
32
|
+
children: /*#__PURE__*/jsxs("span", {
|
|
33
|
+
className: classnames("nm-activity-node-icon bg-muted text-muted-foreground relative flex h-7 w-7 items-center justify-center rounded-full p-1 [&>svg]:size-4", {
|
|
34
|
+
"text-primary bg-primary/10": unread
|
|
35
|
+
}),
|
|
36
|
+
children: [icon, unread && /*#__PURE__*/jsx("span", {
|
|
37
|
+
className: "bg-primary absolute -end-0.5 -top-0.5 h-2 w-2 rounded-full"
|
|
38
|
+
})]
|
|
39
|
+
})
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
var Activity = function Activity(_ref) {
|
|
44
|
+
var user = _ref.user,
|
|
45
|
+
icon = _ref.icon,
|
|
46
|
+
_ref$unread = _ref.unread,
|
|
47
|
+
unread = _ref$unread === void 0 ? false : _ref$unread,
|
|
48
|
+
className = _ref.className,
|
|
49
|
+
children = _ref.children,
|
|
50
|
+
userIcon = _ref.userIcon;
|
|
51
|
+
return /*#__PURE__*/jsxs("div", {
|
|
52
|
+
className: classnames("nm-engagements-node relative -mt-4 flex items-center gap-2 px-4 py-4", "before:bg-border before:absolute before:start-[31px] before:top-0 before:h-full before:w-0.5 before:content-['']", className),
|
|
53
|
+
children: [/*#__PURE__*/jsx(ActivityIcon, {
|
|
54
|
+
icon: icon,
|
|
55
|
+
unread: unread
|
|
56
|
+
}), userIcon || /*#__PURE__*/jsx(Avatar, {
|
|
57
|
+
className: "!size-[18px] [&_[data-slot=avatar-fallback]]:text-[10px]",
|
|
58
|
+
size: "sm",
|
|
59
|
+
user: {
|
|
60
|
+
name: user.name,
|
|
61
|
+
imageUrl: user.profileImageUrl
|
|
62
|
+
}
|
|
63
|
+
}), /*#__PURE__*/jsx("div", {
|
|
64
|
+
className: "nm-engagements-node__children",
|
|
65
|
+
children: children
|
|
66
|
+
})]
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
var CommentHeader = function CommentHeader(_ref) {
|
|
71
|
+
var user = _ref.user,
|
|
72
|
+
comment = _ref.comment,
|
|
73
|
+
info = _ref.info,
|
|
74
|
+
actions = _ref.actions;
|
|
75
|
+
var avatar = {
|
|
76
|
+
name: user.name,
|
|
77
|
+
imageUrl: user.profileImageUrl
|
|
78
|
+
};
|
|
79
|
+
return /*#__PURE__*/jsxs("div", {
|
|
80
|
+
className: "bg-muted/40 border-border flex items-center justify-between rounded-t-md border-b py-1 ps-4 pe-1",
|
|
81
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
82
|
+
className: "flex min-w-0 flex-grow flex-wrap items-center gap-2",
|
|
83
|
+
children: [/*#__PURE__*/jsx(Avatar, {
|
|
84
|
+
size: "sm",
|
|
85
|
+
user: avatar
|
|
86
|
+
}), /*#__PURE__*/jsx(Typography, {
|
|
87
|
+
as: "span",
|
|
88
|
+
variant: "body3",
|
|
89
|
+
weight: "semibold",
|
|
90
|
+
children: user.name
|
|
91
|
+
}), /*#__PURE__*/jsx(Typography, {
|
|
92
|
+
as: "span",
|
|
93
|
+
color: "muted",
|
|
94
|
+
variant: "body3",
|
|
95
|
+
children: "\u2022"
|
|
96
|
+
}), info && /*#__PURE__*/jsxs(Fragment, {
|
|
97
|
+
children: [/*#__PURE__*/jsx(Typography, {
|
|
98
|
+
as: "span",
|
|
99
|
+
className: "lowercase",
|
|
100
|
+
color: "muted",
|
|
101
|
+
variant: "body3",
|
|
102
|
+
children: info
|
|
103
|
+
}), /*#__PURE__*/jsx(Typography, {
|
|
104
|
+
as: "span",
|
|
105
|
+
color: "muted",
|
|
106
|
+
variant: "body3",
|
|
107
|
+
children: "\u2022"
|
|
108
|
+
})]
|
|
109
|
+
}), comment.createdAt && /*#__PURE__*/jsx(DateFormat.FromNow, {
|
|
110
|
+
date: comment.createdAt,
|
|
111
|
+
typographyProps: {
|
|
112
|
+
color: "muted",
|
|
113
|
+
variant: "body3"
|
|
114
|
+
}
|
|
115
|
+
})]
|
|
116
|
+
}), isPresent(actions) && /*#__PURE__*/jsx(MoreDropdown, {
|
|
117
|
+
dropdownButtonProps: {
|
|
118
|
+
className: "self-start flex-shrink-0"
|
|
119
|
+
},
|
|
120
|
+
dropdownProps: {
|
|
121
|
+
position: "bottom-start"
|
|
122
|
+
},
|
|
123
|
+
menuItems: actions
|
|
124
|
+
})]
|
|
125
|
+
});
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
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; }
|
|
129
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(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; }
|
|
130
|
+
var findOwnIndex = findIndexBy({
|
|
131
|
+
userId: globalProps.user.id
|
|
132
|
+
});
|
|
133
|
+
var groupReactions = collectBy(prop("unified"));
|
|
134
|
+
var Reactions = function Reactions(_ref) {
|
|
135
|
+
var reactions = _ref.reactions,
|
|
136
|
+
onAdd = _ref.onAdd,
|
|
137
|
+
onRemove = _ref.onRemove;
|
|
138
|
+
var _useTranslation = useTranslation(),
|
|
139
|
+
t = _useTranslation.t;
|
|
140
|
+
var groups = groupReactions(reactions);
|
|
141
|
+
var onSelect = function onSelect(emoji) {
|
|
142
|
+
var group = groups.find(pathEq(emoji.unified, [0, "unified"]));
|
|
143
|
+
if (group && findOwnIndex(group) >= 0) return;
|
|
144
|
+
onAdd(_objectSpread(_objectSpread({}, emoji), {}, {
|
|
145
|
+
emoji: emoji["native"]
|
|
146
|
+
}));
|
|
147
|
+
};
|
|
148
|
+
return /*#__PURE__*/jsxs("div", {
|
|
149
|
+
className: "mt-3 flex flex-wrap items-center gap-1",
|
|
150
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
151
|
+
className: "bg-muted rounded-full",
|
|
152
|
+
children: /*#__PURE__*/jsx(EmojiPicker, {
|
|
153
|
+
onSelect: onSelect
|
|
154
|
+
})
|
|
155
|
+
}), groups.map(function (reactionsGroup) {
|
|
156
|
+
var ownIndex = findOwnIndex(reactionsGroup);
|
|
157
|
+
var selected = ownIndex >= 0;
|
|
158
|
+
var reaction = selected ? reactionsGroup[ownIndex] : reactionsGroup[0];
|
|
159
|
+
var names = reactionsGroup.map(function (_ref2) {
|
|
160
|
+
var reactor = _ref2.reactor;
|
|
161
|
+
return typeof reactor === "string" ? reactor : reactor === null || reactor === void 0 ? void 0 : reactor.name;
|
|
162
|
+
}).filter(Boolean).join(", ");
|
|
163
|
+
return /*#__PURE__*/jsx(Tooltip, {
|
|
164
|
+
content: t("neetoMolecules.engagements.namesReacted", {
|
|
165
|
+
names: names
|
|
166
|
+
}),
|
|
167
|
+
position: "top",
|
|
168
|
+
children: /*#__PURE__*/jsxs(Button, {
|
|
169
|
+
"aria-pressed": selected,
|
|
170
|
+
size: "xs",
|
|
171
|
+
variant: "ghost",
|
|
172
|
+
className: classnames("h-7 rounded-full px-2 text-sm font-normal", {
|
|
173
|
+
"!bg-muted !hover:bg-muted/80": selected,
|
|
174
|
+
"!bg-muted/50": !selected
|
|
175
|
+
}),
|
|
176
|
+
onClick: function onClick() {
|
|
177
|
+
return (selected ? onRemove : onAdd)(reaction);
|
|
178
|
+
},
|
|
179
|
+
children: [/*#__PURE__*/jsx("span", {
|
|
180
|
+
children: reaction.emoji
|
|
181
|
+
}), /*#__PURE__*/jsx("span", {
|
|
182
|
+
children: reactionsGroup.length
|
|
183
|
+
})]
|
|
184
|
+
})
|
|
185
|
+
}, reaction.unified);
|
|
186
|
+
})]
|
|
187
|
+
});
|
|
188
|
+
};
|
|
189
|
+
var Reactions$1 = /*#__PURE__*/memo(Reactions, eqProps("reactions"));
|
|
190
|
+
|
|
191
|
+
var ENGAGEMENT_TYPES = {
|
|
192
|
+
COMMENT: "comment",
|
|
193
|
+
ACTIVITY: "activity"
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
var createCommentElementId = function createCommentElementId(comment) {
|
|
197
|
+
return "nm-engagement-comment--".concat(comment.id);
|
|
198
|
+
};
|
|
199
|
+
var defaultMatchType = function defaultMatchType(engagement) {
|
|
200
|
+
if (engagement.commenter) return ENGAGEMENT_TYPES.COMMENT;else if (engagement.creator) return ENGAGEMENT_TYPES.ACTIVITY;
|
|
201
|
+
return null;
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
var Comment = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
205
|
+
var user = _ref.user,
|
|
206
|
+
comment = _ref.comment,
|
|
207
|
+
reactions = _ref.reactions,
|
|
208
|
+
info = _ref.info,
|
|
209
|
+
actions = _ref.actions,
|
|
210
|
+
className = _ref.className,
|
|
211
|
+
children = _ref.children,
|
|
212
|
+
onAddReaction = _ref.onAddReaction,
|
|
213
|
+
onRemoveReaction = _ref.onRemoveReaction;
|
|
214
|
+
return /*#__PURE__*/jsxs("div", {
|
|
215
|
+
ref: ref,
|
|
216
|
+
id: createCommentElementId(comment),
|
|
217
|
+
className: classnames("nm-comments-node bg-card border-border relative mb-4 w-full rounded-md border", "before:bg-border before:absolute before:start-[30px] before:top-[calc(100%+1px)] before:h-4 before:w-0.5 before:content-['']", className),
|
|
218
|
+
children: [/*#__PURE__*/jsx(CommentHeader, {
|
|
219
|
+
actions: actions,
|
|
220
|
+
comment: comment,
|
|
221
|
+
info: info,
|
|
222
|
+
user: user
|
|
223
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
224
|
+
className: "nm-comments-node__inner p-4",
|
|
225
|
+
children: [children, reactions !== false && /*#__PURE__*/jsx(Reactions$1, {
|
|
226
|
+
reactions: reactions,
|
|
227
|
+
onAdd: onAddReaction,
|
|
228
|
+
onRemove: onRemoveReaction
|
|
229
|
+
})]
|
|
230
|
+
})]
|
|
231
|
+
});
|
|
232
|
+
});
|
|
233
|
+
Comment.displayName = "Comment";
|
|
234
|
+
Comment.propTypes = {
|
|
235
|
+
user: PropTypes.shape({
|
|
236
|
+
name: PropTypes.string.isRequired
|
|
237
|
+
}).isRequired,
|
|
238
|
+
comment: PropTypes.shape({
|
|
239
|
+
id: PropTypes.string.isRequired,
|
|
240
|
+
createdAt: PropTypes.string
|
|
241
|
+
}).isRequired,
|
|
242
|
+
reactions: PropTypes.oneOfType([PropTypes.array, PropTypes.bool]),
|
|
243
|
+
info: PropTypes.string,
|
|
244
|
+
actions: PropTypes.arrayOf(PropTypes.shape({
|
|
245
|
+
isVisible: PropTypes.bool,
|
|
246
|
+
key: PropTypes.string.isRequired,
|
|
247
|
+
label: PropTypes.string.isRequired,
|
|
248
|
+
onClick: PropTypes.func.isRequired
|
|
249
|
+
})),
|
|
250
|
+
className: PropTypes.string,
|
|
251
|
+
onAddReaction: PropTypes.func,
|
|
252
|
+
onRemoveReaction: PropTypes.func
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
var Engagements = function Engagements(_ref) {
|
|
256
|
+
var data = _ref.data,
|
|
257
|
+
_ref$isActivitiesEnab = _ref.isActivitiesEnabled,
|
|
258
|
+
isActivitiesEnabled = _ref$isActivitiesEnab === void 0 ? false : _ref$isActivitiesEnab,
|
|
259
|
+
_ref$matchType = _ref.matchType,
|
|
260
|
+
matchType = _ref$matchType === void 0 ? defaultMatchType : _ref$matchType,
|
|
261
|
+
renderComment = _ref.renderComment,
|
|
262
|
+
renderActivity = _ref.renderActivity;
|
|
263
|
+
var rendererHashmap = _defineProperty(_defineProperty({}, ENGAGEMENT_TYPES.COMMENT, renderComment), ENGAGEMENT_TYPES.ACTIVITY, isActivitiesEnabled ? renderActivity : noop);
|
|
264
|
+
return /*#__PURE__*/jsx(Fragment, {
|
|
265
|
+
children: data.map(function (engagement, index) {
|
|
266
|
+
var type = matchType(engagement);
|
|
267
|
+
var renderer = rendererHashmap[type];
|
|
268
|
+
if (!renderer) return null;
|
|
269
|
+
return /*#__PURE__*/jsx(React__default.Fragment, {
|
|
270
|
+
children: renderer(engagement, index)
|
|
271
|
+
}, engagement.id);
|
|
272
|
+
})
|
|
273
|
+
});
|
|
274
|
+
};
|
|
275
|
+
Engagements.displayName = "Engagements";
|
|
276
|
+
Engagements.Comment = Comment;
|
|
277
|
+
Engagements.Activity = Activity;
|
|
278
|
+
Engagements.TYPES = ENGAGEMENT_TYPES;
|
|
279
|
+
|
|
280
|
+
export { Engagements as default };
|
|
281
|
+
//# sourceMappingURL=Engagements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Engagements.js","sources":["../../src/v2/components/Engagements/Activity/Icon.jsx","../../src/v2/components/Engagements/Activity/index.jsx","../../src/v2/components/Engagements/Comment/Header.jsx","../../src/v2/components/Engagements/Comment/Reactions.jsx","../../src/v2/components/Engagements/constants.js","../../src/v2/components/Engagements/utils.js","../../src/v2/components/Engagements/Comment/index.jsx","../../src/v2/components/Engagements/index.jsx"],"sourcesContent":["import classNames from \"classnames\";\n\nconst ActivityIcon = ({ icon, unread }) => (\n <div className=\"bg-card relative z-10 mx-0.5 flex-shrink-0 rounded-full\">\n <span\n className={classNames(\n \"nm-activity-node-icon bg-muted text-muted-foreground relative flex h-7 w-7 items-center justify-center rounded-full p-1 [&>svg]:size-4\",\n { \"text-primary bg-primary/10\": unread }\n )}\n >\n {icon}\n {unread && (\n <span className=\"bg-primary absolute -end-0.5 -top-0.5 h-2 w-2 rounded-full\" />\n )}\n </span>\n </div>\n);\n\nexport default ActivityIcon;\n","import { Avatar } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport ActivityIcon from \"./Icon\";\n\nconst Activity = ({\n user,\n icon,\n unread = false,\n className,\n children,\n userIcon,\n}) => (\n <div\n className={classNames(\n \"nm-engagements-node relative -mt-4 flex items-center gap-2 px-4 py-4\",\n \"before:bg-border before:absolute before:start-[31px] before:top-0 before:h-full before:w-0.5 before:content-['']\",\n className\n )}\n >\n <ActivityIcon {...{ icon, unread }} />\n {userIcon || (\n <Avatar\n className=\"!size-[18px] [&_[data-slot=avatar-fallback]]:text-[10px]\"\n size=\"sm\"\n user={{ name: user.name, imageUrl: user.profileImageUrl }}\n />\n )}\n <div className=\"nm-engagements-node__children\">{children}</div>\n </div>\n);\n\nActivity.propTypes = {\n user: PropTypes.shape({ name: PropTypes.string.isRequired }).isRequired,\n icon: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\n unread: PropTypes.bool,\n className: PropTypes.string,\n};\n\nexport default Activity;\n","import { Avatar, Typography } from \"@bigbinary/neeto-atoms\";\nimport { isPresent } from \"neetocist\";\n\nimport DateFormat from \"../../DateFormat\";\nimport MoreDropdown from \"../../MoreDropdown\";\n\nconst CommentHeader = ({ user, comment, info, actions }) => {\n const avatar = { name: user.name, imageUrl: user.profileImageUrl };\n\n return (\n <div className=\"bg-muted/40 border-border flex items-center justify-between rounded-t-md border-b py-1 ps-4 pe-1\">\n <div className=\"flex min-w-0 flex-grow flex-wrap items-center gap-2\">\n <Avatar size=\"sm\" user={avatar} />\n <Typography as=\"span\" variant=\"body3\" weight=\"semibold\">\n {user.name}\n </Typography>\n <Typography as=\"span\" color=\"muted\" variant=\"body3\">\n •\n </Typography>\n {info && (\n <>\n <Typography\n as=\"span\"\n className=\"lowercase\"\n color=\"muted\"\n variant=\"body3\"\n >\n {info}\n </Typography>\n <Typography as=\"span\" color=\"muted\" variant=\"body3\">\n •\n </Typography>\n </>\n )}\n {comment.createdAt && (\n <DateFormat.FromNow\n date={comment.createdAt}\n typographyProps={{ color: \"muted\", variant: \"body3\" }}\n />\n )}\n </div>\n {isPresent(actions) && (\n <MoreDropdown\n dropdownButtonProps={{ className: \"self-start flex-shrink-0\" }}\n dropdownProps={{ position: \"bottom-start\" }}\n menuItems={actions}\n />\n )}\n </div>\n );\n};\n\nexport default CommentHeader;\n","import { memo } from \"react\";\n\nimport { Button, Tooltip } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { findIndexBy } from \"neetocist\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { collectBy, eqProps, pathEq, prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport EmojiPicker from \"../../EmojiPicker\";\n\nconst findOwnIndex = findIndexBy({ userId: globalProps.user.id });\nconst groupReactions = collectBy(prop(\"unified\"));\n\nconst Reactions = ({ reactions, onAdd, onRemove }) => {\n const { t } = useTranslation();\n const groups = groupReactions(reactions);\n\n const onSelect = emoji => {\n const group = groups.find(pathEq(emoji.unified, [0, \"unified\"]));\n if (group && findOwnIndex(group) >= 0) return;\n onAdd({ ...emoji, emoji: emoji.native });\n };\n\n return (\n <div className=\"mt-3 flex flex-wrap items-center gap-1\">\n <div className=\"bg-muted rounded-full\">\n <EmojiPicker {...{ onSelect }} />\n </div>\n {groups.map(reactionsGroup => {\n const ownIndex = findOwnIndex(reactionsGroup);\n const selected = ownIndex >= 0;\n const reaction = selected\n ? reactionsGroup[ownIndex]\n : reactionsGroup[0];\n\n const names = reactionsGroup\n .map(({ reactor }) =>\n typeof reactor === \"string\" ? reactor : reactor?.name\n )\n .filter(Boolean)\n .join(\", \");\n\n return (\n <Tooltip\n content={t(\"neetoMolecules.engagements.namesReacted\", { names })}\n key={reaction.unified}\n position=\"top\"\n >\n <Button\n aria-pressed={selected}\n size=\"xs\"\n variant=\"ghost\"\n className={classNames(\n \"h-7 rounded-full px-2 text-sm font-normal\",\n {\n \"!bg-muted !hover:bg-muted/80\": selected,\n \"!bg-muted/50\": !selected,\n }\n )}\n onClick={() => (selected ? onRemove : onAdd)(reaction)}\n >\n <span>{reaction.emoji}</span>\n <span>{reactionsGroup.length}</span>\n </Button>\n </Tooltip>\n );\n })}\n </div>\n );\n};\n\nexport default memo(Reactions, eqProps(\"reactions\"));\n","export const ACTIVITY_TYPES = {\n TIMELINE: \"Timeline\",\n FIELD_VALUE: \"FieldValue\",\n TASK: \"Task\",\n ASSIGNEE: \"Assignee\",\n CHECKLIST: \"Checklist\",\n FIELD: \"Field\",\n PROJECT: \"Project\",\n COMMENT: \"Comment\",\n DOCUMENT: \"Document\",\n CHAT_MESSAGE: \"ChatMessage\",\n MESSAGE: \"Message\",\n SECTION: \"Section\",\n PROJECT_MEMBER: \"ProjectMember\",\n PULL_REQUEST: \"NeetoGithubEngine::PullRequest\",\n};\n\nexport const ENGAGEMENT_TYPES = {\n COMMENT: \"comment\",\n ACTIVITY: \"activity\",\n};\n","import { ENGAGEMENT_TYPES } from \"./constants\";\n\nexport const createCommentElementId = comment =>\n `nm-engagement-comment--${comment.id}`;\n\nexport const defaultMatchType = engagement => {\n if (engagement.commenter) return ENGAGEMENT_TYPES.COMMENT;\n else if (engagement.creator) return ENGAGEMENT_TYPES.ACTIVITY;\n\n return null;\n};\n","import { forwardRef } from \"react\";\n\nimport classNames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport CommentHeader from \"./Header\";\nimport Reactions from \"./Reactions\";\n\nimport { createCommentElementId } from \"../utils\";\n\nconst Comment = forwardRef(\n (\n {\n user,\n comment,\n reactions,\n info,\n actions,\n className,\n children,\n onAddReaction,\n onRemoveReaction,\n },\n ref\n ) => (\n <div\n {...{ ref }}\n id={createCommentElementId(comment)}\n className={classNames(\n \"nm-comments-node bg-card border-border relative mb-4 w-full rounded-md border\",\n \"before:bg-border before:absolute before:start-[30px] before:top-[calc(100%+1px)] before:h-4 before:w-0.5 before:content-['']\",\n className\n )}\n >\n <CommentHeader {...{ actions, comment, info, user }} />\n <div className=\"nm-comments-node__inner p-4\">\n {children}\n {reactions !== false && (\n <Reactions\n {...{ reactions }}\n onAdd={onAddReaction}\n onRemove={onRemoveReaction}\n />\n )}\n </div>\n </div>\n )\n);\n\nComment.displayName = \"Comment\";\nComment.propTypes = {\n user: PropTypes.shape({ name: PropTypes.string.isRequired }).isRequired,\n comment: PropTypes.shape({\n id: PropTypes.string.isRequired,\n createdAt: PropTypes.string,\n }).isRequired,\n reactions: PropTypes.oneOfType([PropTypes.array, PropTypes.bool]),\n info: PropTypes.string,\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n isVisible: PropTypes.bool,\n key: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n })\n ),\n className: PropTypes.string,\n onAddReaction: PropTypes.func,\n onRemoveReaction: PropTypes.func,\n};\n\nexport default Comment;\n","import React from \"react\";\n\nimport { noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\n\nimport Activity from \"./Activity\";\nimport Comment from \"./Comment\";\nimport { ENGAGEMENT_TYPES } from \"./constants\";\nimport { defaultMatchType } from \"./utils\";\n\nconst Engagements = ({\n data,\n isActivitiesEnabled = false,\n matchType = defaultMatchType,\n renderComment,\n renderActivity,\n}) => {\n const rendererHashmap = {\n [ENGAGEMENT_TYPES.COMMENT]: renderComment,\n [ENGAGEMENT_TYPES.ACTIVITY]: isActivitiesEnabled ? renderActivity : noop,\n };\n\n return (\n <>\n {data.map((engagement, index) => {\n const type = matchType(engagement);\n const renderer = rendererHashmap[type];\n if (!renderer) return null;\n\n return (\n <React.Fragment key={engagement.id}>\n {renderer(engagement, index)}\n </React.Fragment>\n );\n })}\n </>\n );\n};\n\nEngagements.displayName = \"Engagements\";\nEngagements.Comment = Comment;\nEngagements.Activity = Activity;\nEngagements.TYPES = ENGAGEMENT_TYPES;\n\nEngagements.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({ id: PropTypes.string.isRequired }))\n .isRequired,\n isActivitiesEnabled: PropTypes.bool,\n matchType: PropTypes.func,\n renderComment: PropTypes.func.isRequired,\n renderActivity: PropTypes.func.isRequired,\n};\n\nexport default Engagements;\n"],"names":["ActivityIcon","_ref","icon","unread","_jsx","className","children","_jsxs","classNames","Activity","user","_ref$unread","userIcon","Avatar","size","name","imageUrl","profileImageUrl","CommentHeader","comment","info","actions","avatar","Typography","as","variant","weight","color","_Fragment","createdAt","DateFormat","FromNow","date","typographyProps","isPresent","MoreDropdown","dropdownButtonProps","dropdownProps","position","menuItems","findOwnIndex","findIndexBy","userId","globalProps","id","groupReactions","collectBy","prop","Reactions","reactions","onAdd","onRemove","_useTranslation","useTranslation","t","groups","onSelect","emoji","group","find","pathEq","unified","_objectSpread","EmojiPicker","map","reactionsGroup","ownIndex","selected","reaction","names","_ref2","reactor","filter","Boolean","join","Tooltip","content","Button","onClick","length","memo","eqProps","ENGAGEMENT_TYPES","COMMENT","ACTIVITY","createCommentElementId","concat","defaultMatchType","engagement","commenter","creator","Comment","forwardRef","ref","onAddReaction","onRemoveReaction","displayName","propTypes","PropTypes","shape","string","isRequired","oneOfType","array","bool","arrayOf","isVisible","key","label","func","Engagements","data","_ref$isActivitiesEnab","isActivitiesEnabled","_ref$matchType","matchType","renderComment","renderActivity","rendererHashmap","_defineProperty","noop","index","type","renderer","React","Fragment","TYPES"],"mappings":"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"}
|
package/dist/v2/ErrorPage.js
CHANGED
|
@@ -3,7 +3,7 @@ import { useShallow } from 'zustand/shallow';
|
|
|
3
3
|
import { useEffect } from 'react';
|
|
4
4
|
import { Typography, Button } from '@bigbinary/neeto-atoms';
|
|
5
5
|
import { S as SvgInternalServerError, a as SvgUnauthorized, b as SvgPageNotFound, p as purify } from '../unauthorized-DLPyUaeK.js';
|
|
6
|
-
import { useErrorDisplayStore } from '@bigbinary/neeto-commons-frontend/react-utils/useDisplayErrorPage';
|
|
6
|
+
import { useErrorDisplayStore } from '@bigbinary/neeto-commons-frontend/v2/react-utils/useDisplayErrorPage';
|
|
7
7
|
import { Helmet } from 'react-helmet';
|
|
8
8
|
import { useTranslation, Trans } from 'react-i18next';
|
|
9
9
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
package/dist/v2/ErrorPage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorPage.js","sources":["../../src/v2/components/ErrorPage/constants.js","../../src/v2/components/ErrorPage/index.jsx"],"sourcesContent":["import InternalServerErrorImage from \"assets/images/internal-server-error\";\nimport PageNotFoundImage from \"assets/images/page-not-found\";\nimport UnauthorizedImage from \"assets/images/unauthorized\";\n\nexport const ERRORS = {\n 404: {\n Image: PageNotFoundImage,\n errorKey: \"neetoMolecules.errorPage.cantBeFound\",\n titleKey: \"neetoMolecules.errorPage.title.cantBeFound\",\n },\n 403: {\n Image: UnauthorizedImage,\n errorKey: \"neetoMolecules.errorPage.unauthorized\",\n titleKey: \"neetoMolecules.errorPage.title.unauthorized\",\n },\n 500: {\n Image: InternalServerErrorImage,\n errorKey: \"neetoMolecules.errorPage.internalServerError\",\n titleKey: \"neetoMolecules.errorPage.title.internalServerError\",\n },\n};\n","import { useEffect } from \"react\";\n\nimport { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport DOMPurify from \"dompurify\";\nimport { useErrorDisplayStore } from \"neetocommons/react-utils/useDisplayErrorPage\";\nimport PropTypes from \"prop-types\";\nimport { Helmet } from \"react-helmet\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { ERRORS } from \"./constants\";\n\nconst sanitize = DOMPurify.sanitize;\n\nconst ErrorPage = ({\n homeUrl = \"/\",\n status,\n backToHomeButtonProps,\n children,\n showNeetoChatWidget = true,\n description,\n title,\n hideBackToHomeButton = false,\n}) => {\n const { t } = useTranslation();\n const { statusCode: storeStatusCode, showErrorPage } =\n useErrorDisplayStore.pick();\n\n status = status || storeStatusCode;\n const { Image, errorKey, titleKey } = ERRORS[status] || ERRORS[404];\n\n useEffect(() => {\n const pageLoader = document.getElementById(\"neeto-page-loader\");\n if (pageLoader) pageLoader.remove();\n\n const onBackButtonPress = () => {\n if (!showErrorPage) return;\n useErrorDisplayStore.setState({ showErrorPage: false });\n };\n\n window.addEventListener(\"popstate\", onBackButtonPress);\n\n return () => {\n window.removeEventListener(\"popstate\", onBackButtonPress);\n };\n }, []);\n\n const openChatWidget = () => {\n window.NeetoChat?.contextualHelp?.maximizeWidget();\n window.NeetoChat?.contextualHelp?.openWidget();\n };\n\n return (\n <div\n className=\"@container/error-page flex min-h-dvh w-full flex-col items-center justify-center\"\n data-testid=\"error-page-container\"\n >\n <div className=\"flex w-[768px] max-w-full flex-col gap-8 p-4 @[768px]/error-page:flex-row @[768px]/error-page:gap-12 @[768px]/error-page:p-6\">\n <Image\n className=\"dark:[&_path]:fill-foreground w-full max-w-[180px] shrink-0 @[768px]/error-page:max-w-[240px]\"\n data-testid=\"error-image\"\n />\n <div className=\"flex flex-col justify-center md:min-w-0 md:flex-grow\">\n <Helmet>\n <title>{t(titleKey)}</title>\n </Helmet>\n <Typography\n className=\"mb-4\"\n data-testid=\"title\"\n variant=\"h3\"\n weight=\"semibold\"\n >\n {title || <Trans i18nKey={errorKey} />}\n </Typography>\n {!!description && (\n <Typography\n className=\"mb-4\"\n dangerouslySetInnerHTML={{ __html: sanitize(description) }}\n data-testid=\"description\"\n variant=\"body1\"\n />\n )}\n {showNeetoChatWidget && (\n <Typography className=\"mb-6\" data-testid=\"title\" variant=\"body1\">\n <Trans\n i18nKey=\"neetoMolecules.errorPage.contactUs\"\n components={{\n button: (\n <Button\n className=\"h-auto p-0 text-[inherit]\"\n variant=\"link\"\n onClick={openChatWidget}\n />\n ),\n }}\n />\n </Typography>\n )}\n <div className=\"flex flex-col items-start gap-3 [&_a]:no-underline\">\n {!hideBackToHomeButton && (\n <Button\n asChild\n size=\"lg\"\n variant=\"default\"\n {...backToHomeButtonProps}\n >\n <a href={homeUrl}>{t(\"neetoMolecules.errorPage.backToHome\")}</a>\n </Button>\n )}\n {children}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nErrorPage.propTypes = {\n /**\n * The URL to which the user will be taken to when user clicks on back to home button.\n */\n homeUrl: PropTypes.string,\n /**\n * The status code of the error.\n */\n status: PropTypes.oneOf([403, 404, 500]),\n /**\n * Decides whether 'contact us' link should be displayed or not.\n */\n showNeetoChatWidget: PropTypes.bool,\n /**\n * Description about the error.\n */\n description: PropTypes.string,\n /**\n * Decides whether 'back to home' button should be displayed or not.\n */\n hideBackToHomeButton: PropTypes.bool,\n /**\n * The title of the error page.\n */\n title: PropTypes.string,\n};\n\nexport default ErrorPage;\n"],"names":["ERRORS","Image","PageNotFoundImage","errorKey","titleKey","UnauthorizedImage","InternalServerErrorImage","sanitize","DOMPurify","ErrorPage","_ref","_ref$homeUrl","homeUrl","status","backToHomeButtonProps","children","_ref$showNeetoChatWid","showNeetoChatWidget","description","title","_ref$hideBackToHomeBu","hideBackToHomeButton","_useTranslation","useTranslation","t","_useErrorDisplayStore","useErrorDisplayStore","useShallow","store","statusCode","showErrorPage","storeStatusCode","_ref2","useEffect","pageLoader","document","getElementById","remove","onBackButtonPress","setState","window","addEventListener","removeEventListener","openChatWidget","_window$NeetoChat","_window$NeetoChat2","NeetoChat","contextualHelp","maximizeWidget","openWidget","_jsx","className","_jsxs","Helmet","Typography","variant","weight","Trans","i18nKey","dangerouslySetInnerHTML","__html","components","button","Button","onClick","_objectSpread","asChild","size","href"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ErrorPage.js","sources":["../../src/v2/components/ErrorPage/constants.js","../../src/v2/components/ErrorPage/index.jsx"],"sourcesContent":["import InternalServerErrorImage from \"assets/images/internal-server-error\";\nimport PageNotFoundImage from \"assets/images/page-not-found\";\nimport UnauthorizedImage from \"assets/images/unauthorized\";\n\nexport const ERRORS = {\n 404: {\n Image: PageNotFoundImage,\n errorKey: \"neetoMolecules.errorPage.cantBeFound\",\n titleKey: \"neetoMolecules.errorPage.title.cantBeFound\",\n },\n 403: {\n Image: UnauthorizedImage,\n errorKey: \"neetoMolecules.errorPage.unauthorized\",\n titleKey: \"neetoMolecules.errorPage.title.unauthorized\",\n },\n 500: {\n Image: InternalServerErrorImage,\n errorKey: \"neetoMolecules.errorPage.internalServerError\",\n titleKey: \"neetoMolecules.errorPage.title.internalServerError\",\n },\n};\n","import { useEffect } from \"react\";\n\nimport { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport DOMPurify from \"dompurify\";\nimport { useErrorDisplayStore } from \"neetocommons/v2/react-utils/useDisplayErrorPage\";\nimport PropTypes from \"prop-types\";\nimport { Helmet } from \"react-helmet\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { ERRORS } from \"./constants\";\n\nconst sanitize = DOMPurify.sanitize;\n\nconst ErrorPage = ({\n homeUrl = \"/\",\n status,\n backToHomeButtonProps,\n children,\n showNeetoChatWidget = true,\n description,\n title,\n hideBackToHomeButton = false,\n}) => {\n const { t } = useTranslation();\n const { statusCode: storeStatusCode, showErrorPage } =\n useErrorDisplayStore.pick();\n\n status = status || storeStatusCode;\n const { Image, errorKey, titleKey } = ERRORS[status] || ERRORS[404];\n\n useEffect(() => {\n const pageLoader = document.getElementById(\"neeto-page-loader\");\n if (pageLoader) pageLoader.remove();\n\n const onBackButtonPress = () => {\n if (!showErrorPage) return;\n useErrorDisplayStore.setState({ showErrorPage: false });\n };\n\n window.addEventListener(\"popstate\", onBackButtonPress);\n\n return () => {\n window.removeEventListener(\"popstate\", onBackButtonPress);\n };\n }, []);\n\n const openChatWidget = () => {\n window.NeetoChat?.contextualHelp?.maximizeWidget();\n window.NeetoChat?.contextualHelp?.openWidget();\n };\n\n return (\n <div\n className=\"@container/error-page flex min-h-dvh w-full flex-col items-center justify-center\"\n data-testid=\"error-page-container\"\n >\n <div className=\"flex w-[768px] max-w-full flex-col gap-8 p-4 @[768px]/error-page:flex-row @[768px]/error-page:gap-12 @[768px]/error-page:p-6\">\n <Image\n className=\"dark:[&_path]:fill-foreground w-full max-w-[180px] shrink-0 @[768px]/error-page:max-w-[240px]\"\n data-testid=\"error-image\"\n />\n <div className=\"flex flex-col justify-center md:min-w-0 md:flex-grow\">\n <Helmet>\n <title>{t(titleKey)}</title>\n </Helmet>\n <Typography\n className=\"mb-4\"\n data-testid=\"title\"\n variant=\"h3\"\n weight=\"semibold\"\n >\n {title || <Trans i18nKey={errorKey} />}\n </Typography>\n {!!description && (\n <Typography\n className=\"mb-4\"\n dangerouslySetInnerHTML={{ __html: sanitize(description) }}\n data-testid=\"description\"\n variant=\"body1\"\n />\n )}\n {showNeetoChatWidget && (\n <Typography className=\"mb-6\" data-testid=\"title\" variant=\"body1\">\n <Trans\n i18nKey=\"neetoMolecules.errorPage.contactUs\"\n components={{\n button: (\n <Button\n className=\"h-auto p-0 text-[inherit]\"\n variant=\"link\"\n onClick={openChatWidget}\n />\n ),\n }}\n />\n </Typography>\n )}\n <div className=\"flex flex-col items-start gap-3 [&_a]:no-underline\">\n {!hideBackToHomeButton && (\n <Button\n asChild\n size=\"lg\"\n variant=\"default\"\n {...backToHomeButtonProps}\n >\n <a href={homeUrl}>{t(\"neetoMolecules.errorPage.backToHome\")}</a>\n </Button>\n )}\n {children}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nErrorPage.propTypes = {\n /**\n * The URL to which the user will be taken to when user clicks on back to home button.\n */\n homeUrl: PropTypes.string,\n /**\n * The status code of the error.\n */\n status: PropTypes.oneOf([403, 404, 500]),\n /**\n * Decides whether 'contact us' link should be displayed or not.\n */\n showNeetoChatWidget: PropTypes.bool,\n /**\n * Description about the error.\n */\n description: PropTypes.string,\n /**\n * Decides whether 'back to home' button should be displayed or not.\n */\n hideBackToHomeButton: PropTypes.bool,\n /**\n * The title of the error page.\n */\n title: PropTypes.string,\n};\n\nexport default ErrorPage;\n"],"names":["ERRORS","Image","PageNotFoundImage","errorKey","titleKey","UnauthorizedImage","InternalServerErrorImage","sanitize","DOMPurify","ErrorPage","_ref","_ref$homeUrl","homeUrl","status","backToHomeButtonProps","children","_ref$showNeetoChatWid","showNeetoChatWidget","description","title","_ref$hideBackToHomeBu","hideBackToHomeButton","_useTranslation","useTranslation","t","_useErrorDisplayStore","useErrorDisplayStore","useShallow","store","statusCode","showErrorPage","storeStatusCode","_ref2","useEffect","pageLoader","document","getElementById","remove","onBackButtonPress","setState","window","addEventListener","removeEventListener","openChatWidget","_window$NeetoChat","_window$NeetoChat2","NeetoChat","contextualHelp","maximizeWidget","openWidget","_jsx","className","_jsxs","Helmet","Typography","variant","weight","Trans","i18nKey","dangerouslySetInnerHTML","__html","components","button","Button","onClick","_objectSpread","asChild","size","href"],"mappings":"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"}
|