@paro.io/expert-shared-components 1.13.6 → 1.13.7
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/lib/components/Escalations/AccountSuspensionBanner.js +2 -9
- package/lib/components/Escalations/AccountSuspensionModal.js +1 -1
- package/lib/components/Escalations/EscalationChat.js +1 -1
- package/lib/components/Escalations/EscalationSubmitForm.js +1 -1
- package/lib/components/Escalations/EscalationTabsContent.js +3 -1
- package/lib/components/Escalations/Escalations.js +8 -8
- package/lib/components/Escalations/MarkResolvedModal.js +1 -1
- package/lib/components/Escalations/ViewResponseModal.js +3 -1
- package/package.json +1 -1
|
@@ -13,12 +13,7 @@ const AccountSuspensionBanner = ({ setShowSuspensionModal, suspended = false })
|
|
|
13
13
|
react_1.default.createElement(base_icons_1.IconExclamation, { className: "h-6 w-6 text-white" })),
|
|
14
14
|
react_1.default.createElement("div", { className: "flex-1" },
|
|
15
15
|
react_1.default.createElement("h3", { className: "text-lg font-bold text-white" }, "\uD83D\uDEAB Account Suspended"),
|
|
16
|
-
react_1.default.createElement("p", { className: "text-red-100 text-sm mt-1" }, "Your account has been suspended due to an escalation. You must complete comprehensive training to regain access to new opportunities.")
|
|
17
|
-
react_1.default.createElement("div", { className: "mt-3 bg-white bg-opacity-10 rounded p-3" },
|
|
18
|
-
react_1.default.createElement("div", { className: "flex items-center justify-between text-sm" },
|
|
19
|
-
react_1.default.createElement("div", null,
|
|
20
|
-
react_1.default.createElement("span", { className: "text-red-100" }, "Suspension: "),
|
|
21
|
-
react_1.default.createElement("span", { className: "text-white font-medium" }, "30 days (Medium Severity)"))))))
|
|
16
|
+
react_1.default.createElement("p", { className: "text-red-100 text-sm mt-1" }, "Your account has been suspended due to an escalation. You must complete comprehensive training to regain access to new opportunities.")))
|
|
22
17
|
:
|
|
23
18
|
react_1.default.createElement("div", { className: "flex items-center justify-between" },
|
|
24
19
|
react_1.default.createElement("div", { className: "flex items-center" },
|
|
@@ -26,9 +21,7 @@ const AccountSuspensionBanner = ({ setShowSuspensionModal, suspended = false })
|
|
|
26
21
|
react_1.default.createElement(base_icons_1.IconExclamation, { className: "h-6 w-6 text-white" })),
|
|
27
22
|
react_1.default.createElement("div", null,
|
|
28
23
|
react_1.default.createElement("h3", { className: "text-lg font-bold text-white" }, "Account Suspension Risk"),
|
|
29
|
-
react_1.default.createElement("p", { className: "text-red-100 text-sm mt-1" }, "Unresolved escalations can lead to automatic suspension. Response times matter for client satisfaction."),
|
|
30
|
-
react_1.default.createElement("div", { className: "flex items-center mt-2 text-red-100 text-xs" },
|
|
31
|
-
react_1.default.createElement("span", null, "3 warnings: Medium=30d \u2022 2 warnings: High=60d \u2022 1 offense: Critical=Permanent")))),
|
|
24
|
+
react_1.default.createElement("p", { className: "text-red-100 text-sm mt-1" }, "Unresolved escalations can lead to automatic suspension. Response times matter for client satisfaction."))),
|
|
32
25
|
react_1.default.createElement(base_ui_1.Button, { label: "view details", onClick: () => setShowSuspensionModal(true), iconLeft: react_1.default.createElement(base_icons_1.IconInfoCircle, { size: "sm" }), color: "danger", className: "bg-white hover:bg-danger text-danger-dark hover:text-white" }))));
|
|
33
26
|
};
|
|
34
27
|
exports.default = AccountSuspensionBanner;
|
|
@@ -20,7 +20,7 @@ const AccountSuspensionModal = ({ showSuspensionModal, onClose }) => {
|
|
|
20
20
|
react_1.default.createElement(base_icons_1.IconBriefcase, { className: "h-5 w-5 text-red-500 mt-0.5 mr-2 flex-shrink-0" }),
|
|
21
21
|
react_1.default.createElement("div", null,
|
|
22
22
|
react_1.default.createElement("p", { className: "font-medium text-red-800" }, "Critical Information"),
|
|
23
|
-
react_1.default.createElement("p", { className: "text-sm text-red-700 mt-1" }, "
|
|
23
|
+
react_1.default.createElement("p", { className: "text-sm text-red-700 mt-1" }, "Engagment support issues require timely attention to maintain client relationships and project success. Multiple unresolved issues may result in account warnings and potential suspension."))))),
|
|
24
24
|
react_1.default.createElement("div", { className: "space-y-6" },
|
|
25
25
|
react_1.default.createElement("div", { className: "relative" },
|
|
26
26
|
react_1.default.createElement("div", { className: "absolute left-4 top-8 bottom-0 w-0.5 bg-gray-200" }),
|
|
@@ -117,7 +117,7 @@ const EscalationChat = ({ activeChatIssue, showEscalationChat, onClose, user, cr
|
|
|
117
117
|
react_1.default.createElement("div", { className: "flex flex-col items-start" },
|
|
118
118
|
react_1.default.createElement("div", { className: "flex flex-row items-center" },
|
|
119
119
|
react_1.default.createElement("h1", { className: "text-md font-bold mr-2" },
|
|
120
|
-
"
|
|
120
|
+
"Engagement Support #",
|
|
121
121
|
activeChatIssue.escalationNumber),
|
|
122
122
|
react_1.default.createElement(EscalationIssueCard_1.CustomTag, { label: activeChatIssue.status === "InProgress" ? "In Progress" : activeChatIssue.status, customColor: isExpert ? 'bg-neutral border-neutral' : 'bg-[#B0B5D3] border-[#181027]' })),
|
|
123
123
|
react_1.default.createElement("p", { className: "text-xs" },
|
|
@@ -193,7 +193,7 @@ const EscalationSubmitForm = ({ goBack, goHome, expertsOrClients, projects, docu
|
|
|
193
193
|
input: formData
|
|
194
194
|
}
|
|
195
195
|
});
|
|
196
|
-
(0, utils_1.showToast)("success", "Issue created successfully
|
|
196
|
+
(0, utils_1.showToast)("success", "Issue created successfully. You can find it under the `In Progress` section");
|
|
197
197
|
}
|
|
198
198
|
catch (error) {
|
|
199
199
|
console.error("Failed to create an issue!", error);
|
|
@@ -76,7 +76,9 @@ const EscalationTabsContent = ({ activeTab, openEscalationChat, setSelectedIssue
|
|
|
76
76
|
react_1.default.createElement("span", { className: "mx-2" }, "\u2022"),
|
|
77
77
|
react_1.default.createElement("span", { className: "text-xs text-gray-500" },
|
|
78
78
|
"Resolved By ",
|
|
79
|
-
issue.statusChangedByUser.firstName + " " + issue.statusChangedByUser.lastName
|
|
79
|
+
issue.statusChangedByUser.firstName + " " + issue.statusChangedByUser.lastName,
|
|
80
|
+
" ",
|
|
81
|
+
issue.statusChangedByUser.userTypeId === 2 && '(Paro)')))),
|
|
80
82
|
issue.status === 'Resolved' && (0, dayjs_1.default)().diff((0, dayjs_1.default)(issue.updatedAt), 'day') <= 30 &&
|
|
81
83
|
react_1.default.createElement(base_ui_1.Button, { onClick: () => openEscalationChat(issue.escalationNumber), label: "Chat", color: "primary" }))));
|
|
82
84
|
}))
|
|
@@ -88,7 +88,7 @@ const Escalations = ({ expertsOrClients, projects, isExpert = false, escalations
|
|
|
88
88
|
react_1.default.createElement("div", { className: isExpert ? "p-6" : "mx-auto p-6 border-solid border-t-2" },
|
|
89
89
|
activeSection === 'support' && selectedIssueId === null && react_1.default.createElement("div", null,
|
|
90
90
|
react_1.default.createElement("div", { className: "flex justify-between items-center mb-1 mt-2" },
|
|
91
|
-
react_1.default.createElement("h2", { className: "text-xl font-bold" }, "
|
|
91
|
+
react_1.default.createElement("h2", { className: "text-xl font-bold" }, "Engagement Management"),
|
|
92
92
|
activeIssues.length > 0 ? react_1.default.createElement("div", { className: "flex items-center space-x-2" },
|
|
93
93
|
react_1.default.createElement("div", { className: `border box-border text-center px-4 pb-0.5 pt-1 text-sm inline-block break-words text-[#A73A43] rounded-full bg-[#F9BABF] border-[#F9BABF] font-medium` },
|
|
94
94
|
activeIssues.length,
|
|
@@ -112,7 +112,7 @@ const Escalations = ({ expertsOrClients, projects, isExpert = false, escalations
|
|
|
112
112
|
react_1.default.createElement("span", null,
|
|
113
113
|
react_1.default.createElement("strong", null, "Step 2:"),
|
|
114
114
|
" ",
|
|
115
|
-
`${isExpert ? 'Client' : 'Expert
|
|
115
|
+
`${isExpert ? 'Client response provided' : 'Expert response provided'}`)),
|
|
116
116
|
react_1.default.createElement("div", { className: "flex items-center" },
|
|
117
117
|
react_1.default.createElement("div", { className: "bg-blue-500 w-2 h-2 rounded-full mr-2" }),
|
|
118
118
|
react_1.default.createElement("span", null,
|
|
@@ -121,22 +121,22 @@ const Escalations = ({ expertsOrClients, projects, isExpert = false, escalations
|
|
|
121
121
|
react_1.default.createElement("div", { className: "mt-3 text-xs text-gray-600 bg-white p-2 rounded border" },
|
|
122
122
|
react_1.default.createElement("strong", null, "Chat integration:"),
|
|
123
123
|
" ",
|
|
124
|
-
`All
|
|
124
|
+
`All issues include asynchronous messaging with your ${isExpert ? 'client' : 'expert'} and the support team for transparent communication`)),
|
|
125
125
|
react_1.default.createElement("div", null,
|
|
126
|
-
react_1.default.createElement("h4", { className: "font-medium text-gray-900 mb-2" }, "Priority Levels
|
|
126
|
+
react_1.default.createElement("h4", { className: "font-medium text-gray-900 mb-2" }, "Priority Levels for Issues"),
|
|
127
127
|
react_1.default.createElement("div", { className: "space-y-2 text-sm" },
|
|
128
128
|
react_1.default.createElement("div", { className: "flex items-center gap-x-2" },
|
|
129
129
|
react_1.default.createElement(EscalationIssueCard_1.CustomTag, { label: "Critical" }),
|
|
130
|
-
react_1.default.createElement("span", null, "All
|
|
130
|
+
react_1.default.createElement("span", null, "All deliverables are currently blocked; the project cannot move forward.")),
|
|
131
131
|
react_1.default.createElement("div", { className: "flex items-center gap-x-2" },
|
|
132
132
|
react_1.default.createElement(EscalationIssueCard_1.CustomTag, { label: "High" }),
|
|
133
|
-
react_1.default.createElement("span", null, "
|
|
133
|
+
react_1.default.createElement("span", null, "Key deliverables are blocked, preventing meaningful progress.")),
|
|
134
134
|
react_1.default.createElement("div", { className: "flex items-center gap-x-2" },
|
|
135
135
|
react_1.default.createElement(EscalationIssueCard_1.CustomTag, { label: "Medium" }),
|
|
136
|
-
react_1.default.createElement("span", null, "
|
|
136
|
+
react_1.default.createElement("span", null, "Deliverables are still in progress, but timelines are at risk.")),
|
|
137
137
|
react_1.default.createElement("div", { className: "flex items-center gap-x-2" },
|
|
138
138
|
react_1.default.createElement(EscalationIssueCard_1.CustomTag, { label: "Low" }),
|
|
139
|
-
react_1.default.createElement("span", null, "Minor
|
|
139
|
+
react_1.default.createElement("span", null, "Minor issue or inconvenience that does not affect overall project flow.")))))),
|
|
140
140
|
isExpert &&
|
|
141
141
|
react_1.default.createElement("div", { className: "rounded-lg p-2 mb-4 shadow-lg" },
|
|
142
142
|
react_1.default.createElement("div", { className: "flex items-center justify-between" },
|
|
@@ -53,7 +53,7 @@ const MarkResolvedModal = ({ escalationId, expertName, open, onClose, updateProj
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
|
-
(0, utils_1.showToast)("success", "Issue marked as resolved
|
|
56
|
+
(0, utils_1.showToast)("success", "Issue marked as resolved. You can now find it in the `Resolved` section");
|
|
57
57
|
}
|
|
58
58
|
catch (error) {
|
|
59
59
|
console.error("Failed to update escalation!", error);
|
|
@@ -11,7 +11,9 @@ const EscalationIssueCard_1 = require("./EscalationIssueCard");
|
|
|
11
11
|
const ViewResponseModal = ({ selectedIssue, open, onClose, isExpert }) => {
|
|
12
12
|
const docs = [selectedIssue.expertSupportingDocuments, selectedIssue.clientSupportingDocuments, selectedIssue.internalSupportingDocuments];
|
|
13
13
|
const processedDocs = (0, utils_1.processDocs)(docs);
|
|
14
|
-
return (react_1.default.createElement(core_1.Dialog, { open: open, onClose: onClose, maxWidth: '
|
|
14
|
+
return (react_1.default.createElement(core_1.Dialog, { open: open, onClose: onClose, maxWidth: 'md', PaperProps: {
|
|
15
|
+
style: { minWidth: '40%' }
|
|
16
|
+
} },
|
|
15
17
|
react_1.default.createElement(core_1.DialogTitle, null,
|
|
16
18
|
react_1.default.createElement("div", { className: "text-black mb-1 p-2 pl-4 absolute top-0 left-0 w-full flex flex-row justify-between items-center z-50" },
|
|
17
19
|
react_1.default.createElement("div", { className: "flex flex-col items-start" },
|