@flamingo-stack/openframe-frontend-core 0.0.312 → 0.0.313-snapshot.20260623203621
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/{chunk-7KKIACLD.cjs → chunk-2LFQJYLQ.cjs} +7 -7
- package/dist/{chunk-7KKIACLD.cjs.map → chunk-2LFQJYLQ.cjs.map} +1 -1
- package/dist/{chunk-UFJVTOGS.cjs → chunk-46UZAYUT.cjs} +29 -29
- package/dist/{chunk-UFJVTOGS.cjs.map → chunk-46UZAYUT.cjs.map} +1 -1
- package/dist/{chunk-G56GYN7Z.cjs → chunk-5ATH263N.cjs} +4 -1
- package/dist/chunk-5ATH263N.cjs.map +1 -0
- package/dist/{chunk-52MEECZB.cjs → chunk-AD7TII2A.cjs} +5 -5
- package/dist/{chunk-52MEECZB.cjs.map → chunk-AD7TII2A.cjs.map} +1 -1
- package/dist/{chunk-AHVG5CFA.cjs → chunk-BHOGI57O.cjs} +38 -38
- package/dist/{chunk-AHVG5CFA.cjs.map → chunk-BHOGI57O.cjs.map} +1 -1
- package/dist/{chunk-CGR2DPPQ.js → chunk-BJ6JXN5Z.js} +5 -5
- package/dist/{chunk-7G7QJNLY.cjs → chunk-DD35H7HA.cjs} +40 -40
- package/dist/{chunk-7G7QJNLY.cjs.map → chunk-DD35H7HA.cjs.map} +1 -1
- package/dist/{chunk-F45P357Q.js → chunk-E2LC43T3.js} +2 -2
- package/dist/{chunk-JQ2EYXWR.js → chunk-E4CQ4RUG.js} +4 -1
- package/dist/chunk-E4CQ4RUG.js.map +1 -0
- package/dist/{chunk-NQDC366J.cjs → chunk-EC4DGRN6.cjs} +88 -63
- package/dist/chunk-EC4DGRN6.cjs.map +1 -0
- package/dist/{chunk-GRBFBBSX.js → chunk-JWX6NIQ4.js} +2 -2
- package/dist/{chunk-PH2RLC4E.js → chunk-L7BROXZ7.js} +2 -2
- package/dist/{chunk-MI6TET5N.js → chunk-NH2RY6VM.js} +38 -13
- package/dist/{chunk-MI6TET5N.js.map → chunk-NH2RY6VM.js.map} +1 -1
- package/dist/{chunk-GZPOUZAY.js → chunk-OD3BEWDQ.js} +3 -3
- package/dist/{chunk-JQLC2FVM.js → chunk-TRSDXD23.js} +2 -2
- package/dist/{chunk-64JGK22Q.cjs → chunk-UNKIRZVY.cjs} +19 -19
- package/dist/{chunk-64JGK22Q.cjs.map → chunk-UNKIRZVY.cjs.map} +1 -1
- package/dist/{chunk-DJBMLHN7.js → chunk-UO27TVAO.js} +3 -3
- package/dist/{chunk-SPFV5TFS.cjs → chunk-VCJOLKED.cjs} +12 -12
- package/dist/{chunk-SPFV5TFS.cjs.map → chunk-VCJOLKED.cjs.map} +1 -1
- package/dist/{chunk-6GKJXZZM.cjs → chunk-WJCOWYAP.cjs} +14 -14
- package/dist/{chunk-6GKJXZZM.cjs.map → chunk-WJCOWYAP.cjs.map} +1 -1
- package/dist/{chunk-BX4MDVBL.js → chunk-XKVSR3IV.js} +4 -4
- package/dist/{chunk-2ZHDP22R.cjs → chunk-ZPK5HW7B.cjs} +3 -3
- package/dist/{chunk-2ZHDP22R.cjs.map → chunk-ZPK5HW7B.cjs.map} +1 -1
- package/dist/{chunk-IHCOTCIG.js → chunk-ZW3NHMG7.js} +3 -3
- package/dist/components/case-studies/index.cjs +9 -9
- package/dist/components/case-studies/index.js +3 -3
- package/dist/components/chat/index.cjs +3 -3
- package/dist/components/chat/index.js +2 -2
- package/dist/components/contact/index.cjs +4 -4
- package/dist/components/contact/index.js +3 -3
- package/dist/components/docs/index.cjs +6 -6
- package/dist/components/docs/index.js +5 -5
- package/dist/components/embeds/index.cjs +4 -4
- package/dist/components/embeds/index.js +3 -3
- package/dist/components/faq/index.cjs +5 -5
- package/dist/components/faq/index.js +4 -4
- package/dist/components/features/index.cjs +3 -3
- package/dist/components/features/index.js +2 -2
- package/dist/components/features/time-tracker/time-tracker-panel.d.ts +1 -1
- package/dist/components/features/time-tracker/time-tracker-panel.d.ts.map +1 -1
- package/dist/components/features/time-tracker/types.d.ts +2 -2
- package/dist/components/features/time-tracker/types.d.ts.map +1 -1
- package/dist/components/index.cjs +190 -188
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +12 -10
- package/dist/components/index.js.map +1 -1
- package/dist/components/layout/page-layout.d.ts +1 -1
- package/dist/components/layout/page-layout.d.ts.map +1 -1
- package/dist/components/layout/title-block.d.ts +10 -0
- package/dist/components/layout/title-block.d.ts.map +1 -1
- package/dist/components/navigation/index.cjs +3 -3
- package/dist/components/navigation/index.js +2 -2
- package/dist/components/onboarding-guides/index.cjs +29 -29
- package/dist/components/onboarding-guides/index.js +5 -5
- package/dist/components/related-content/index.cjs +5 -5
- package/dist/components/related-content/index.js +4 -4
- package/dist/components/tickets/help-center-list.d.ts +5 -1
- package/dist/components/tickets/help-center-list.d.ts.map +1 -1
- package/dist/components/tickets/index.cjs +84 -73
- package/dist/components/tickets/index.cjs.map +1 -1
- package/dist/components/tickets/index.js +21 -10
- package/dist/components/tickets/index.js.map +1 -1
- package/dist/components/tool-icon.d.ts.map +1 -1
- package/dist/components/ui/dashboard-info-card.d.ts +3 -1
- package/dist/components/ui/dashboard-info-card.d.ts.map +1 -1
- package/dist/components/ui/index.cjs +5 -3
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +4 -2
- package/dist/hooks/index.cjs +2 -2
- package/dist/hooks/index.js +1 -1
- package/dist/index.cjs +5 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +4 -2
- package/dist/types/index.cjs +2 -0
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/tool.types.d.ts +1 -0
- package/dist/types/tool.types.d.ts.map +1 -1
- package/dist/utils/index.cjs +11 -0
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.js +11 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/tool-utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/features/time-tracker/time-tracker-panel.tsx +27 -9
- package/src/components/features/time-tracker/types.ts +2 -2
- package/src/components/layout/page-layout.tsx +1 -1
- package/src/components/layout/title-block.tsx +12 -1
- package/src/components/tickets/help-center-list.tsx +16 -4
- package/src/components/tool-icon.tsx +1 -0
- package/src/components/ui/dashboard-info-card.tsx +9 -1
- package/src/stories/TimeTracker.stories.tsx +10 -10
- package/src/types/tool.types.ts +2 -0
- package/src/utils/tool-utils.ts +11 -0
- package/dist/chunk-G56GYN7Z.cjs.map +0 -1
- package/dist/chunk-JQ2EYXWR.js.map +0 -1
- package/dist/chunk-NQDC366J.cjs.map +0 -1
- /package/dist/{chunk-CGR2DPPQ.js.map → chunk-BJ6JXN5Z.js.map} +0 -0
- /package/dist/{chunk-F45P357Q.js.map → chunk-E2LC43T3.js.map} +0 -0
- /package/dist/{chunk-GRBFBBSX.js.map → chunk-JWX6NIQ4.js.map} +0 -0
- /package/dist/{chunk-PH2RLC4E.js.map → chunk-L7BROXZ7.js.map} +0 -0
- /package/dist/{chunk-GZPOUZAY.js.map → chunk-OD3BEWDQ.js.map} +0 -0
- /package/dist/{chunk-JQLC2FVM.js.map → chunk-TRSDXD23.js.map} +0 -0
- /package/dist/{chunk-DJBMLHN7.js.map → chunk-UO27TVAO.js.map} +0 -0
- /package/dist/{chunk-BX4MDVBL.js.map → chunk-XKVSR3IV.js.map} +0 -0
- /package/dist/{chunk-IHCOTCIG.js.map → chunk-ZW3NHMG7.js.map} +0 -0
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunkWJCOWYAPcjs = require('../../chunk-WJCOWYAP.cjs');
|
|
11
11
|
require('../../chunk-VFKQMAUF.cjs');
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _chunk46UZAYUTcjs = require('../../chunk-46UZAYUT.cjs');
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
|
|
@@ -38,14 +38,14 @@ var _chunkUFJVTOGScjs = require('../../chunk-UFJVTOGS.cjs');
|
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
|
|
41
|
-
var
|
|
41
|
+
var _chunkEC4DGRN6cjs = require('../../chunk-EC4DGRN6.cjs');
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
|
|
47
47
|
|
|
48
|
-
var
|
|
48
|
+
var _chunk5ATH263Ncjs = require('../../chunk-5ATH263N.cjs');
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
var _chunkN2DVKXN4cjs = require('../../chunk-N2DVKXN4.cjs');
|
|
@@ -107,7 +107,7 @@ function TicketOpenForm({
|
|
|
107
107
|
}) {
|
|
108
108
|
const [subject, setSubject] = _react.useState.call(void 0, "");
|
|
109
109
|
const [content, setContent] = _react.useState.call(void 0, "");
|
|
110
|
-
const { attachments, readyAttachments, hasInflightUploads, addFiles, removeAttachment, clear } =
|
|
110
|
+
const { attachments, readyAttachments, hasInflightUploads, addFiles, removeAttachment, clear } = _chunkEC4DGRN6cjs.useChatAttachments.call(void 0, );
|
|
111
111
|
const trimmedSubject = subject.trim();
|
|
112
112
|
const trimmedContent = content.trim();
|
|
113
113
|
const overCap = content.length > TICKET_TEXT_MAX_CHARS;
|
|
@@ -127,7 +127,7 @@ function TicketOpenForm({
|
|
|
127
127
|
clear();
|
|
128
128
|
}
|
|
129
129
|
};
|
|
130
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
130
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEC4DGRN6cjs.Card, { className: "p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "form", { onSubmit: handleSubmit, className: "flex flex-col md:flex-row gap-6", children: [
|
|
131
131
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 md:max-w-md", children: [
|
|
132
132
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-2xl font-semibold text-ods-text-primary mb-2", children: "Need Support?" }),
|
|
133
133
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-sm", children: "Can't find what you're looking for? Submit a support ticket below \u2014 we'll follow up shortly." }),
|
|
@@ -166,7 +166,7 @@ function TicketOpenForm({
|
|
|
166
166
|
}
|
|
167
167
|
),
|
|
168
168
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
169
|
-
|
|
169
|
+
_chunkEC4DGRN6cjs.Textarea,
|
|
170
170
|
{
|
|
171
171
|
id: "ticket-content",
|
|
172
172
|
placeholder: "Describe your issue or question in detail...",
|
|
@@ -190,7 +190,7 @@ function TicketOpenForm({
|
|
|
190
190
|
)
|
|
191
191
|
] }),
|
|
192
192
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
193
|
-
|
|
193
|
+
_chunkEC4DGRN6cjs.ChatAttachmentChipStrip,
|
|
194
194
|
{
|
|
195
195
|
attachments,
|
|
196
196
|
onRemove: removeAttachment,
|
|
@@ -199,7 +199,7 @@ function TicketOpenForm({
|
|
|
199
199
|
),
|
|
200
200
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-3", children: [
|
|
201
201
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
202
|
-
|
|
202
|
+
_chunkEC4DGRN6cjs.ChatAttachmentAddButton,
|
|
203
203
|
{
|
|
204
204
|
attachmentsEnabled: !supportSystemDown,
|
|
205
205
|
attachmentsCount: attachments.length,
|
|
@@ -237,7 +237,7 @@ var _usesticktobottom = require('use-stick-to-bottom');
|
|
|
237
237
|
|
|
238
238
|
var LIST_ENGAGEMENTS_ENDPOINT = "/api/chat/agent/list-engagements";
|
|
239
239
|
function useTicketEngagements(externalTicketId, enabled = true, refetchInterval = false) {
|
|
240
|
-
const identity =
|
|
240
|
+
const identity = _chunkEC4DGRN6cjs.useChatIdentity.call(void 0, );
|
|
241
241
|
const identityKey = _nullishCoalesce(_optionalChain([identity, 'access', _2 => _2.user, 'optionalAccess', _3 => _3.email]), () => ( "anon"));
|
|
242
242
|
const listEngagementsEndpoint = _nullishCoalesce(_chunkN2DVKXN4cjs.useRequiredChatRuntime.call(void 0, ).endpoints.listEngagementsUrl, () => ( LIST_ENGAGEMENTS_ENDPOINT));
|
|
243
243
|
const fetchable = enabled && !!externalTicketId && !externalTicketId.startsWith("temp-");
|
|
@@ -258,7 +258,7 @@ function useTicketEngagements(externalTicketId, enabled = true, refetchInterval
|
|
|
258
258
|
// so polling pauses on a hidden tab.
|
|
259
259
|
refetchInterval,
|
|
260
260
|
queryFn: async () => {
|
|
261
|
-
const response = await
|
|
261
|
+
const response = await _chunk5ATH263Ncjs.embedAuthedFetch.call(void 0, listEngagementsEndpoint, {
|
|
262
262
|
method: "POST",
|
|
263
263
|
body: JSON.stringify({ ticket_id: externalTicketId })
|
|
264
264
|
});
|
|
@@ -319,7 +319,7 @@ function TicketLinkedDeliveryCard({
|
|
|
319
319
|
{
|
|
320
320
|
className: `rounded-md border border-ods-border bg-ods-bg overflow-hidden ${_nullishCoalesce(className, () => ( ""))}`,
|
|
321
321
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
322
|
-
|
|
322
|
+
_chunkWJCOWYAPcjs.DeliveryRow,
|
|
323
323
|
{
|
|
324
324
|
item,
|
|
325
325
|
href: clickup.delivery_href,
|
|
@@ -343,7 +343,7 @@ function TicketReplyComposer({
|
|
|
343
343
|
}) {
|
|
344
344
|
const [resolution, setResolution] = _react.useState.call(void 0, "");
|
|
345
345
|
const [closeDialogOpen, setCloseDialogOpen] = _react.useState.call(void 0, false);
|
|
346
|
-
const attachments =
|
|
346
|
+
const attachments = _chunkEC4DGRN6cjs.useChatAttachments.call(void 0, );
|
|
347
347
|
const ticketRef = { id: ticket.id, external_id: ticket.external_id };
|
|
348
348
|
const hasReadyFiles = attachments.readyAttachments.length > 0;
|
|
349
349
|
const handleSend = _react.useCallback.call(void 0,
|
|
@@ -371,7 +371,7 @@ function TicketReplyComposer({
|
|
|
371
371
|
const disabled = busy || supportSystemDown;
|
|
372
372
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
|
|
373
373
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
374
|
-
|
|
374
|
+
_chunkEC4DGRN6cjs.ChatAttachmentChipStrip,
|
|
375
375
|
{
|
|
376
376
|
attachments: attachments.attachments,
|
|
377
377
|
onRemove: attachments.removeAttachment,
|
|
@@ -380,7 +380,7 @@ function TicketReplyComposer({
|
|
|
380
380
|
}
|
|
381
381
|
),
|
|
382
382
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
383
|
-
|
|
383
|
+
_chunkEC4DGRN6cjs.ChatInput,
|
|
384
384
|
{
|
|
385
385
|
fullWidth: true,
|
|
386
386
|
autoFocus: true,
|
|
@@ -394,7 +394,7 @@ function TicketReplyComposer({
|
|
|
394
394
|
),
|
|
395
395
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2 w-full", children: [
|
|
396
396
|
!supportSystemDown && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
397
|
-
|
|
397
|
+
_chunkEC4DGRN6cjs.ChatAttachmentAddButton,
|
|
398
398
|
{
|
|
399
399
|
attachmentsEnabled: true,
|
|
400
400
|
attachmentsCount: attachments.attachments.length,
|
|
@@ -417,13 +417,13 @@ function TicketReplyComposer({
|
|
|
417
417
|
}
|
|
418
418
|
)
|
|
419
419
|
] }),
|
|
420
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
421
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
422
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
423
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
420
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEC4DGRN6cjs.AlertDialog, { open: closeDialogOpen, onOpenChange: setCloseDialogOpen, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEC4DGRN6cjs.AlertDialogContent, { className: "bg-ods-card border-ods-border", children: [
|
|
421
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEC4DGRN6cjs.AlertDialogHeader, { children: [
|
|
422
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEC4DGRN6cjs.AlertDialogTitle, { className: "text-ods-text-primary", children: "Close this ticket?" }),
|
|
423
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEC4DGRN6cjs.AlertDialogDescription, { className: "text-ods-text-secondary", children: "Add an optional resolution note below. You can reopen the ticket later if needed." })
|
|
424
424
|
] }),
|
|
425
425
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
426
|
-
|
|
426
|
+
_chunkEC4DGRN6cjs.Textarea,
|
|
427
427
|
{
|
|
428
428
|
value: resolution,
|
|
429
429
|
onChange: (e) => setResolution(e.target.value),
|
|
@@ -433,9 +433,9 @@ function TicketReplyComposer({
|
|
|
433
433
|
className: "mt-2"
|
|
434
434
|
}
|
|
435
435
|
),
|
|
436
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
436
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEC4DGRN6cjs.AlertDialogFooter, { children: [
|
|
437
437
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
438
|
-
|
|
438
|
+
_chunkEC4DGRN6cjs.AlertDialogCancel,
|
|
439
439
|
{
|
|
440
440
|
disabled: busy,
|
|
441
441
|
className: "bg-transparent border-ods-border text-ods-text-primary hover:bg-ods-border",
|
|
@@ -443,7 +443,7 @@ function TicketReplyComposer({
|
|
|
443
443
|
}
|
|
444
444
|
),
|
|
445
445
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
446
|
-
|
|
446
|
+
_chunkEC4DGRN6cjs.AlertDialogAction,
|
|
447
447
|
{
|
|
448
448
|
onClick: () => void confirmClose(),
|
|
449
449
|
disabled: busy,
|
|
@@ -513,7 +513,7 @@ var TICKET_FEED_HEIGHT = "h-[60vh] md:h-[420px]";
|
|
|
513
513
|
var TICKET_FEED_INNER = "flex flex-col gap-4 md:gap-6 px-4 md:px-6 py-4 md:py-6";
|
|
514
514
|
var TICKET_FEED_SKELETON_ROWS = 6;
|
|
515
515
|
function TicketTimelinePanel({ ticket }) {
|
|
516
|
-
const identity =
|
|
516
|
+
const identity = _chunkEC4DGRN6cjs.useChatIdentity.call(void 0, );
|
|
517
517
|
const externalId = isOptimistic(ticket) ? null : ticket.external_id;
|
|
518
518
|
const { engagements, isLoading } = useTicketEngagements(
|
|
519
519
|
externalId,
|
|
@@ -533,11 +533,11 @@ function TicketTimelinePanel({ ticket }) {
|
|
|
533
533
|
const customerName = (isViewerTheCustomer ? viewerName : null) || ticketCustomerName || viewerName || _optionalChain([identity, 'access', _19 => _19.user, 'optionalAccess', _20 => _20.email]) || "You";
|
|
534
534
|
const customerAvatar = isViewerTheCustomer ? _nullishCoalesce(_optionalChain([identity, 'access', _21 => _21.user, 'optionalAccess', _22 => _22.avatarUrl]), () => ( void 0)) : void 0;
|
|
535
535
|
if (isLoading) {
|
|
536
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `${TICKET_FEED_FRAME} ${TICKET_FEED_HEIGHT}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: TICKET_FEED_INNER, children: Array.from({ length: TICKET_FEED_SKELETON_ROWS }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
536
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `${TICKET_FEED_FRAME} ${TICKET_FEED_HEIGHT}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: TICKET_FEED_INNER, children: Array.from({ length: TICKET_FEED_SKELETON_ROWS }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEC4DGRN6cjs.ChatMessageRowSkeleton, {}, i)) }) });
|
|
537
537
|
}
|
|
538
538
|
if (bodyTurns.length === 0 && engagements.length === 0) {
|
|
539
539
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
540
|
-
|
|
540
|
+
_chunkWJCOWYAPcjs.EmptyState,
|
|
541
541
|
{
|
|
542
542
|
type: "generic",
|
|
543
543
|
title: "No conversation yet",
|
|
@@ -552,7 +552,7 @@ function TicketTimelinePanel({ ticket }) {
|
|
|
552
552
|
const isResolution = turn.startsWith("[Resolution]");
|
|
553
553
|
const text = isResolution ? turn.replace(/^\[Resolution\]\s*/, "") : turn;
|
|
554
554
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
555
|
-
|
|
555
|
+
_chunkEC4DGRN6cjs.ChatMessageRow,
|
|
556
556
|
{
|
|
557
557
|
displayName: customerName,
|
|
558
558
|
avatarUrl: customerAvatar,
|
|
@@ -581,13 +581,13 @@ function TicketTimelinePanel({ ticket }) {
|
|
|
581
581
|
}
|
|
582
582
|
const engAttachments = mapEngagementAttachments(eng.attachments);
|
|
583
583
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
584
|
-
|
|
584
|
+
_chunkEC4DGRN6cjs.ChatMessageRow,
|
|
585
585
|
{
|
|
586
586
|
displayName: author,
|
|
587
587
|
avatarUrl: avatarSrc,
|
|
588
|
-
timeLabel: eng.createdAt ?
|
|
588
|
+
timeLabel: eng.createdAt ? _chunkEC4DGRN6cjs.formatRelativeTime.call(void 0, eng.createdAt) : null,
|
|
589
589
|
body: stripAttachmentsPreamble(_nullishCoalesce(eng.body, () => ( ""))),
|
|
590
|
-
footer: engAttachments.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
590
|
+
footer: engAttachments.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEC4DGRN6cjs.TicketAttachmentsList, { attachments: engAttachments, size: "compact" }) }) : null
|
|
591
591
|
},
|
|
592
592
|
eng.id
|
|
593
593
|
);
|
|
@@ -675,7 +675,7 @@ function AssignedAgentRow({
|
|
|
675
675
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary uppercase tracking-wider font-medium", children: "Assigned to" }),
|
|
676
676
|
displayLabel ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-1.5 text-ods-text-primary font-medium", children: [
|
|
677
677
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
678
|
-
|
|
678
|
+
_chunkEC4DGRN6cjs.SquareAvatar,
|
|
679
679
|
{
|
|
680
680
|
size: "sm",
|
|
681
681
|
variant: "round",
|
|
@@ -707,7 +707,7 @@ function TicketRow({
|
|
|
707
707
|
const rowRef = _react.useRef.call(void 0, null);
|
|
708
708
|
const handleClick = _react.useCallback.call(void 0, () => {
|
|
709
709
|
onToggle(ticket.id);
|
|
710
|
-
|
|
710
|
+
_chunk5ATH263Ncjs.scrollElementIntoView.call(void 0, rowRef.current, {
|
|
711
711
|
adjustTargetY: (raw) => {
|
|
712
712
|
if (!rowRef.current) return raw;
|
|
713
713
|
const expandedDrawer = document.querySelector(
|
|
@@ -733,7 +733,7 @@ function TicketRow({
|
|
|
733
733
|
// so the badge accurately reflects "Closed" with a checkmark.
|
|
734
734
|
statusLabel: _nullishCoalesce(ticket.pipeline_stage_label, () => ( void 0)),
|
|
735
735
|
category: _nullishCoalesce(ticket.customer_company, () => ( void 0)),
|
|
736
|
-
timeAgo: ticket.hubspot_updated_at ?
|
|
736
|
+
timeAgo: ticket.hubspot_updated_at ? _chunkEC4DGRN6cjs.formatRelativeTime.call(void 0, ticket.hubspot_updated_at) : void 0,
|
|
737
737
|
// Linked-work chip: surfaced whenever the ticket has a linked
|
|
738
738
|
// ClickUp task. Uses the linked task's own status so the chip text
|
|
739
739
|
// reads "Working" / "Waiting on version release" / etc. — useful
|
|
@@ -748,7 +748,7 @@ function TicketRow({
|
|
|
748
748
|
className: "border-b border-ods-border last:border-b-0",
|
|
749
749
|
children: [
|
|
750
750
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
751
|
-
|
|
751
|
+
_chunkEC4DGRN6cjs.ChatTicketItem,
|
|
752
752
|
{
|
|
753
753
|
ticket: tileData,
|
|
754
754
|
onClick: optimistic ? void 0 : handleClick,
|
|
@@ -818,7 +818,7 @@ function useTicketsList(filters) {
|
|
|
818
818
|
pageSize
|
|
819
819
|
};
|
|
820
820
|
if (statusFilter) body.status = statusFilter;
|
|
821
|
-
const response = await
|
|
821
|
+
const response = await _chunk5ATH263Ncjs.embedAuthedFetch.call(void 0, findTicketEndpoint, {
|
|
822
822
|
method: "POST",
|
|
823
823
|
body: JSON.stringify(body)
|
|
824
824
|
});
|
|
@@ -933,7 +933,7 @@ function useTicketActions(options) {
|
|
|
933
933
|
}, []);
|
|
934
934
|
const executeTicketAction = _react.useCallback.call(void 0,
|
|
935
935
|
async (toolName, args) => {
|
|
936
|
-
const res = await
|
|
936
|
+
const res = await _chunk5ATH263Ncjs.embedAuthedFetch.call(void 0, ticketActionEndpoint, {
|
|
937
937
|
method: "POST",
|
|
938
938
|
body: JSON.stringify({ tool_name: toolName, args })
|
|
939
939
|
});
|
|
@@ -1317,14 +1317,14 @@ function resolveErrorCode(bodyCode, status) {
|
|
|
1317
1317
|
|
|
1318
1318
|
// src/components/tickets/ticket-center.tsx
|
|
1319
1319
|
|
|
1320
|
-
function TicketCenter({ toast: toast2 =
|
|
1321
|
-
const identity =
|
|
1320
|
+
function TicketCenter({ toast: toast2 = _chunk5ATH263Ncjs.toast } = {}) {
|
|
1321
|
+
const identity = _chunkEC4DGRN6cjs.useChatIdentity.call(void 0, );
|
|
1322
1322
|
if (identity.isLoading) {
|
|
1323
1323
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketCenterSkeleton, {});
|
|
1324
1324
|
}
|
|
1325
1325
|
if (identity.authTier === "anon" || !_optionalChain([identity, 'access', _58 => _58.user, 'optionalAccess', _59 => _59.email])) {
|
|
1326
1326
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1327
|
-
|
|
1327
|
+
_chunkWJCOWYAPcjs.EmptyState,
|
|
1328
1328
|
{
|
|
1329
1329
|
type: "generic",
|
|
1330
1330
|
title: "Sign in to manage tickets",
|
|
@@ -1395,7 +1395,7 @@ function TicketCenterAuthed({
|
|
|
1395
1395
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 text-xs text-ods-text-secondary", children: [
|
|
1396
1396
|
lastUpdatedAt && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { children: [
|
|
1397
1397
|
"Updated ",
|
|
1398
|
-
|
|
1398
|
+
_chunkEC4DGRN6cjs.formatRelativeTime.call(void 0, new Date(lastUpdatedAt))
|
|
1399
1399
|
] }),
|
|
1400
1400
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1401
1401
|
_chunkFQOTC3UUcjs.Button,
|
|
@@ -1411,18 +1411,18 @@ function TicketCenterAuthed({
|
|
|
1411
1411
|
)
|
|
1412
1412
|
] })
|
|
1413
1413
|
] }),
|
|
1414
|
-
isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketListSkeleton, {}) : merged.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1415
|
-
|
|
1414
|
+
isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketListSkeleton, {}) : merged.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEC4DGRN6cjs.Card, { className: "p-6", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1415
|
+
_chunkWJCOWYAPcjs.EmptyState,
|
|
1416
1416
|
{
|
|
1417
1417
|
type: "generic",
|
|
1418
1418
|
title: "No tickets yet",
|
|
1419
1419
|
description: "Open one above to start the conversation.",
|
|
1420
1420
|
showCTA: false
|
|
1421
1421
|
}
|
|
1422
|
-
) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1422
|
+
) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEC4DGRN6cjs.Card, { className: "overflow-hidden", children: merged.map((ticket) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1423
1423
|
TicketRow,
|
|
1424
1424
|
{
|
|
1425
|
-
id:
|
|
1425
|
+
id: _chunkEC4DGRN6cjs.devSectionAnchorId.call(void 0, "ticket", ticket.external_id),
|
|
1426
1426
|
ticket,
|
|
1427
1427
|
expanded: expandedTicketId === ticket.id,
|
|
1428
1428
|
onToggle: toggleRow,
|
|
@@ -1440,7 +1440,7 @@ function TicketCenterAuthed({
|
|
|
1440
1440
|
}
|
|
1441
1441
|
function TicketCenterSkeleton() {
|
|
1442
1442
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-6", children: [
|
|
1443
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1443
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEC4DGRN6cjs.Card, { className: "p-6", children: [
|
|
1444
1444
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-7 w-48 mb-4" }),
|
|
1445
1445
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-10 w-full mb-3" }),
|
|
1446
1446
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-24 w-full" })
|
|
@@ -1449,7 +1449,7 @@ function TicketCenterSkeleton() {
|
|
|
1449
1449
|
] });
|
|
1450
1450
|
}
|
|
1451
1451
|
function TicketListSkeleton() {
|
|
1452
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1452
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEC4DGRN6cjs.Card, { className: "overflow-hidden", children: [0, 1, 2].map((i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "h-20 px-4 flex items-center gap-4 border-b border-ods-border last:border-b-0", children: [
|
|
1453
1453
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col gap-2", children: [
|
|
1454
1454
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-4 w-2/3" }),
|
|
1455
1455
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-3 w-full" })
|
|
@@ -1462,7 +1462,7 @@ function TicketListSkeleton() {
|
|
|
1462
1462
|
// src/components/tickets/help-center-list.tsx
|
|
1463
1463
|
|
|
1464
1464
|
|
|
1465
|
-
|
|
1465
|
+
_chunkWJCOWYAPcjs.init_unified_pagination.call(void 0, );
|
|
1466
1466
|
|
|
1467
1467
|
// src/components/tickets/help-center-card.tsx
|
|
1468
1468
|
|
|
@@ -1484,7 +1484,7 @@ function HelpCenterCard({
|
|
|
1484
1484
|
const optimistic = isOptimistic(ticket);
|
|
1485
1485
|
const rawStatus = (_nullishCoalesce(ticket.status, () => ( "OPEN"))).toUpperCase();
|
|
1486
1486
|
const priority = (_nullishCoalesce(ticket.priority, () => ( ""))).toUpperCase();
|
|
1487
|
-
const relativeUpdated = ticket.hubspot_updated_at ?
|
|
1487
|
+
const relativeUpdated = ticket.hubspot_updated_at ? _chunkEC4DGRN6cjs.formatRelativeTime.call(void 0, ticket.hubspot_updated_at) : "recently";
|
|
1488
1488
|
const title = (ticket.subject || "").trim() || "(untitled)";
|
|
1489
1489
|
const subtitle = `UPDATED ${relativeUpdated}, #${ticket.external_id || "\u2014"}${ticket.pipeline_stage_label ? `, ${ticket.pipeline_stage_label}` : ""}`;
|
|
1490
1490
|
const description = _nullishCoalesce(_nullishCoalesce(ticket.preview, () => ( ticket.body)), () => ( ""));
|
|
@@ -1497,24 +1497,24 @@ function HelpCenterCard({
|
|
|
1497
1497
|
_react.useEffect.call(void 0, () => {
|
|
1498
1498
|
if (!isExpanded) return;
|
|
1499
1499
|
const raf = requestAnimationFrame(() => {
|
|
1500
|
-
|
|
1501
|
-
headerOffset:
|
|
1500
|
+
_chunk5ATH263Ncjs.scrollElementIntoView.call(void 0, rowRef.current, {
|
|
1501
|
+
headerOffset: _chunk5ATH263Ncjs.STICKY_HEADER_OFFSET_PX
|
|
1502
1502
|
});
|
|
1503
1503
|
});
|
|
1504
1504
|
return () => cancelAnimationFrame(raf);
|
|
1505
1505
|
}, [isExpanded]);
|
|
1506
1506
|
const rightBadges = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
1507
1507
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1508
|
-
|
|
1508
|
+
_chunkEC4DGRN6cjs.StatusBadge,
|
|
1509
1509
|
{
|
|
1510
1510
|
text: rawStatus,
|
|
1511
|
-
colorScheme:
|
|
1511
|
+
colorScheme: _chunkEC4DGRN6cjs.getStatusColorScheme.call(void 0, rawStatus),
|
|
1512
1512
|
variant: "card",
|
|
1513
1513
|
className: "border border-ods-border"
|
|
1514
1514
|
}
|
|
1515
1515
|
),
|
|
1516
1516
|
priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1517
|
-
|
|
1517
|
+
_chunkEC4DGRN6cjs.StatusBadge,
|
|
1518
1518
|
{
|
|
1519
1519
|
text: priority,
|
|
1520
1520
|
colorScheme: mapPriorityScheme(priority),
|
|
@@ -1528,7 +1528,7 @@ function HelpCenterCard({
|
|
|
1528
1528
|
{
|
|
1529
1529
|
ref: rowRef,
|
|
1530
1530
|
id,
|
|
1531
|
-
style: { scrollMarginTop:
|
|
1531
|
+
style: { scrollMarginTop: _chunk5ATH263Ncjs.STICKY_HEADER_OFFSET_PX },
|
|
1532
1532
|
className: `border-b border-ods-border last:border-b-0 ${optimistic ? "opacity-60" : ""}`,
|
|
1533
1533
|
"aria-busy": optimistic || void 0,
|
|
1534
1534
|
children: [
|
|
@@ -1542,7 +1542,7 @@ function HelpCenterCard({
|
|
|
1542
1542
|
"aria-controls": isExpanded ? `help-center-drawer-${ticket.id}` : void 0,
|
|
1543
1543
|
className: "w-full text-left p-[12px] md:p-[16px] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent focus-visible:ring-inset disabled:cursor-default",
|
|
1544
1544
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1545
|
-
|
|
1545
|
+
_chunkWJCOWYAPcjs.DevCardRowContent,
|
|
1546
1546
|
{
|
|
1547
1547
|
title,
|
|
1548
1548
|
subtitle,
|
|
@@ -1617,7 +1617,7 @@ function HelpCenterCreateForm({
|
|
|
1617
1617
|
const [subject, setSubject] = _react.useState.call(void 0, "");
|
|
1618
1618
|
const [subjectError, setSubjectError] = _react.useState.call(void 0, null);
|
|
1619
1619
|
const subjectField = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
|
|
1620
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1620
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEC4DGRN6cjs.Label, { htmlFor: "help-center-subject", children: [
|
|
1621
1621
|
"Subject",
|
|
1622
1622
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: "*" })
|
|
1623
1623
|
] }),
|
|
@@ -1649,7 +1649,7 @@ function HelpCenterCreateForm({
|
|
|
1649
1649
|
)
|
|
1650
1650
|
] });
|
|
1651
1651
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1652
|
-
|
|
1652
|
+
_chunk46UZAYUTcjs.ContactForm,
|
|
1653
1653
|
{
|
|
1654
1654
|
title: "Open a new ticket",
|
|
1655
1655
|
footerText: "The support team typically responds within one business day.",
|
|
@@ -1686,8 +1686,8 @@ function HelpCenterCreateForm({
|
|
|
1686
1686
|
|
|
1687
1687
|
// src/components/tickets/help-center-list.tsx
|
|
1688
1688
|
|
|
1689
|
-
function HelpCenterList({ toast: toast2 =
|
|
1690
|
-
const identity =
|
|
1689
|
+
function HelpCenterList({ toast: toast2 = _chunk5ATH263Ncjs.toast, backButton, title } = {}) {
|
|
1690
|
+
const identity = _chunkEC4DGRN6cjs.useChatIdentity.call(void 0, );
|
|
1691
1691
|
const searchParams = _chunkG7UE6RKVcjs.useSearchParams.call(void 0, );
|
|
1692
1692
|
const router = _chunkG7UE6RKVcjs.useRouter.call(void 0, );
|
|
1693
1693
|
const pathname = _chunkG7UE6RKVcjs.usePathname.call(void 0, );
|
|
@@ -1697,11 +1697,20 @@ function HelpCenterList({ toast: toast2 = _chunkG56GYN7Zcjs.toast, backButton }
|
|
|
1697
1697
|
const rawPage = Number(searchParams.get("page"));
|
|
1698
1698
|
const page = Number.isFinite(rawPage) && rawPage > 0 ? Math.floor(rawPage) : 1;
|
|
1699
1699
|
if (identity.isLoading) {
|
|
1700
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1700
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1701
|
+
_chunkWJCOWYAPcjs.DevSectionPage,
|
|
1702
|
+
{
|
|
1703
|
+
sectionKey: "tickets",
|
|
1704
|
+
backButton,
|
|
1705
|
+
title,
|
|
1706
|
+
preControls: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HelpCenterCreateFormSkeleton, {}),
|
|
1707
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWJCOWYAPcjs.DevCardRowSkeletonList, {})
|
|
1708
|
+
}
|
|
1709
|
+
);
|
|
1701
1710
|
}
|
|
1702
1711
|
if (identity.authTier === "anon" || !_optionalChain([identity, 'access', _60 => _60.user, 'optionalAccess', _61 => _61.email])) {
|
|
1703
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1704
|
-
|
|
1712
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWJCOWYAPcjs.DevSectionPage, { sectionKey: "tickets", backButton, title, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1713
|
+
_chunkWJCOWYAPcjs.EmptyState,
|
|
1705
1714
|
{
|
|
1706
1715
|
type: "generic",
|
|
1707
1716
|
title: "Sign in to manage tickets",
|
|
@@ -1725,7 +1734,8 @@ function HelpCenterList({ toast: toast2 = _chunkG56GYN7Zcjs.toast, backButton }
|
|
|
1725
1734
|
toast: toast2,
|
|
1726
1735
|
sessionName,
|
|
1727
1736
|
sessionEmail,
|
|
1728
|
-
backButton
|
|
1737
|
+
backButton,
|
|
1738
|
+
title
|
|
1729
1739
|
}
|
|
1730
1740
|
);
|
|
1731
1741
|
}
|
|
@@ -1740,7 +1750,8 @@ function HelpCenterListAuthed({
|
|
|
1740
1750
|
toast: toast2,
|
|
1741
1751
|
sessionName,
|
|
1742
1752
|
sessionEmail,
|
|
1743
|
-
backButton
|
|
1753
|
+
backButton,
|
|
1754
|
+
title
|
|
1744
1755
|
}) {
|
|
1745
1756
|
const queryClient = _reactquery.useQueryClient.call(void 0, );
|
|
1746
1757
|
const [optimisticTickets, setOptimisticTickets] = _react.useState.call(void 0, []);
|
|
@@ -1809,7 +1820,7 @@ function HelpCenterListAuthed({
|
|
|
1809
1820
|
[tickets, ticketParam, setOpenTicket]
|
|
1810
1821
|
);
|
|
1811
1822
|
const merged = [...optimisticTickets, ...tickets];
|
|
1812
|
-
|
|
1823
|
+
_chunk5ATH263Ncjs.useScrollToHash.call(void 0, tickets, { headerOffset: _chunk5ATH263Ncjs.STICKY_HEADER_OFFSET_PX });
|
|
1813
1824
|
const hasActiveFilters = search !== "" || status !== "" && status !== "all";
|
|
1814
1825
|
const hasResults = merged.length > 0;
|
|
1815
1826
|
const form = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -1829,15 +1840,15 @@ function HelpCenterListAuthed({
|
|
|
1829
1840
|
] }),
|
|
1830
1841
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Button, { type: "button", variant: "accent", onClick: () => refetch(), children: "Retry" })
|
|
1831
1842
|
] }),
|
|
1832
|
-
!error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1843
|
+
!error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWJCOWYAPcjs.DevCardRowSkeletonList, {}) : !hasResults && isFetching ? (
|
|
1833
1844
|
// Bridge state — background refetch in flight and the
|
|
1834
1845
|
// optimistic placeholder was just removed by the mutation
|
|
1835
1846
|
// callback. Without this branch "No tickets yet" would flash
|
|
1836
1847
|
// for ~50ms between `removeOptimistic` and the server
|
|
1837
1848
|
// response landing.
|
|
1838
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1849
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWJCOWYAPcjs.DevCardRowSkeletonList, { rows: 1 })
|
|
1839
1850
|
) : !hasResults ? hasActiveFilters ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1840
|
-
|
|
1851
|
+
_chunkWJCOWYAPcjs.EmptyState,
|
|
1841
1852
|
{
|
|
1842
1853
|
type: "search",
|
|
1843
1854
|
title: "No tickets found",
|
|
@@ -1852,7 +1863,7 @@ function HelpCenterListAuthed({
|
|
|
1852
1863
|
}
|
|
1853
1864
|
}
|
|
1854
1865
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1855
|
-
|
|
1866
|
+
_chunkWJCOWYAPcjs.EmptyState,
|
|
1856
1867
|
{
|
|
1857
1868
|
type: "generic",
|
|
1858
1869
|
title: "No tickets yet",
|
|
@@ -1871,7 +1882,7 @@ function HelpCenterListAuthed({
|
|
|
1871
1882
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-card border border-ods-border rounded-[6px] overflow-clip w-full", children: merged.map((ticket) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1872
1883
|
HelpCenterCard,
|
|
1873
1884
|
{
|
|
1874
|
-
id:
|
|
1885
|
+
id: _chunkEC4DGRN6cjs.devSectionAnchorId.call(void 0, "ticket", ticket.external_id),
|
|
1875
1886
|
ticket,
|
|
1876
1887
|
expanded: expandedTicketId === ticket.id,
|
|
1877
1888
|
onToggle: toggleRow,
|
|
@@ -1887,9 +1898,9 @@ function HelpCenterListAuthed({
|
|
|
1887
1898
|
ticket.id
|
|
1888
1899
|
)) })
|
|
1889
1900
|
) }),
|
|
1890
|
-
!error && totalPages > 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1901
|
+
!error && totalPages > 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWJCOWYAPcjs.UnifiedPagination, { currentPage: page, totalPages })
|
|
1891
1902
|
] });
|
|
1892
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1903
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWJCOWYAPcjs.DevSectionPage, { sectionKey: "tickets", backButton, title, preControls: form, children: body });
|
|
1893
1904
|
}
|
|
1894
1905
|
|
|
1895
1906
|
|