@burdenoff/microfe-eventfullymanaged 2026.825.1 → 2026.828.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/eventfullymanaged/hooks/index.d.ts +1 -0
- package/dist/eventfullymanaged/hooks/index.d.ts.map +1 -1
- package/dist/eventfullymanaged/hooks/index.js +3 -0
- package/dist/eventfullymanaged/hooks/useEventDelete.d.ts +19 -0
- package/dist/eventfullymanaged/hooks/useEventDelete.d.ts.map +1 -0
- package/dist/eventfullymanaged/hooks/useEventDelete.js +16 -0
- package/dist/eventfullymanaged/hooks/useEventDelete.js.map +1 -0
- package/dist/eventfullymanaged/lib/format.d.ts +9 -0
- package/dist/eventfullymanaged/lib/format.d.ts.map +1 -1
- package/dist/eventfullymanaged/lib/format.js +11 -3
- package/dist/eventfullymanaged/lib/format.js.map +1 -1
- package/dist/eventfullymanaged/pages/events/EventDetailPage.d.ts.map +1 -1
- package/dist/eventfullymanaged/pages/events/EventDetailPage.js +315 -277
- package/dist/eventfullymanaged/pages/events/EventDetailPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/events/SessionFormPage.d.ts.map +1 -1
- package/dist/eventfullymanaged/pages/events/SessionFormPage.js +91 -81
- package/dist/eventfullymanaged/pages/events/SessionFormPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/EventsPage.d.ts.map +1 -1
- package/dist/eventfullymanaged/pages/modules/EventsPage.js +231 -229
- package/dist/eventfullymanaged/pages/modules/EventsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/NetworkingPage.d.ts.map +1 -1
- package/dist/eventfullymanaged/pages/modules/NetworkingPage.js +120 -102
- package/dist/eventfullymanaged/pages/modules/NetworkingPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/RegistrationPage.d.ts.map +1 -1
- package/dist/eventfullymanaged/pages/modules/RegistrationPage.js +128 -120
- package/dist/eventfullymanaged/pages/modules/RegistrationPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/registration/PromoCodeFormPage.d.ts.map +1 -1
- package/dist/eventfullymanaged/pages/registration/PromoCodeFormPage.js +68 -75
- package/dist/eventfullymanaged/pages/registration/PromoCodeFormPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/registration/RegisterAttendeePage.js +41 -41
- package/dist/eventfullymanaged/pages/registration/RegisterAttendeePage.js.map +1 -1
- package/dist/eventfullymanaged/store/eventfullyManagedStore.js +15 -0
- package/dist/eventfullymanaged/store/eventfullyManagedStore.js.map +1 -0
- package/package.json +1 -1
|
@@ -2,18 +2,21 @@ import { useEventfullyManaged as e } from "../../context/EventfullyManagedContex
|
|
|
2
2
|
import { gql as t } from "../../../node_modules/graphql-tag/lib/index.js";
|
|
3
3
|
import { useQuery as n } from "../../../node_modules/@apollo/client/react/hooks/useQuery.js";
|
|
4
4
|
import { notify as r } from "../../lib/toast.js";
|
|
5
|
-
import { useDeleteEventSessionMutation as i, useDeleteSpeakerMutation as a, useDeleteTicketTypeMutation as o, useEventQuery as s,
|
|
6
|
-
import { CHART_COLORS as
|
|
7
|
-
import { formatDateTime as
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
5
|
+
import { useDeleteEventSessionMutation as i, useDeleteSpeakerMutation as a, useDeleteTicketTypeMutation as o, useEventQuery as s, useRegistrationsQuery as c, useSpeakersQuery as l, useTicketTypesQuery as u, useVenuesQuery as d } from "../../api/eventApi.js";
|
|
6
|
+
import { CHART_COLORS as f } from "../../components/EventCharts.js";
|
|
7
|
+
import { formatDateTime as p } from "./eventFormUtils.js";
|
|
8
|
+
import { useEventDelete as m } from "../../hooks/useEventDelete.js";
|
|
9
|
+
import "../../hooks/index.js";
|
|
10
|
+
import { ActionMenu as h } from "../../components/ActionMenu.js";
|
|
11
|
+
import { Pagination as g, usePagination as _ } from "../../components/Pagination.js";
|
|
12
|
+
import { describeValidity as v } from "../../lib/format.js";
|
|
13
|
+
import { useMemo as y, useState as b } from "react";
|
|
14
|
+
import { useParams as x } from "react-router";
|
|
15
|
+
import { Fragment as S, jsx as C, jsxs as w } from "react/jsx-runtime";
|
|
16
|
+
import { ArrowLeft as T, CalendarClock as E, Clock as D, Edit as O, Eye as k, MapPin as A, Mic2 as j, Plus as M, Ticket as N, Users as P, Video as F } from "lucide-react";
|
|
17
|
+
import { Badge as I, Button as L, GlassCard as R, IllustratedEmptyState as z, Skeleton as B, Tabs as V, TabsContent as H, TabsList as U, TabsTrigger as W } from "@burdenoff/fe-libs/ui";
|
|
15
18
|
//#region src/eventfullymanaged/pages/events/EventDetailPage.tsx
|
|
16
|
-
function
|
|
19
|
+
function G(e) {
|
|
17
20
|
let t = e.toLowerCase();
|
|
18
21
|
return [
|
|
19
22
|
"active",
|
|
@@ -35,24 +38,24 @@ function H(e) {
|
|
|
35
38
|
"scheduled"
|
|
36
39
|
].includes(t) ? "info" : "secondary";
|
|
37
40
|
}
|
|
38
|
-
function
|
|
41
|
+
function K(e, t) {
|
|
39
42
|
let n = new Date(e).getTime(), r = new Date(t).getTime();
|
|
40
43
|
if (Number.isNaN(n) || Number.isNaN(r) || r <= n) return "";
|
|
41
44
|
let i = Math.round((r - n) / 6e4), a = Math.floor(i / 60), o = i % 60;
|
|
42
45
|
return a && o ? `${a}h ${o}m` : a ? `${a}h` : `${o}m`;
|
|
43
46
|
}
|
|
44
|
-
function
|
|
47
|
+
function q(e) {
|
|
45
48
|
let t = e < 12 ? "AM" : "PM";
|
|
46
49
|
return `${e % 12 == 0 ? 12 : e % 12}:00 ${t}`;
|
|
47
50
|
}
|
|
48
|
-
function
|
|
51
|
+
function J(e) {
|
|
49
52
|
let t = new Date(e);
|
|
50
53
|
return Number.isNaN(t.getTime()) ? "" : t.toLocaleTimeString(void 0, {
|
|
51
54
|
hour: "numeric",
|
|
52
55
|
minute: "2-digit"
|
|
53
56
|
});
|
|
54
57
|
}
|
|
55
|
-
var
|
|
58
|
+
var Y = t`
|
|
56
59
|
query EventfullymanagedScheduleSessions($eventId: ID, $limit: Int, $offset: Int) {
|
|
57
60
|
eventSessions: eventfullyManagedEventSessions(eventId: $eventId, limit: $limit, offset: $offset) {
|
|
58
61
|
total
|
|
@@ -70,28 +73,28 @@ var K = t`
|
|
|
70
73
|
}
|
|
71
74
|
}
|
|
72
75
|
}
|
|
73
|
-
`,
|
|
74
|
-
function
|
|
76
|
+
`, X = "General";
|
|
77
|
+
function Z(e) {
|
|
75
78
|
let t = new Date(e);
|
|
76
79
|
return Number.isNaN(t.getTime()) ? "unknown" : t.toISOString().slice(0, 10);
|
|
77
80
|
}
|
|
78
|
-
function
|
|
79
|
-
let o =
|
|
80
|
-
return /* @__PURE__ */
|
|
81
|
+
function Q({ session: e, color: t, speakerName: n, roomName: r, onEdit: i, onDelete: a }) {
|
|
82
|
+
let o = K(e.startsAt, e.endsAt);
|
|
83
|
+
return /* @__PURE__ */ w("div", {
|
|
81
84
|
className: "relative rounded-card border border-border-subtle p-3 shadow-elevation-1",
|
|
82
85
|
style: {
|
|
83
86
|
borderLeftWidth: "3px",
|
|
84
87
|
borderLeftColor: t,
|
|
85
88
|
background: `color-mix(in srgb, ${t} 8%, var(--color-bg-surface))`
|
|
86
89
|
},
|
|
87
|
-
children: [/* @__PURE__ */
|
|
90
|
+
children: [/* @__PURE__ */ w("div", {
|
|
88
91
|
className: "flex items-start justify-between gap-2",
|
|
89
|
-
children: [/* @__PURE__ */
|
|
92
|
+
children: [/* @__PURE__ */ C("p", {
|
|
90
93
|
className: "min-w-0 pr-1 text-sm font-semibold leading-snug text-text-primary",
|
|
91
94
|
children: e.title
|
|
92
|
-
}), /* @__PURE__ */
|
|
95
|
+
}), /* @__PURE__ */ C("div", {
|
|
93
96
|
className: "-mr-1 -mt-1 shrink-0",
|
|
94
|
-
children: /* @__PURE__ */
|
|
97
|
+
children: /* @__PURE__ */ C(h, {
|
|
95
98
|
ariaLabel: `Session actions for ${e.title}`,
|
|
96
99
|
entityName: e.title,
|
|
97
100
|
deleteLabel: "Delete session",
|
|
@@ -99,65 +102,65 @@ function Y({ session: e, color: t, speakerName: n, roomName: r, onEdit: i, onDel
|
|
|
99
102
|
onDelete: a
|
|
100
103
|
})
|
|
101
104
|
})]
|
|
102
|
-
}), /* @__PURE__ */
|
|
105
|
+
}), /* @__PURE__ */ w("dl", {
|
|
103
106
|
className: "mt-2 space-y-1 text-xs text-text-secondary",
|
|
104
107
|
children: [
|
|
105
|
-
/* @__PURE__ */
|
|
108
|
+
/* @__PURE__ */ w("div", {
|
|
106
109
|
className: "flex items-center gap-1.5",
|
|
107
|
-
children: [/* @__PURE__ */
|
|
110
|
+
children: [/* @__PURE__ */ C(j, { className: "h-3.5 w-3.5 shrink-0 text-text-muted" }), /* @__PURE__ */ C("span", {
|
|
108
111
|
className: "truncate",
|
|
109
112
|
children: n ?? "Speaker TBD"
|
|
110
113
|
})]
|
|
111
114
|
}),
|
|
112
|
-
r ? /* @__PURE__ */
|
|
115
|
+
r ? /* @__PURE__ */ w("div", {
|
|
113
116
|
className: "flex items-center gap-1.5",
|
|
114
|
-
children: [/* @__PURE__ */
|
|
117
|
+
children: [/* @__PURE__ */ C(A, { className: "h-3.5 w-3.5 shrink-0 text-text-muted" }), /* @__PURE__ */ C("span", {
|
|
115
118
|
className: "truncate",
|
|
116
119
|
children: r
|
|
117
120
|
})]
|
|
118
121
|
}) : null,
|
|
119
|
-
/* @__PURE__ */
|
|
122
|
+
/* @__PURE__ */ w("div", {
|
|
120
123
|
className: "flex items-center gap-1.5",
|
|
121
|
-
children: [/* @__PURE__ */
|
|
124
|
+
children: [/* @__PURE__ */ C(D, { className: "h-3.5 w-3.5 shrink-0 text-text-muted" }), /* @__PURE__ */ w("span", { children: [J(e.startsAt), o ? ` · ${o}` : ""] })]
|
|
122
125
|
})
|
|
123
126
|
]
|
|
124
127
|
})]
|
|
125
128
|
});
|
|
126
129
|
}
|
|
127
|
-
function
|
|
128
|
-
let { navigate: a } = e(), o =
|
|
130
|
+
function ee({ eventId: t }) {
|
|
131
|
+
let { navigate: a } = e(), o = _(), { data: s, loading: c, refetch: u } = n(Y, { variables: {
|
|
129
132
|
eventId: t,
|
|
130
133
|
limit: o.limit,
|
|
131
134
|
offset: o.offset
|
|
132
|
-
} }), { data: p } =
|
|
135
|
+
} }), { data: p } = d({
|
|
133
136
|
limit: 100,
|
|
134
137
|
offset: 0
|
|
135
|
-
}), { data:
|
|
138
|
+
}), { data: m } = l({
|
|
136
139
|
limit: 100,
|
|
137
140
|
offset: 0
|
|
138
|
-
}), [
|
|
141
|
+
}), [h] = i(), v = s?.eventSessions?.total ?? 0, b = y(() => s?.eventSessions?.items ?? [], [s]), x = y(() => {
|
|
139
142
|
let e = /* @__PURE__ */ new Map();
|
|
140
143
|
for (let t of p?.venues?.items ?? []) e.set(t.id, t.name);
|
|
141
144
|
return e;
|
|
142
|
-
}, [p]),
|
|
145
|
+
}, [p]), S = y(() => {
|
|
143
146
|
let e = /* @__PURE__ */ new Map();
|
|
144
|
-
for (let t of
|
|
147
|
+
for (let t of m?.speakers?.items ?? []) e.set(t.id, t.fullName);
|
|
145
148
|
return e;
|
|
146
|
-
}, [
|
|
149
|
+
}, [m]), T = y(() => {
|
|
147
150
|
let e = /* @__PURE__ */ new Map(), t = 0;
|
|
148
|
-
for (let n of
|
|
149
|
-
let r = n.track?.trim() ||
|
|
150
|
-
e.has(r) || (e.set(r,
|
|
151
|
+
for (let n of b) {
|
|
152
|
+
let r = n.track?.trim() || X;
|
|
153
|
+
e.has(r) || (e.set(r, f[t % f.length]), t += 1);
|
|
151
154
|
}
|
|
152
155
|
return e;
|
|
153
|
-
}, [
|
|
156
|
+
}, [b]), E = y(() => {
|
|
154
157
|
let e = /* @__PURE__ */ new Map();
|
|
155
|
-
for (let t of [...
|
|
156
|
-
let n =
|
|
158
|
+
for (let t of [...b].sort((e, t) => new Date(e.startsAt).getTime() - new Date(t.startsAt).getTime())) {
|
|
159
|
+
let n = Z(t.startsAt), r = e.get(n) ?? [];
|
|
157
160
|
r.push(t), e.set(n, r);
|
|
158
161
|
}
|
|
159
162
|
return Array.from(e.entries()).map(([e, t]) => {
|
|
160
|
-
let n = Array.from(new Set(t.map((e) => e.track?.trim() ||
|
|
163
|
+
let n = Array.from(new Set(t.map((e) => e.track?.trim() || X))), r = t.map((e) => new Date(e.startsAt).getHours()).filter((e) => !Number.isNaN(e)), i = r.length ? Math.min(...r) : 9, a = r.length ? Math.max(...r) : 17, o = [];
|
|
161
164
|
for (let e = i; e <= a; e += 1) o.push(e);
|
|
162
165
|
return {
|
|
163
166
|
key: e,
|
|
@@ -166,50 +169,50 @@ function X({ eventId: t }) {
|
|
|
166
169
|
hourRange: o
|
|
167
170
|
};
|
|
168
171
|
});
|
|
169
|
-
}, [
|
|
170
|
-
let t = await
|
|
172
|
+
}, [b]), D = async (e) => {
|
|
173
|
+
let t = await h({ variables: { id: e.id } });
|
|
171
174
|
if (t.error) throw r.error("Could not delete session", t.error.message), t.error;
|
|
172
175
|
if (!t.data?.deleteEventSession) throw r.error("Could not delete session", "The server did not confirm the change."), Error("delete-unconfirmed");
|
|
173
|
-
r.success("Session deleted", e.title), await
|
|
176
|
+
r.success("Session deleted", e.title), await u();
|
|
174
177
|
}, O = (e) => {
|
|
175
178
|
let t = e.metadata ?? {}, n = typeof t.speakerId == "string" ? t.speakerId : "";
|
|
176
|
-
return n ?
|
|
177
|
-
},
|
|
178
|
-
return /* @__PURE__ */
|
|
179
|
+
return n ? S.get(n) : void 0;
|
|
180
|
+
}, k = (e) => e.venueId ? x.get(e.venueId) : void 0;
|
|
181
|
+
return /* @__PURE__ */ w("div", {
|
|
179
182
|
className: "space-y-5",
|
|
180
183
|
children: [
|
|
181
|
-
/* @__PURE__ */
|
|
184
|
+
/* @__PURE__ */ w("div", {
|
|
182
185
|
className: "flex items-center justify-between gap-3",
|
|
183
|
-
children: [/* @__PURE__ */
|
|
186
|
+
children: [/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("h2", {
|
|
184
187
|
className: "text-lg font-semibold text-text-primary",
|
|
185
188
|
children: "Agenda & Sessions"
|
|
186
|
-
}), /* @__PURE__ */
|
|
189
|
+
}), /* @__PURE__ */ C("p", {
|
|
187
190
|
className: "text-sm text-text-secondary",
|
|
188
191
|
children: "A multi-track schedule of everything happening on the day."
|
|
189
|
-
})] }), /* @__PURE__ */
|
|
192
|
+
})] }), /* @__PURE__ */ w(L, {
|
|
190
193
|
type: "button",
|
|
191
194
|
size: "sm",
|
|
192
195
|
onClick: () => a(`/events/${t}/sessions/create`),
|
|
193
|
-
children: [/* @__PURE__ */
|
|
196
|
+
children: [/* @__PURE__ */ C(M, { className: "h-4 w-4" }), "New Session"]
|
|
194
197
|
})]
|
|
195
198
|
}),
|
|
196
|
-
|
|
199
|
+
c ? /* @__PURE__ */ C(B, { className: "h-64 w-full rounded-card" }) : b.length === 0 ? /* @__PURE__ */ C(z, {
|
|
197
200
|
illustration: "empty-data",
|
|
198
201
|
title: "No sessions yet.",
|
|
199
202
|
description: "Build the agenda by adding your first session.",
|
|
200
|
-
action: /* @__PURE__ */
|
|
203
|
+
action: /* @__PURE__ */ w(L, {
|
|
201
204
|
type: "button",
|
|
202
205
|
size: "sm",
|
|
203
206
|
onClick: () => a(`/events/${t}/sessions/create`),
|
|
204
|
-
children: [/* @__PURE__ */
|
|
207
|
+
children: [/* @__PURE__ */ C(M, { className: "h-4 w-4" }), "New Session"]
|
|
205
208
|
}),
|
|
206
209
|
className: "py-10"
|
|
207
|
-
}) : /* @__PURE__ */
|
|
210
|
+
}) : /* @__PURE__ */ C("div", {
|
|
208
211
|
className: "space-y-8",
|
|
209
|
-
children: E.map((e) => /* @__PURE__ */
|
|
212
|
+
children: E.map((e) => /* @__PURE__ */ w("section", {
|
|
210
213
|
className: "space-y-3",
|
|
211
214
|
children: [
|
|
212
|
-
/* @__PURE__ */
|
|
215
|
+
/* @__PURE__ */ C("h3", {
|
|
213
216
|
className: "text-sm font-semibold text-text-primary",
|
|
214
217
|
children: (/* @__PURE__ */ new Date(`${e.key}T00:00:00`)).toLocaleDateString(void 0, {
|
|
215
218
|
weekday: "long",
|
|
@@ -217,36 +220,36 @@ function X({ eventId: t }) {
|
|
|
217
220
|
day: "numeric"
|
|
218
221
|
})
|
|
219
222
|
}),
|
|
220
|
-
/* @__PURE__ */
|
|
223
|
+
/* @__PURE__ */ C("div", {
|
|
221
224
|
className: "hidden overflow-x-auto rounded-card border border-border-seam md:block",
|
|
222
|
-
children: /* @__PURE__ */
|
|
225
|
+
children: /* @__PURE__ */ w("div", {
|
|
223
226
|
className: "grid min-w-max",
|
|
224
227
|
style: { gridTemplateColumns: `88px repeat(${e.tracks.length}, minmax(200px, 1fr))` },
|
|
225
228
|
children: [
|
|
226
|
-
/* @__PURE__ */
|
|
227
|
-
e.tracks.map((e) => /* @__PURE__ */
|
|
229
|
+
/* @__PURE__ */ C("div", { className: "sticky left-0 z-10 border-b border-border-seam bg-bg-sunken px-3 py-2.5" }),
|
|
230
|
+
e.tracks.map((e) => /* @__PURE__ */ C("div", {
|
|
228
231
|
className: "border-b border-l border-border-seam bg-bg-sunken px-3 py-2.5 text-center text-sm font-semibold text-text-primary",
|
|
229
|
-
children: /* @__PURE__ */
|
|
232
|
+
children: /* @__PURE__ */ w("span", {
|
|
230
233
|
className: "inline-flex items-center gap-2",
|
|
231
|
-
children: [/* @__PURE__ */
|
|
234
|
+
children: [/* @__PURE__ */ C("span", {
|
|
232
235
|
className: "h-2 w-2 rounded-full",
|
|
233
236
|
style: { background: T.get(e) },
|
|
234
237
|
"aria-hidden": "true"
|
|
235
238
|
}), e]
|
|
236
239
|
})
|
|
237
240
|
}, e)),
|
|
238
|
-
e.hourRange.map((n) => /* @__PURE__ */
|
|
241
|
+
e.hourRange.map((n) => /* @__PURE__ */ w("div", {
|
|
239
242
|
className: "contents",
|
|
240
|
-
children: [/* @__PURE__ */
|
|
243
|
+
children: [/* @__PURE__ */ C("div", {
|
|
241
244
|
className: "sticky left-0 z-10 border-b border-border-subtle bg-bg-surface px-3 py-3 text-xs font-medium text-text-muted",
|
|
242
|
-
children:
|
|
243
|
-
}), e.tracks.map((r) => /* @__PURE__ */
|
|
245
|
+
children: q(n)
|
|
246
|
+
}), e.tracks.map((r) => /* @__PURE__ */ C("div", {
|
|
244
247
|
className: "space-y-2 border-b border-l border-border-subtle p-2 align-top",
|
|
245
|
-
children: e.sessions.filter((e) => (e.track?.trim() ||
|
|
248
|
+
children: e.sessions.filter((e) => (e.track?.trim() || X) === r && new Date(e.startsAt).getHours() === n).map((e) => /* @__PURE__ */ C(Q, {
|
|
246
249
|
session: e,
|
|
247
|
-
color: T.get(r) ??
|
|
250
|
+
color: T.get(r) ?? f[0],
|
|
248
251
|
speakerName: O(e),
|
|
249
|
-
roomName:
|
|
252
|
+
roomName: k(e),
|
|
250
253
|
onEdit: () => a(`/events/${t}/sessions/${e.id}/edit`),
|
|
251
254
|
onDelete: () => D(e)
|
|
252
255
|
}, e.id))
|
|
@@ -255,15 +258,15 @@ function X({ eventId: t }) {
|
|
|
255
258
|
]
|
|
256
259
|
})
|
|
257
260
|
}),
|
|
258
|
-
/* @__PURE__ */
|
|
261
|
+
/* @__PURE__ */ C("ul", {
|
|
259
262
|
className: "space-y-2.5 md:hidden",
|
|
260
263
|
children: e.sessions.map((e) => {
|
|
261
|
-
let n = e.track?.trim() ||
|
|
262
|
-
return /* @__PURE__ */
|
|
264
|
+
let n = e.track?.trim() || X;
|
|
265
|
+
return /* @__PURE__ */ C("li", { children: /* @__PURE__ */ C(Q, {
|
|
263
266
|
session: e,
|
|
264
|
-
color: T.get(n) ??
|
|
267
|
+
color: T.get(n) ?? f[0],
|
|
265
268
|
speakerName: O(e),
|
|
266
|
-
roomName:
|
|
269
|
+
roomName: k(e) ?? n,
|
|
267
270
|
onEdit: () => a(`/events/${t}/sessions/${e.id}/edit`),
|
|
268
271
|
onDelete: () => D(e)
|
|
269
272
|
}) }, e.id);
|
|
@@ -272,80 +275,80 @@ function X({ eventId: t }) {
|
|
|
272
275
|
]
|
|
273
276
|
}, e.key))
|
|
274
277
|
}),
|
|
275
|
-
/* @__PURE__ */
|
|
278
|
+
/* @__PURE__ */ C(g, {
|
|
276
279
|
offset: o.offset,
|
|
277
280
|
limit: o.limit,
|
|
278
|
-
loadedCount:
|
|
279
|
-
total:
|
|
281
|
+
loadedCount: b.length,
|
|
282
|
+
total: v,
|
|
280
283
|
onPrev: o.prevPage,
|
|
281
284
|
onNext: o.nextPage,
|
|
282
285
|
itemLabel: "sessions",
|
|
283
|
-
loading:
|
|
286
|
+
loading: c
|
|
284
287
|
})
|
|
285
288
|
]
|
|
286
289
|
});
|
|
287
290
|
}
|
|
288
|
-
function
|
|
289
|
-
let { navigate: t } = e(), n =
|
|
291
|
+
function te() {
|
|
292
|
+
let { navigate: t } = e(), n = _(), { data: i, loading: o, refetch: s } = l({
|
|
290
293
|
limit: n.limit,
|
|
291
294
|
offset: n.offset
|
|
292
|
-
}), [
|
|
293
|
-
let t = await
|
|
295
|
+
}), [c] = a(), u = i?.speakers?.total ?? 0, d = i?.speakers?.items ?? [], f = async (e) => {
|
|
296
|
+
let t = await c({ variables: { id: e.id } });
|
|
294
297
|
if (t.error) throw r.error("Could not delete speaker", t.error.message), t.error;
|
|
295
298
|
if (!t.data?.deleteSpeaker) throw r.error("Could not delete speaker", "The server did not confirm the change."), Error("delete-unconfirmed");
|
|
296
299
|
r.success("Speaker deleted", e.fullName), await s();
|
|
297
300
|
};
|
|
298
|
-
return /* @__PURE__ */
|
|
301
|
+
return /* @__PURE__ */ w("div", {
|
|
299
302
|
className: "space-y-4",
|
|
300
303
|
children: [
|
|
301
|
-
/* @__PURE__ */
|
|
304
|
+
/* @__PURE__ */ w("div", {
|
|
302
305
|
className: "flex items-center justify-between gap-3",
|
|
303
|
-
children: [/* @__PURE__ */
|
|
306
|
+
children: [/* @__PURE__ */ C("h2", {
|
|
304
307
|
className: "text-lg font-semibold text-text-primary",
|
|
305
308
|
children: "Speakers"
|
|
306
|
-
}), /* @__PURE__ */
|
|
309
|
+
}), /* @__PURE__ */ w("div", {
|
|
307
310
|
className: "flex items-center gap-2",
|
|
308
|
-
children: [/* @__PURE__ */
|
|
311
|
+
children: [/* @__PURE__ */ C(L, {
|
|
309
312
|
type: "button",
|
|
310
313
|
variant: "outline",
|
|
311
314
|
size: "sm",
|
|
312
315
|
onClick: () => t("/speakers"),
|
|
313
316
|
children: "Manage speakers"
|
|
314
|
-
}), /* @__PURE__ */
|
|
317
|
+
}), /* @__PURE__ */ w(L, {
|
|
315
318
|
type: "button",
|
|
316
319
|
size: "sm",
|
|
317
320
|
onClick: () => t("/speakers/create"),
|
|
318
|
-
children: [/* @__PURE__ */
|
|
321
|
+
children: [/* @__PURE__ */ C(M, { className: "h-4 w-4" }), "New Speaker"]
|
|
319
322
|
})]
|
|
320
323
|
})]
|
|
321
324
|
}),
|
|
322
|
-
o ? /* @__PURE__ */
|
|
325
|
+
o ? /* @__PURE__ */ C(B, { className: "h-40 w-full rounded-card" }) : d.length === 0 ? /* @__PURE__ */ C(z, {
|
|
323
326
|
illustration: "empty-people",
|
|
324
327
|
title: "No speakers yet.",
|
|
325
328
|
description: "Add speakers so you can assign them to sessions.",
|
|
326
329
|
className: "py-8"
|
|
327
|
-
}) : /* @__PURE__ */
|
|
330
|
+
}) : /* @__PURE__ */ C("ul", {
|
|
328
331
|
className: "grid grid-cols-1 gap-2.5 sm:grid-cols-2",
|
|
329
|
-
children: d.map((e) => /* @__PURE__ */
|
|
332
|
+
children: d.map((e) => /* @__PURE__ */ C("li", {
|
|
330
333
|
className: "rounded-card border border-border-seam bg-bg-surface p-3 transition-[box-shadow,border-color] duration-200 hover:border-border-strong hover:shadow-elevation-1",
|
|
331
|
-
children: /* @__PURE__ */
|
|
334
|
+
children: /* @__PURE__ */ w("div", {
|
|
332
335
|
className: "flex items-center justify-between gap-3",
|
|
333
|
-
children: [/* @__PURE__ */
|
|
336
|
+
children: [/* @__PURE__ */ w("div", {
|
|
334
337
|
className: "flex min-w-0 items-center gap-3",
|
|
335
|
-
children: [/* @__PURE__ */
|
|
338
|
+
children: [/* @__PURE__ */ C("span", {
|
|
336
339
|
className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-accent-wash text-sm font-semibold text-action-primary-bg",
|
|
337
340
|
children: e.fullName.slice(0, 1).toUpperCase()
|
|
338
|
-
}), /* @__PURE__ */
|
|
341
|
+
}), /* @__PURE__ */ w("div", {
|
|
339
342
|
className: "min-w-0",
|
|
340
|
-
children: [/* @__PURE__ */
|
|
343
|
+
children: [/* @__PURE__ */ C("p", {
|
|
341
344
|
className: "truncate font-medium text-text-primary",
|
|
342
345
|
children: e.fullName
|
|
343
|
-
}), /* @__PURE__ */
|
|
346
|
+
}), /* @__PURE__ */ C("p", {
|
|
344
347
|
className: "mt-0.5 truncate text-sm text-text-secondary",
|
|
345
348
|
children: [e.title, e.organization].filter(Boolean).join(" • ") || "Speaker"
|
|
346
349
|
})]
|
|
347
350
|
})]
|
|
348
|
-
}), /* @__PURE__ */
|
|
351
|
+
}), /* @__PURE__ */ C(h, {
|
|
349
352
|
ariaLabel: `Speaker actions for ${e.fullName}`,
|
|
350
353
|
entityName: e.fullName,
|
|
351
354
|
deleteLabel: "Delete speaker",
|
|
@@ -355,7 +358,7 @@ function Z() {
|
|
|
355
358
|
})
|
|
356
359
|
}, e.id))
|
|
357
360
|
}),
|
|
358
|
-
/* @__PURE__ */
|
|
361
|
+
/* @__PURE__ */ C(g, {
|
|
359
362
|
offset: n.offset,
|
|
360
363
|
limit: n.limit,
|
|
361
364
|
loadedCount: d.length,
|
|
@@ -368,100 +371,113 @@ function Z() {
|
|
|
368
371
|
]
|
|
369
372
|
});
|
|
370
373
|
}
|
|
371
|
-
function
|
|
372
|
-
let { navigate: n } = e(), i =
|
|
374
|
+
function ne({ eventId: t }) {
|
|
375
|
+
let { navigate: n } = e(), i = _(), { data: a, loading: s, refetch: c } = u({
|
|
373
376
|
eventId: t,
|
|
374
377
|
limit: i.limit,
|
|
375
378
|
offset: i.offset
|
|
376
|
-
}), [
|
|
377
|
-
let t = await
|
|
379
|
+
}), [l] = o(), d = a?.ticketTypes?.total ?? 0, f = a?.ticketTypes?.items ?? [], p = async (e) => {
|
|
380
|
+
let t = await l({ variables: { id: e.id } });
|
|
378
381
|
if (t.error) throw r.error("Could not delete ticket type", t.error.message), t.error;
|
|
379
382
|
if (!t.data?.deleteTicketType) throw r.error("Could not delete ticket type", "The server did not confirm the change."), Error("delete-unconfirmed");
|
|
380
383
|
r.success("Ticket type deleted"), await c();
|
|
381
384
|
};
|
|
382
|
-
return /* @__PURE__ */
|
|
385
|
+
return /* @__PURE__ */ w("div", {
|
|
383
386
|
className: "space-y-4",
|
|
384
387
|
children: [
|
|
385
|
-
/* @__PURE__ */
|
|
388
|
+
/* @__PURE__ */ w("div", {
|
|
386
389
|
className: "flex items-center justify-between gap-3",
|
|
387
|
-
children: [/* @__PURE__ */
|
|
390
|
+
children: [/* @__PURE__ */ C("h2", {
|
|
388
391
|
className: "text-lg font-semibold text-text-primary",
|
|
389
392
|
children: "Ticket Types"
|
|
390
|
-
}), /* @__PURE__ */
|
|
393
|
+
}), /* @__PURE__ */ w(L, {
|
|
391
394
|
type: "button",
|
|
392
395
|
size: "sm",
|
|
393
396
|
onClick: () => n(`/events/${t}/tickets/create`),
|
|
394
|
-
children: [/* @__PURE__ */
|
|
397
|
+
children: [/* @__PURE__ */ C(M, { className: "h-4 w-4" }), "New Ticket Type"]
|
|
395
398
|
})]
|
|
396
399
|
}),
|
|
397
|
-
s ? /* @__PURE__ */
|
|
400
|
+
s ? /* @__PURE__ */ C(B, { className: "h-40 w-full rounded-card" }) : f.length === 0 ? /* @__PURE__ */ C(z, {
|
|
398
401
|
illustration: "empty-data",
|
|
399
402
|
title: "No ticket types yet.",
|
|
400
403
|
description: "Add a ticket type so attendees can register.",
|
|
401
404
|
className: "py-8"
|
|
402
|
-
}) : /* @__PURE__ */
|
|
405
|
+
}) : /* @__PURE__ */ C("ul", {
|
|
403
406
|
className: "space-y-3",
|
|
404
407
|
children: f.map((e) => {
|
|
405
408
|
let r = e.capacity != null && e.capacity > 0, i = r ? Math.min(100, Math.round(e.soldCount / e.capacity * 100)) : 0, a = i >= 90;
|
|
406
|
-
return /* @__PURE__ */
|
|
409
|
+
return /* @__PURE__ */ w("li", {
|
|
407
410
|
className: "rounded-card border border-border-seam bg-bg-surface p-4 transition-[box-shadow,border-color] duration-200 hover:border-border-strong hover:shadow-elevation-1",
|
|
408
|
-
children: [/* @__PURE__ */
|
|
411
|
+
children: [/* @__PURE__ */ w("div", {
|
|
409
412
|
className: "flex items-start justify-between gap-3",
|
|
410
|
-
children: [/* @__PURE__ */
|
|
413
|
+
children: [/* @__PURE__ */ w("div", {
|
|
411
414
|
className: "min-w-0",
|
|
412
|
-
children: [
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
415
|
+
children: [
|
|
416
|
+
/* @__PURE__ */ C("p", {
|
|
417
|
+
className: "truncate font-medium text-text-primary",
|
|
418
|
+
children: e.name
|
|
419
|
+
}),
|
|
420
|
+
/* @__PURE__ */ w("p", {
|
|
421
|
+
className: "mt-0.5 text-sm text-text-secondary",
|
|
422
|
+
children: [
|
|
423
|
+
e.price,
|
|
424
|
+
" ",
|
|
425
|
+
e.currency
|
|
426
|
+
]
|
|
427
|
+
}),
|
|
428
|
+
/* @__PURE__ */ w("p", {
|
|
429
|
+
className: "mt-1 flex items-center gap-1.5 text-xs text-text-muted",
|
|
430
|
+
children: [/* @__PURE__ */ C(E, {
|
|
431
|
+
className: "h-3.5 w-3.5 shrink-0",
|
|
432
|
+
"aria-hidden": "true"
|
|
433
|
+
}), /* @__PURE__ */ w("span", {
|
|
434
|
+
className: "truncate",
|
|
435
|
+
children: ["Sales window · ", v(e.salesStartAt ?? "", e.salesEndAt ?? "")]
|
|
436
|
+
})]
|
|
437
|
+
})
|
|
438
|
+
]
|
|
439
|
+
}), /* @__PURE__ */ w("div", {
|
|
424
440
|
className: "flex shrink-0 items-center gap-2",
|
|
425
|
-
children: [/* @__PURE__ */
|
|
441
|
+
children: [/* @__PURE__ */ C(I, {
|
|
426
442
|
variant: e.isActive ? "success" : "warning",
|
|
427
443
|
className: "uppercase",
|
|
428
444
|
children: e.isActive ? "Active" : "Inactive"
|
|
429
|
-
}), /* @__PURE__ */
|
|
445
|
+
}), /* @__PURE__ */ C(h, {
|
|
430
446
|
ariaLabel: `Ticket actions for ${e.name}`,
|
|
431
447
|
entityName: e.name,
|
|
432
448
|
deleteLabel: "Delete ticket type",
|
|
433
449
|
onEdit: () => n(`/events/${t}/tickets/${e.id}/edit`),
|
|
434
|
-
onDelete: () =>
|
|
450
|
+
onDelete: () => p(e)
|
|
435
451
|
})]
|
|
436
452
|
})]
|
|
437
|
-
}), /* @__PURE__ */
|
|
453
|
+
}), /* @__PURE__ */ w("div", {
|
|
438
454
|
className: "mt-3",
|
|
439
|
-
children: [/* @__PURE__ */
|
|
455
|
+
children: [/* @__PURE__ */ w("div", {
|
|
440
456
|
className: "flex items-center justify-between text-xs text-text-secondary",
|
|
441
|
-
children: [/* @__PURE__ */
|
|
442
|
-
/* @__PURE__ */
|
|
457
|
+
children: [/* @__PURE__ */ w("span", { children: [
|
|
458
|
+
/* @__PURE__ */ C("span", {
|
|
443
459
|
className: "font-medium tabular-nums text-text-primary",
|
|
444
460
|
children: e.soldCount.toLocaleString()
|
|
445
461
|
}),
|
|
446
462
|
" ",
|
|
447
463
|
"sold",
|
|
448
|
-
r ? /* @__PURE__ */
|
|
464
|
+
r ? /* @__PURE__ */ w(S, { children: [
|
|
449
465
|
" / ",
|
|
450
466
|
e.capacity.toLocaleString(),
|
|
451
467
|
" capacity"
|
|
452
468
|
] }) : " • unlimited capacity"
|
|
453
|
-
] }), r ? /* @__PURE__ */
|
|
469
|
+
] }), r ? /* @__PURE__ */ w("span", {
|
|
454
470
|
className: a ? "font-medium text-text-primary" : "",
|
|
455
471
|
children: [i, "%"]
|
|
456
472
|
}) : null]
|
|
457
|
-
}), r ? /* @__PURE__ */
|
|
473
|
+
}), r ? /* @__PURE__ */ C("div", {
|
|
458
474
|
className: "mt-1.5 h-2 overflow-hidden rounded-full bg-bg-sunken",
|
|
459
475
|
role: "progressbar",
|
|
460
476
|
"aria-valuenow": i,
|
|
461
477
|
"aria-valuemin": 0,
|
|
462
478
|
"aria-valuemax": 100,
|
|
463
479
|
"aria-label": `${e.name} sold`,
|
|
464
|
-
children: /* @__PURE__ */
|
|
480
|
+
children: /* @__PURE__ */ C("div", {
|
|
465
481
|
className: "h-full rounded-full transition-[width] duration-500",
|
|
466
482
|
style: {
|
|
467
483
|
width: `${i}%`,
|
|
@@ -473,7 +489,7 @@ function Q({ eventId: t }) {
|
|
|
473
489
|
}, e.id);
|
|
474
490
|
})
|
|
475
491
|
}),
|
|
476
|
-
/* @__PURE__ */
|
|
492
|
+
/* @__PURE__ */ C(g, {
|
|
477
493
|
offset: i.offset,
|
|
478
494
|
limit: i.limit,
|
|
479
495
|
loadedCount: f.length,
|
|
@@ -487,332 +503,354 @@ function Q({ eventId: t }) {
|
|
|
487
503
|
});
|
|
488
504
|
}
|
|
489
505
|
function $({ label: e, value: t, icon: n }) {
|
|
490
|
-
return /* @__PURE__ */
|
|
506
|
+
return /* @__PURE__ */ w(R, {
|
|
491
507
|
treatment: "metric",
|
|
492
508
|
className: "p-4",
|
|
493
509
|
children: [
|
|
494
|
-
/* @__PURE__ */
|
|
510
|
+
/* @__PURE__ */ C("span", {
|
|
495
511
|
className: "flex h-8 w-8 items-center justify-center rounded-button bg-accent-wash text-action-primary-bg",
|
|
496
|
-
children: /* @__PURE__ */
|
|
512
|
+
children: /* @__PURE__ */ C(n, { className: "h-4 w-4" })
|
|
497
513
|
}),
|
|
498
|
-
/* @__PURE__ */
|
|
514
|
+
/* @__PURE__ */ C("div", {
|
|
499
515
|
className: "mt-2.5 text-xl font-semibold tabular-nums text-text-primary",
|
|
500
516
|
children: t
|
|
501
517
|
}),
|
|
502
|
-
/* @__PURE__ */
|
|
518
|
+
/* @__PURE__ */ C("div", {
|
|
503
519
|
className: "mt-0.5 text-xs text-text-muted",
|
|
504
520
|
children: e
|
|
505
521
|
})
|
|
506
522
|
]
|
|
507
523
|
});
|
|
508
524
|
}
|
|
509
|
-
function
|
|
510
|
-
let { id: t = "" } =
|
|
525
|
+
function re() {
|
|
526
|
+
let { id: t = "" } = x(), { navigate: r } = e(), { data: i, loading: a } = s(t), { data: o } = n(Y, {
|
|
511
527
|
variables: {
|
|
512
528
|
eventId: t,
|
|
513
529
|
limit: 200
|
|
514
530
|
},
|
|
515
531
|
skip: !t
|
|
516
|
-
}), { data:
|
|
532
|
+
}), { data: l } = u({
|
|
517
533
|
eventId: t,
|
|
518
534
|
limit: 100,
|
|
519
535
|
offset: 0
|
|
520
|
-
}), { data:
|
|
536
|
+
}), { data: f } = d({
|
|
521
537
|
limit: 100,
|
|
522
538
|
offset: 0
|
|
523
|
-
}),
|
|
524
|
-
|
|
539
|
+
}), { data: g } = c({
|
|
540
|
+
eventId: t,
|
|
541
|
+
limit: 1,
|
|
542
|
+
offset: 0
|
|
543
|
+
}), { onDeleteEvent: _ } = m(), [v, S] = b("overview"), D = async () => {
|
|
544
|
+
await _(t, { onSuccess: () => r("/events") });
|
|
545
|
+
}, j = i?.event ?? null, M = y(() => {
|
|
546
|
+
let e = j?.metadata ?? {};
|
|
525
547
|
return typeof e.venueId == "string" ? e.venueId : "";
|
|
526
|
-
}, [
|
|
527
|
-
return a ? /* @__PURE__ */
|
|
548
|
+
}, [j]), K = y(() => M ? f?.venues?.items?.find((e) => e.id === M)?.name : void 0, [M, f]), q = o?.eventSessions?.total ?? 0, J = g?.registrations?.total ?? 0, X = y(() => (l?.ticketTypes?.items ?? []).reduce((e, t) => e + (t.soldCount ?? 0), 0), [l]);
|
|
549
|
+
return a ? /* @__PURE__ */ w("div", {
|
|
528
550
|
className: "space-y-4 p-6",
|
|
529
551
|
children: [
|
|
530
|
-
/* @__PURE__ */
|
|
531
|
-
/* @__PURE__ */
|
|
532
|
-
/* @__PURE__ */
|
|
552
|
+
/* @__PURE__ */ C(B, { className: "h-8 w-40" }),
|
|
553
|
+
/* @__PURE__ */ C(B, { className: "h-24 w-full rounded-card" }),
|
|
554
|
+
/* @__PURE__ */ C(B, { className: "h-64 w-full rounded-card" })
|
|
533
555
|
]
|
|
534
|
-
}) :
|
|
556
|
+
}) : j ? /* @__PURE__ */ w("div", {
|
|
535
557
|
className: "space-y-6 p-6",
|
|
536
558
|
children: [
|
|
537
|
-
/* @__PURE__ */
|
|
559
|
+
/* @__PURE__ */ w("div", {
|
|
538
560
|
className: "flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between",
|
|
539
|
-
children: [/* @__PURE__ */
|
|
561
|
+
children: [/* @__PURE__ */ w("div", {
|
|
540
562
|
className: "space-y-3",
|
|
541
|
-
children: [/* @__PURE__ */
|
|
563
|
+
children: [/* @__PURE__ */ w(L, {
|
|
542
564
|
type: "button",
|
|
543
565
|
variant: "ghost",
|
|
544
566
|
size: "sm",
|
|
545
567
|
onClick: () => r("/events"),
|
|
546
|
-
children: [/* @__PURE__ */
|
|
547
|
-
}), /* @__PURE__ */
|
|
568
|
+
children: [/* @__PURE__ */ C(T, { className: "h-4 w-4" }), "Back to Events"]
|
|
569
|
+
}), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ w("div", {
|
|
548
570
|
className: "flex flex-wrap items-center gap-3",
|
|
549
|
-
children: [/* @__PURE__ */
|
|
571
|
+
children: [/* @__PURE__ */ C("h1", {
|
|
550
572
|
className: "text-2xl font-bold text-text-primary",
|
|
551
|
-
children:
|
|
552
|
-
}), /* @__PURE__ */
|
|
553
|
-
variant:
|
|
573
|
+
children: j.name
|
|
574
|
+
}), /* @__PURE__ */ C(I, {
|
|
575
|
+
variant: G(j.status),
|
|
554
576
|
className: "uppercase",
|
|
555
|
-
children:
|
|
577
|
+
children: j.status
|
|
556
578
|
})]
|
|
557
|
-
}), /* @__PURE__ */
|
|
579
|
+
}), /* @__PURE__ */ w("p", {
|
|
558
580
|
className: "mt-1 flex flex-wrap items-center gap-x-4 gap-y-1 text-sm text-text-secondary",
|
|
559
|
-
children: [/* @__PURE__ */
|
|
581
|
+
children: [/* @__PURE__ */ w("span", {
|
|
560
582
|
className: "flex items-center gap-1.5",
|
|
561
583
|
children: [
|
|
562
|
-
/* @__PURE__ */
|
|
563
|
-
|
|
584
|
+
/* @__PURE__ */ C(E, { className: "h-4 w-4 text-text-muted" }),
|
|
585
|
+
p(j.startAt),
|
|
564
586
|
" — ",
|
|
565
|
-
|
|
587
|
+
p(j.endAt)
|
|
566
588
|
]
|
|
567
|
-
}),
|
|
589
|
+
}), K ? /* @__PURE__ */ w("span", {
|
|
568
590
|
className: "flex items-center gap-1.5",
|
|
569
|
-
children: [/* @__PURE__ */
|
|
591
|
+
children: [/* @__PURE__ */ C(A, { className: "h-4 w-4 text-text-muted" }), K]
|
|
570
592
|
}) : null]
|
|
571
593
|
})] })]
|
|
572
|
-
}), /* @__PURE__ */
|
|
594
|
+
}), /* @__PURE__ */ w("div", {
|
|
573
595
|
className: "flex flex-wrap gap-2",
|
|
574
|
-
children: [
|
|
575
|
-
type
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
596
|
+
children: [
|
|
597
|
+
j.type === "VIRTUAL" || j.type === "HYBRID" ? /* @__PURE__ */ w(L, {
|
|
598
|
+
type: "button",
|
|
599
|
+
variant: "outline",
|
|
600
|
+
onClick: () => r(`/events/${t}/virtual`),
|
|
601
|
+
children: [/* @__PURE__ */ C(F, { className: "h-4 w-4" }), "Virtual Session"]
|
|
602
|
+
}) : null,
|
|
603
|
+
/* @__PURE__ */ w(L, {
|
|
604
|
+
type: "button",
|
|
605
|
+
onClick: () => r(`/events/${t}/edit`),
|
|
606
|
+
children: [/* @__PURE__ */ C(O, { className: "h-4 w-4" }), "Edit Event"]
|
|
607
|
+
}),
|
|
608
|
+
/* @__PURE__ */ C(h, {
|
|
609
|
+
ariaLabel: "Event actions",
|
|
610
|
+
entityName: j.name,
|
|
611
|
+
deleteLabel: "Delete event",
|
|
612
|
+
onDelete: D
|
|
613
|
+
})
|
|
614
|
+
]
|
|
584
615
|
})]
|
|
585
616
|
}),
|
|
586
|
-
/* @__PURE__ */
|
|
617
|
+
/* @__PURE__ */ w("div", {
|
|
587
618
|
className: "grid grid-cols-2 gap-3 sm:grid-cols-4",
|
|
588
619
|
children: [
|
|
589
|
-
/* @__PURE__ */
|
|
620
|
+
/* @__PURE__ */ C($, {
|
|
590
621
|
label: "Capacity",
|
|
591
|
-
value: (
|
|
592
|
-
icon:
|
|
622
|
+
value: (j.capacity ?? 0).toLocaleString(),
|
|
623
|
+
icon: P
|
|
593
624
|
}),
|
|
594
|
-
/* @__PURE__ */
|
|
625
|
+
/* @__PURE__ */ C($, {
|
|
595
626
|
label: "Sessions",
|
|
596
|
-
value:
|
|
597
|
-
icon:
|
|
627
|
+
value: q.toLocaleString(),
|
|
628
|
+
icon: E
|
|
598
629
|
}),
|
|
599
|
-
/* @__PURE__ */
|
|
630
|
+
/* @__PURE__ */ C($, {
|
|
600
631
|
label: "Ticket types",
|
|
601
|
-
value: (
|
|
602
|
-
icon:
|
|
632
|
+
value: (l?.ticketTypes?.total ?? 0).toLocaleString(),
|
|
633
|
+
icon: N
|
|
603
634
|
}),
|
|
604
|
-
/* @__PURE__ */
|
|
635
|
+
/* @__PURE__ */ C($, {
|
|
605
636
|
label: "Tickets sold",
|
|
606
|
-
value:
|
|
607
|
-
icon:
|
|
637
|
+
value: X.toLocaleString(),
|
|
638
|
+
icon: k
|
|
608
639
|
})
|
|
609
640
|
]
|
|
610
641
|
}),
|
|
611
|
-
/* @__PURE__ */
|
|
612
|
-
value:
|
|
613
|
-
onValueChange:
|
|
642
|
+
/* @__PURE__ */ w(V, {
|
|
643
|
+
value: v,
|
|
644
|
+
onValueChange: S,
|
|
614
645
|
children: [
|
|
615
|
-
/* @__PURE__ */
|
|
616
|
-
/* @__PURE__ */
|
|
646
|
+
/* @__PURE__ */ w(U, { children: [
|
|
647
|
+
/* @__PURE__ */ C(W, {
|
|
617
648
|
value: "overview",
|
|
618
649
|
children: "Overview"
|
|
619
650
|
}),
|
|
620
|
-
/* @__PURE__ */
|
|
651
|
+
/* @__PURE__ */ C(W, {
|
|
621
652
|
value: "sessions",
|
|
622
653
|
children: "Sessions"
|
|
623
654
|
}),
|
|
624
|
-
/* @__PURE__ */
|
|
655
|
+
/* @__PURE__ */ C(W, {
|
|
625
656
|
value: "speakers",
|
|
626
657
|
children: "Speakers"
|
|
627
658
|
}),
|
|
628
|
-
/* @__PURE__ */
|
|
659
|
+
/* @__PURE__ */ C(W, {
|
|
629
660
|
value: "tickets",
|
|
630
661
|
children: "Tickets"
|
|
631
662
|
})
|
|
632
663
|
] }),
|
|
633
|
-
/* @__PURE__ */
|
|
664
|
+
/* @__PURE__ */ C(H, {
|
|
634
665
|
value: "overview",
|
|
635
666
|
className: "mt-4",
|
|
636
|
-
children: /* @__PURE__ */
|
|
667
|
+
children: /* @__PURE__ */ w("div", {
|
|
637
668
|
className: "grid grid-cols-1 gap-4 lg:grid-cols-3",
|
|
638
|
-
children: [/* @__PURE__ */
|
|
669
|
+
children: [/* @__PURE__ */ w(R, {
|
|
639
670
|
treatment: "plain",
|
|
640
671
|
className: "border-border-seam p-5 lg:col-span-2",
|
|
641
672
|
children: [
|
|
642
|
-
/* @__PURE__ */
|
|
673
|
+
/* @__PURE__ */ C("h2", {
|
|
643
674
|
className: "text-lg font-semibold text-text-primary",
|
|
644
675
|
children: "Event Details"
|
|
645
676
|
}),
|
|
646
|
-
/* @__PURE__ */
|
|
677
|
+
/* @__PURE__ */ w("dl", {
|
|
647
678
|
className: "mt-4 space-y-4 text-sm",
|
|
648
679
|
children: [
|
|
649
|
-
/* @__PURE__ */
|
|
680
|
+
/* @__PURE__ */ w("div", {
|
|
650
681
|
className: "grid grid-cols-1 gap-1 sm:grid-cols-[140px_1fr]",
|
|
651
|
-
children: [/* @__PURE__ */
|
|
682
|
+
children: [/* @__PURE__ */ C("dt", {
|
|
652
683
|
className: "text-text-muted",
|
|
653
684
|
children: "Dates"
|
|
654
|
-
}), /* @__PURE__ */
|
|
685
|
+
}), /* @__PURE__ */ w("dd", {
|
|
655
686
|
className: "text-text-primary",
|
|
656
687
|
children: [
|
|
657
|
-
|
|
688
|
+
p(j.startAt),
|
|
658
689
|
" — ",
|
|
659
|
-
|
|
690
|
+
p(j.endAt)
|
|
660
691
|
]
|
|
661
692
|
})]
|
|
662
693
|
}),
|
|
663
|
-
/* @__PURE__ */
|
|
694
|
+
/* @__PURE__ */ w("div", {
|
|
664
695
|
className: "grid grid-cols-1 gap-1 sm:grid-cols-[140px_1fr]",
|
|
665
|
-
children: [/* @__PURE__ */
|
|
696
|
+
children: [/* @__PURE__ */ C("dt", {
|
|
666
697
|
className: "text-text-muted",
|
|
667
698
|
children: "Venue"
|
|
668
|
-
}), /* @__PURE__ */
|
|
699
|
+
}), /* @__PURE__ */ C("dd", {
|
|
669
700
|
className: "text-text-primary",
|
|
670
|
-
children:
|
|
701
|
+
children: K ? /* @__PURE__ */ C(L, {
|
|
671
702
|
type: "button",
|
|
672
703
|
variant: "link",
|
|
673
704
|
size: "sm",
|
|
674
705
|
className: "h-auto p-0",
|
|
675
|
-
onClick: () => r(`/venues/${
|
|
676
|
-
children:
|
|
706
|
+
onClick: () => r(`/venues/${M}`),
|
|
707
|
+
children: K
|
|
677
708
|
}) : "No venue assigned"
|
|
678
709
|
})]
|
|
679
710
|
}),
|
|
680
|
-
/* @__PURE__ */
|
|
711
|
+
/* @__PURE__ */ w("div", {
|
|
681
712
|
className: "grid grid-cols-1 gap-1 sm:grid-cols-[140px_1fr]",
|
|
682
|
-
children: [/* @__PURE__ */
|
|
713
|
+
children: [/* @__PURE__ */ C("dt", {
|
|
683
714
|
className: "text-text-muted",
|
|
684
715
|
children: "Capacity"
|
|
685
|
-
}), /* @__PURE__ */
|
|
716
|
+
}), /* @__PURE__ */ w("dd", {
|
|
686
717
|
className: "text-text-primary",
|
|
687
|
-
children: [(
|
|
718
|
+
children: [(j.capacity ?? 0).toLocaleString(), " attendees"]
|
|
688
719
|
})]
|
|
689
720
|
}),
|
|
690
|
-
/* @__PURE__ */
|
|
721
|
+
/* @__PURE__ */ w("div", {
|
|
691
722
|
className: "grid grid-cols-1 gap-1 sm:grid-cols-[140px_1fr]",
|
|
692
|
-
children: [/* @__PURE__ */
|
|
723
|
+
children: [/* @__PURE__ */ C("dt", {
|
|
693
724
|
className: "text-text-muted",
|
|
694
725
|
children: "Type"
|
|
695
|
-
}), /* @__PURE__ */
|
|
726
|
+
}), /* @__PURE__ */ C("dd", {
|
|
696
727
|
className: "capitalize text-text-primary",
|
|
697
|
-
children:
|
|
728
|
+
children: j.type.toLowerCase().replace(/_/g, " ")
|
|
698
729
|
})]
|
|
699
730
|
}),
|
|
700
|
-
/* @__PURE__ */
|
|
731
|
+
/* @__PURE__ */ w("div", {
|
|
701
732
|
className: "grid grid-cols-1 gap-1 sm:grid-cols-[140px_1fr]",
|
|
702
|
-
children: [/* @__PURE__ */
|
|
733
|
+
children: [/* @__PURE__ */ C("dt", {
|
|
703
734
|
className: "text-text-muted",
|
|
704
735
|
children: "Timezone"
|
|
705
|
-
}), /* @__PURE__ */
|
|
736
|
+
}), /* @__PURE__ */ C("dd", {
|
|
706
737
|
className: "text-text-primary",
|
|
707
|
-
children:
|
|
738
|
+
children: j.timezone
|
|
708
739
|
})]
|
|
709
740
|
}),
|
|
710
|
-
/* @__PURE__ */
|
|
741
|
+
/* @__PURE__ */ w("div", {
|
|
711
742
|
className: "grid grid-cols-1 gap-1 sm:grid-cols-[140px_1fr]",
|
|
712
|
-
children: [/* @__PURE__ */
|
|
743
|
+
children: [/* @__PURE__ */ C("dt", {
|
|
713
744
|
className: "text-text-muted",
|
|
714
745
|
children: "Visibility"
|
|
715
|
-
}), /* @__PURE__ */
|
|
746
|
+
}), /* @__PURE__ */ C("dd", {
|
|
716
747
|
className: "capitalize text-text-primary",
|
|
717
|
-
children:
|
|
748
|
+
children: j.visibility
|
|
718
749
|
})]
|
|
719
750
|
}),
|
|
720
|
-
/* @__PURE__ */
|
|
751
|
+
/* @__PURE__ */ w("div", {
|
|
721
752
|
className: "grid grid-cols-1 gap-1 sm:grid-cols-[140px_1fr]",
|
|
722
|
-
children: [/* @__PURE__ */
|
|
753
|
+
children: [/* @__PURE__ */ C("dt", {
|
|
723
754
|
className: "text-text-muted",
|
|
724
755
|
children: "Description"
|
|
725
|
-
}), /* @__PURE__ */
|
|
756
|
+
}), /* @__PURE__ */ C("dd", {
|
|
726
757
|
className: "text-text-secondary",
|
|
727
|
-
children:
|
|
758
|
+
children: j.description?.trim() ? j.description : "No description provided."
|
|
728
759
|
})]
|
|
729
760
|
})
|
|
730
761
|
]
|
|
731
762
|
}),
|
|
732
|
-
/* @__PURE__ */
|
|
763
|
+
/* @__PURE__ */ C("div", {
|
|
733
764
|
className: "mt-5",
|
|
734
|
-
children: /* @__PURE__ */
|
|
765
|
+
children: /* @__PURE__ */ w(L, {
|
|
735
766
|
type: "button",
|
|
736
767
|
variant: "outline",
|
|
737
768
|
size: "sm",
|
|
738
769
|
onClick: () => r(`/events/${t}/edit`),
|
|
739
|
-
children: [/* @__PURE__ */
|
|
770
|
+
children: [/* @__PURE__ */ C(O, { className: "h-4 w-4" }), "Edit event details"]
|
|
740
771
|
})
|
|
741
772
|
})
|
|
742
773
|
]
|
|
743
|
-
}), /* @__PURE__ */
|
|
774
|
+
}), /* @__PURE__ */ w(R, {
|
|
744
775
|
treatment: "glass",
|
|
745
776
|
glow: !0,
|
|
746
777
|
className: "p-5",
|
|
747
|
-
children: [/* @__PURE__ */
|
|
778
|
+
children: [/* @__PURE__ */ C("h2", {
|
|
748
779
|
className: "text-lg font-semibold text-text-primary",
|
|
749
780
|
children: "Key Metrics"
|
|
750
|
-
}), /* @__PURE__ */
|
|
781
|
+
}), /* @__PURE__ */ w("dl", {
|
|
751
782
|
className: "mt-4 space-y-4",
|
|
752
783
|
children: [
|
|
753
|
-
/* @__PURE__ */
|
|
784
|
+
/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("dt", {
|
|
785
|
+
className: "text-sm text-text-secondary",
|
|
786
|
+
children: "Registrations"
|
|
787
|
+
}), /* @__PURE__ */ C("dd", {
|
|
788
|
+
className: "text-2xl font-semibold tabular-nums text-text-primary",
|
|
789
|
+
children: J.toLocaleString()
|
|
790
|
+
})] }),
|
|
791
|
+
/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("dt", {
|
|
754
792
|
className: "text-sm text-text-secondary",
|
|
755
793
|
children: "Capacity"
|
|
756
|
-
}), /* @__PURE__ */
|
|
794
|
+
}), /* @__PURE__ */ C("dd", {
|
|
757
795
|
className: "text-2xl font-semibold tabular-nums text-text-primary",
|
|
758
|
-
children: (
|
|
796
|
+
children: (j.capacity ?? 0).toLocaleString()
|
|
759
797
|
})] }),
|
|
760
|
-
/* @__PURE__ */
|
|
798
|
+
/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("dt", {
|
|
761
799
|
className: "text-sm text-text-secondary",
|
|
762
800
|
children: "Sessions"
|
|
763
|
-
}), /* @__PURE__ */
|
|
801
|
+
}), /* @__PURE__ */ C("dd", {
|
|
764
802
|
className: "text-2xl font-semibold tabular-nums text-text-primary",
|
|
765
|
-
children:
|
|
803
|
+
children: q.toLocaleString()
|
|
766
804
|
})] }),
|
|
767
|
-
/* @__PURE__ */
|
|
805
|
+
/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("dt", {
|
|
768
806
|
className: "text-sm text-text-secondary",
|
|
769
807
|
children: "Ticket types"
|
|
770
|
-
}), /* @__PURE__ */
|
|
808
|
+
}), /* @__PURE__ */ C("dd", {
|
|
771
809
|
className: "text-2xl font-semibold tabular-nums text-text-primary",
|
|
772
|
-
children: (
|
|
810
|
+
children: (l?.ticketTypes?.total ?? 0).toLocaleString()
|
|
773
811
|
})] }),
|
|
774
|
-
/* @__PURE__ */
|
|
812
|
+
/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("dt", {
|
|
775
813
|
className: "text-sm text-text-secondary",
|
|
776
814
|
children: "Tickets sold"
|
|
777
|
-
}), /* @__PURE__ */
|
|
815
|
+
}), /* @__PURE__ */ C("dd", {
|
|
778
816
|
className: "text-2xl font-semibold tabular-nums text-text-primary",
|
|
779
|
-
children:
|
|
817
|
+
children: X.toLocaleString()
|
|
780
818
|
})] })
|
|
781
819
|
]
|
|
782
820
|
})]
|
|
783
821
|
})]
|
|
784
822
|
})
|
|
785
823
|
}),
|
|
786
|
-
/* @__PURE__ */
|
|
824
|
+
/* @__PURE__ */ C(H, {
|
|
787
825
|
value: "sessions",
|
|
788
826
|
className: "mt-4",
|
|
789
|
-
children: /* @__PURE__ */
|
|
827
|
+
children: /* @__PURE__ */ C(ee, { eventId: t })
|
|
790
828
|
}),
|
|
791
|
-
/* @__PURE__ */
|
|
829
|
+
/* @__PURE__ */ C(H, {
|
|
792
830
|
value: "speakers",
|
|
793
831
|
className: "mt-4",
|
|
794
|
-
children: /* @__PURE__ */
|
|
832
|
+
children: /* @__PURE__ */ C(te, {})
|
|
795
833
|
}),
|
|
796
|
-
/* @__PURE__ */
|
|
834
|
+
/* @__PURE__ */ C(H, {
|
|
797
835
|
value: "tickets",
|
|
798
836
|
className: "mt-4",
|
|
799
|
-
children: /* @__PURE__ */
|
|
837
|
+
children: /* @__PURE__ */ C(ne, { eventId: t })
|
|
800
838
|
})
|
|
801
839
|
]
|
|
802
840
|
})
|
|
803
841
|
]
|
|
804
|
-
}) : /* @__PURE__ */
|
|
842
|
+
}) : /* @__PURE__ */ w("div", {
|
|
805
843
|
className: "space-y-4 p-6",
|
|
806
|
-
children: [/* @__PURE__ */
|
|
844
|
+
children: [/* @__PURE__ */ w(L, {
|
|
807
845
|
type: "button",
|
|
808
846
|
variant: "ghost",
|
|
809
847
|
size: "sm",
|
|
810
848
|
onClick: () => r("/events"),
|
|
811
|
-
children: [/* @__PURE__ */
|
|
812
|
-
}), /* @__PURE__ */
|
|
849
|
+
children: [/* @__PURE__ */ C(T, { className: "h-4 w-4" }), "Back to Events"]
|
|
850
|
+
}), /* @__PURE__ */ C(R, {
|
|
813
851
|
treatment: "plain",
|
|
814
852
|
className: "border-border-seam",
|
|
815
|
-
children: /* @__PURE__ */
|
|
853
|
+
children: /* @__PURE__ */ C(z, {
|
|
816
854
|
illustration: "empty-search",
|
|
817
855
|
title: "Event not found.",
|
|
818
856
|
description: "This event may have been removed or is outside your current scope."
|
|
@@ -821,6 +859,6 @@ function ee() {
|
|
|
821
859
|
});
|
|
822
860
|
}
|
|
823
861
|
//#endregion
|
|
824
|
-
export {
|
|
862
|
+
export { re as default };
|
|
825
863
|
|
|
826
864
|
//# sourceMappingURL=EventDetailPage.js.map
|