@burdenoff/microfe-technospam 2026.709.3 → 2026.709.4
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/index.js +4 -4
- package/dist/technospam/TechnoSpamRoutes.d.ts.map +1 -1
- package/dist/technospam/TechnoSpamRoutes.js +100 -74
- package/dist/technospam/TechnoSpamRoutes.js.map +1 -1
- package/dist/technospam/components/PageLayout.d.ts.map +1 -1
- package/dist/technospam/components/PageLayout.js +26 -23
- package/dist/technospam/components/PageLayout.js.map +1 -1
- package/dist/technospam/components/TagInput.d.ts +18 -0
- package/dist/technospam/components/TagInput.d.ts.map +1 -0
- package/dist/technospam/components/TagInput.js +58 -0
- package/dist/technospam/components/TagInput.js.map +1 -0
- package/dist/technospam/components/TagStrip.d.ts +12 -0
- package/dist/technospam/components/TagStrip.d.ts.map +1 -0
- package/dist/technospam/components/TagStrip.js +20 -0
- package/dist/technospam/components/TagStrip.js.map +1 -0
- package/dist/technospam/components/index.d.ts +2 -0
- package/dist/technospam/components/index.d.ts.map +1 -1
- package/dist/technospam/components/index.js +2 -0
- package/dist/technospam/hooks/useNativeControls.d.ts +27 -0
- package/dist/technospam/hooks/useNativeControls.d.ts.map +1 -0
- package/dist/technospam/hooks/useNativeControls.js +18 -0
- package/dist/technospam/hooks/useNativeControls.js.map +1 -0
- package/dist/technospam/hooks/useTechnoSpamAnalytics.d.ts +1 -1
- package/dist/technospam/hooks/useTechnoSpamAnalytics.d.ts.map +1 -1
- package/dist/technospam/hooks/useTechnoSpamAnalytics.js.map +1 -1
- package/dist/technospam/hooks/useTechnoSpamPageView.d.ts +14 -0
- package/dist/technospam/hooks/useTechnoSpamPageView.d.ts.map +1 -0
- package/dist/technospam/hooks/useTechnoSpamPageView.js +26 -0
- package/dist/technospam/hooks/useTechnoSpamPageView.js.map +1 -0
- package/dist/technospam/index.js +1 -1
- package/dist/technospam/pages/AdminAdminDashboardPagePage.d.ts.map +1 -1
- package/dist/technospam/pages/AdminAdminDashboardPagePage.js +408 -399
- package/dist/technospam/pages/AdminAdminDashboardPagePage.js.map +1 -1
- package/dist/technospam/pages/ApplicationsProblemDetailsPagePage.d.ts.map +1 -1
- package/dist/technospam/pages/ApplicationsProblemDetailsPagePage.js +50 -55
- package/dist/technospam/pages/ApplicationsProblemDetailsPagePage.js.map +1 -1
- package/dist/technospam/pages/ApplicationsProblemsPagePage.js +25 -25
- package/dist/technospam/pages/CoursesCourseDetailsPagePage.d.ts.map +1 -1
- package/dist/technospam/pages/CoursesCourseDetailsPagePage.js +142 -144
- package/dist/technospam/pages/CoursesCourseDetailsPagePage.js.map +1 -1
- package/dist/technospam/pages/CoursesCoursesPagePage.js +30 -30
- package/dist/technospam/pages/HackathonsHackathonsPagePage.js +29 -29
- package/dist/technospam/pages/MentorshipMentorProfilePagePage.js +54 -54
- package/dist/technospam/pages/MentorshipMentorsPagePage.js +61 -61
- package/dist/technospam/pages/MentorshipSessionsPagePage.js +42 -42
- package/package.json +2 -2
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { useTechnoSpam as e, useTechnoSpamNavigate as t } from "../providers/TechnoSpamProvider.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
2
|
+
import { useTechnoSpamAnalytics as n } from "../hooks/useTechnoSpamAnalytics.js";
|
|
3
|
+
import { cn as r } from "../utils/cn.js";
|
|
4
|
+
import { PageLayout as i } from "../components/PageLayout.js";
|
|
5
|
+
import { StatCard as a } from "../components/StatCard.js";
|
|
6
|
+
import { coverGradient as o, topicIcon as s } from "../components/MediaCover.js";
|
|
7
|
+
import { formatMoney as c } from "../utils/format.js";
|
|
8
|
+
import { LoadMore as l } from "../components/LoadMore.js";
|
|
9
|
+
import { EmptyView as u, ErrorView as d, LoadingGrid as f } from "../components/StateViews.js";
|
|
9
10
|
import "../components/index.js";
|
|
10
|
-
import { notify as
|
|
11
|
-
import { pageArg as
|
|
12
|
-
import { useTechnoSpamAnalytics as _ } from "../hooks/useTechnoSpamAnalytics.js";
|
|
11
|
+
import { notify as p } from "../lib/toast.js";
|
|
12
|
+
import { pageArg as m, useBecomeMentor as h, useMentorsQuery as g, usePageLimit as _ } from "../api/technospamApi.js";
|
|
13
13
|
import { createElement as v, useMemo as y, useState as b } from "react";
|
|
14
14
|
import { Award as x, MessageSquare as S, Search as C, Sparkles as w, Star as T, UserPlus as E, Users as D, X as O } from "lucide-react";
|
|
15
15
|
import { jsx as k, jsxs as A } from "react/jsx-runtime";
|
|
@@ -19,8 +19,8 @@ function I({ mentor: e, size: t = "md" }) {
|
|
|
19
19
|
return /* @__PURE__ */ A("div", {
|
|
20
20
|
className: "relative shrink-0",
|
|
21
21
|
children: [/* @__PURE__ */ k("span", {
|
|
22
|
-
className:
|
|
23
|
-
children: v(
|
|
22
|
+
className: r("flex items-center justify-center rounded-full bg-gradient-to-br text-white shadow-md ring-1 ring-white/15", t === "lg" ? "h-20 w-20" : "h-16 w-16", o(e.headline)),
|
|
23
|
+
children: v(s(e.expertise.join(" ") || e.headline), {
|
|
24
24
|
size: t === "lg" ? 32 : 26,
|
|
25
25
|
strokeWidth: 1.7
|
|
26
26
|
})
|
|
@@ -95,7 +95,7 @@ function L({ mentor: e, onOpen: t }) {
|
|
|
95
95
|
className: "px-2 py-2.5",
|
|
96
96
|
children: [/* @__PURE__ */ k("div", {
|
|
97
97
|
className: "text-sm font-semibold text-text-primary",
|
|
98
|
-
children:
|
|
98
|
+
children: c(e.hourlyRate, e.currency)
|
|
99
99
|
}), /* @__PURE__ */ k("div", {
|
|
100
100
|
className: "text-[11px] text-text-muted",
|
|
101
101
|
children: "/ hr"
|
|
@@ -113,8 +113,8 @@ function L({ mentor: e, onOpen: t }) {
|
|
|
113
113
|
]
|
|
114
114
|
});
|
|
115
115
|
}
|
|
116
|
-
function R({ onClose: e, onDone: t, workspaceId:
|
|
117
|
-
let [
|
|
116
|
+
function R({ onClose: e, onDone: t, workspaceId: r }) {
|
|
117
|
+
let [i, a] = b(""), [o, s] = b(""), [c, l] = b(""), [u, d] = b(""), [f, m] = b("USD"), [g, { loading: _ }] = h(), { emit: v } = n(), y = i.trim().length > 0 && !_;
|
|
118
118
|
return /* @__PURE__ */ A(N, {
|
|
119
119
|
className: "mb-6 p-5",
|
|
120
120
|
children: [/* @__PURE__ */ A("div", {
|
|
@@ -149,8 +149,8 @@ function R({ onClose: e, onDone: t, workspaceId: n }) {
|
|
|
149
149
|
})]
|
|
150
150
|
}), /* @__PURE__ */ k(P, {
|
|
151
151
|
placeholder: "e.g. Staff Engineer · Distributed systems & career growth",
|
|
152
|
-
value:
|
|
153
|
-
onChange: (e) =>
|
|
152
|
+
value: i,
|
|
153
|
+
onChange: (e) => a(e.target.value)
|
|
154
154
|
})] }),
|
|
155
155
|
/* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("label", {
|
|
156
156
|
className: "mb-1.5 block text-sm font-medium text-text-primary",
|
|
@@ -158,8 +158,8 @@ function R({ onClose: e, onDone: t, workspaceId: n }) {
|
|
|
158
158
|
}), /* @__PURE__ */ k(F, {
|
|
159
159
|
rows: 3,
|
|
160
160
|
placeholder: "Tell mentees about your experience and how you can help.",
|
|
161
|
-
value:
|
|
162
|
-
onChange: (e) =>
|
|
161
|
+
value: o,
|
|
162
|
+
onChange: (e) => s(e.target.value)
|
|
163
163
|
})] }),
|
|
164
164
|
/* @__PURE__ */ A("div", { children: [
|
|
165
165
|
/* @__PURE__ */ k("label", {
|
|
@@ -168,8 +168,8 @@ function R({ onClose: e, onDone: t, workspaceId: n }) {
|
|
|
168
168
|
}),
|
|
169
169
|
/* @__PURE__ */ k(P, {
|
|
170
170
|
placeholder: "React, System design, Career coaching",
|
|
171
|
-
value:
|
|
172
|
-
onChange: (e) =>
|
|
171
|
+
value: c,
|
|
172
|
+
onChange: (e) => l(e.target.value)
|
|
173
173
|
}),
|
|
174
174
|
/* @__PURE__ */ k("p", {
|
|
175
175
|
className: "mt-1 text-xs text-text-muted",
|
|
@@ -187,8 +187,8 @@ function R({ onClose: e, onDone: t, workspaceId: n }) {
|
|
|
187
187
|
type: "number",
|
|
188
188
|
min: 0,
|
|
189
189
|
placeholder: "0",
|
|
190
|
-
value:
|
|
191
|
-
onChange: (e) =>
|
|
190
|
+
value: u,
|
|
191
|
+
onChange: (e) => d(e.target.value)
|
|
192
192
|
}),
|
|
193
193
|
/* @__PURE__ */ k("p", {
|
|
194
194
|
className: "mt-1 text-xs text-text-muted",
|
|
@@ -199,8 +199,8 @@ function R({ onClose: e, onDone: t, workspaceId: n }) {
|
|
|
199
199
|
children: "Currency"
|
|
200
200
|
}), /* @__PURE__ */ k(P, {
|
|
201
201
|
placeholder: "USD",
|
|
202
|
-
value:
|
|
203
|
-
onChange: (e) =>
|
|
202
|
+
value: f,
|
|
203
|
+
onChange: (e) => m(e.target.value)
|
|
204
204
|
})] })]
|
|
205
205
|
}),
|
|
206
206
|
/* @__PURE__ */ A("div", {
|
|
@@ -208,29 +208,29 @@ function R({ onClose: e, onDone: t, workspaceId: n }) {
|
|
|
208
208
|
children: [/* @__PURE__ */ A(M, {
|
|
209
209
|
onClick: async () => {
|
|
210
210
|
if (!y) return;
|
|
211
|
-
let e = { headline:
|
|
212
|
-
|
|
213
|
-
let
|
|
214
|
-
|
|
215
|
-
let
|
|
216
|
-
!Number.isNaN(
|
|
217
|
-
let
|
|
218
|
-
|
|
219
|
-
workspaceId:
|
|
220
|
-
entityId:
|
|
211
|
+
let e = { headline: i.trim() };
|
|
212
|
+
o.trim() && (e.bio = o.trim());
|
|
213
|
+
let n = c.split(",").map((e) => e.trim()).filter(Boolean);
|
|
214
|
+
n.length && (e.expertise = n);
|
|
215
|
+
let a = Number.parseInt(u, 10);
|
|
216
|
+
!Number.isNaN(a) && a >= 0 && (e.hourlyRate = a), f.trim() && (e.currency = f.trim().toUpperCase()), v("technospam.mentor.become_mentor_clicked", { workspaceId: r });
|
|
217
|
+
let s = await g({ variables: { input: e } });
|
|
218
|
+
s.data?.tecBecomeMentor && (v("technospam.mentor.became_mentor", {
|
|
219
|
+
workspaceId: r,
|
|
220
|
+
entityId: s.data.tecBecomeMentor.id,
|
|
221
221
|
entityType: "TEC_MENTOR"
|
|
222
|
-
}),
|
|
222
|
+
}), p.success("Mentor profile created", "Your profile is pending review."), t());
|
|
223
223
|
},
|
|
224
224
|
disabled: !y,
|
|
225
225
|
children: [
|
|
226
226
|
/* @__PURE__ */ k(E, { size: 16 }),
|
|
227
227
|
" ",
|
|
228
|
-
|
|
228
|
+
_ ? "Submitting…" : "Submit profile"
|
|
229
229
|
]
|
|
230
230
|
}), /* @__PURE__ */ k(M, {
|
|
231
231
|
variant: "outline",
|
|
232
232
|
onClick: e,
|
|
233
|
-
disabled:
|
|
233
|
+
disabled: _,
|
|
234
234
|
children: "Cancel"
|
|
235
235
|
})]
|
|
236
236
|
})
|
|
@@ -239,20 +239,20 @@ function R({ onClose: e, onDone: t, workspaceId: n }) {
|
|
|
239
239
|
});
|
|
240
240
|
}
|
|
241
241
|
function z() {
|
|
242
|
-
let
|
|
242
|
+
let r = t(), { currentUser: o, workspaceId: s } = e(), { emit: c } = n(), [p, h] = b(""), [v, O] = b(!1), { limit: j, more: F } = _(), { data: I, loading: z, error: B, refetch: V } = g({
|
|
243
243
|
status: "ACTIVE",
|
|
244
|
-
pagination:
|
|
245
|
-
}), H = I?.tecListMentors.items ?? [], U = I?.tecListMentors.pageInfo.hasMore ?? !1, W =
|
|
246
|
-
let e =
|
|
244
|
+
pagination: m(j)
|
|
245
|
+
}), H = I?.tecListMentors.items ?? [], U = I?.tecListMentors.pageInfo.hasMore ?? !1, W = o?.id, G = !!(W && H.some((e) => e.userId === W)), K = y(() => {
|
|
246
|
+
let e = p.trim().toLowerCase();
|
|
247
247
|
return e ? H.filter((t) => t.headline.toLowerCase().includes(e) || t.expertise.some((t) => t.toLowerCase().includes(e))) : H;
|
|
248
|
-
}, [H,
|
|
249
|
-
return /* @__PURE__ */ A(
|
|
248
|
+
}, [H, p]), q = H.filter((e) => e.isAcceptingMentees).length, J = H.reduce((e, t) => e + t.sessionsCount, 0), Y = H.filter((e) => e.ratingAvg > 0), X = Y.length ? (Y.reduce((e, t) => e + t.ratingAvg, 0) / Y.length).toFixed(1) : "—";
|
|
249
|
+
return /* @__PURE__ */ A(i, {
|
|
250
250
|
hero: !0,
|
|
251
251
|
title: "Find a Mentor",
|
|
252
252
|
description: "Connect with experienced builders for 1:1 guidance, code review, and career coaching.",
|
|
253
253
|
actions: /* @__PURE__ */ A(M, {
|
|
254
254
|
variant: "outline",
|
|
255
|
-
onClick: () =>
|
|
255
|
+
onClick: () => r("/mentorship/sessions-page"),
|
|
256
256
|
children: [/* @__PURE__ */ k(S, { size: 16 }), " My sessions"]
|
|
257
257
|
}),
|
|
258
258
|
children: [
|
|
@@ -273,30 +273,30 @@ function z() {
|
|
|
273
273
|
onDone: () => {
|
|
274
274
|
O(!1), V();
|
|
275
275
|
},
|
|
276
|
-
workspaceId:
|
|
276
|
+
workspaceId: s
|
|
277
277
|
}) : null,
|
|
278
278
|
/* @__PURE__ */ A("div", {
|
|
279
279
|
className: "mb-5 grid grid-cols-2 gap-3 sm:grid-cols-4",
|
|
280
280
|
children: [
|
|
281
|
-
/* @__PURE__ */ k(
|
|
281
|
+
/* @__PURE__ */ k(a, {
|
|
282
282
|
label: "Mentors",
|
|
283
283
|
value: H.length,
|
|
284
284
|
icon: D,
|
|
285
285
|
tone: "blue"
|
|
286
286
|
}),
|
|
287
|
-
/* @__PURE__ */ k(
|
|
287
|
+
/* @__PURE__ */ k(a, {
|
|
288
288
|
label: "Accepting mentees",
|
|
289
289
|
value: q,
|
|
290
290
|
icon: w,
|
|
291
291
|
tone: "green"
|
|
292
292
|
}),
|
|
293
|
-
/* @__PURE__ */ k(
|
|
293
|
+
/* @__PURE__ */ k(a, {
|
|
294
294
|
label: "Avg rating",
|
|
295
295
|
value: X,
|
|
296
296
|
icon: T,
|
|
297
297
|
tone: "amber"
|
|
298
298
|
}),
|
|
299
|
-
/* @__PURE__ */ k(
|
|
299
|
+
/* @__PURE__ */ k(a, {
|
|
300
300
|
label: "Total sessions",
|
|
301
301
|
value: J,
|
|
302
302
|
icon: S,
|
|
@@ -314,22 +314,22 @@ function z() {
|
|
|
314
314
|
}), /* @__PURE__ */ k(P, {
|
|
315
315
|
className: "pl-9",
|
|
316
316
|
placeholder: "Search by headline or expertise…",
|
|
317
|
-
value:
|
|
318
|
-
onChange: (e) =>
|
|
317
|
+
value: p,
|
|
318
|
+
onChange: (e) => h(e.target.value)
|
|
319
319
|
})]
|
|
320
320
|
}), !G && !v ? /* @__PURE__ */ A(M, {
|
|
321
321
|
onClick: () => O(!0),
|
|
322
322
|
children: [/* @__PURE__ */ k(E, { size: 16 }), " Become a mentor"]
|
|
323
323
|
}) : null]
|
|
324
324
|
}),
|
|
325
|
-
z && !H.length ? /* @__PURE__ */ k(
|
|
325
|
+
z && !H.length ? /* @__PURE__ */ k(f, {}) : B ? /* @__PURE__ */ k(d, {
|
|
326
326
|
title: "Couldn't load mentors",
|
|
327
327
|
error: B
|
|
328
|
-
}) : K.length === 0 ? /* @__PURE__ */ k(
|
|
328
|
+
}) : K.length === 0 ? /* @__PURE__ */ k(u, {
|
|
329
329
|
icon: /* @__PURE__ */ k(D, { size: 26 }),
|
|
330
|
-
title:
|
|
331
|
-
description:
|
|
332
|
-
action: !
|
|
330
|
+
title: p ? "No matching mentors" : "No mentors yet",
|
|
331
|
+
description: p ? "Try a different search term." : "Active mentors will appear here. TechnoSpam is pre-launch — be one of the first to sign up.",
|
|
332
|
+
action: !p && !G ? /* @__PURE__ */ k(M, {
|
|
333
333
|
onClick: () => O(!0),
|
|
334
334
|
children: "Become a mentor"
|
|
335
335
|
}) : void 0
|
|
@@ -338,15 +338,15 @@ function z() {
|
|
|
338
338
|
children: K.map((e) => /* @__PURE__ */ k(L, {
|
|
339
339
|
mentor: e,
|
|
340
340
|
onOpen: () => {
|
|
341
|
-
|
|
342
|
-
workspaceId:
|
|
341
|
+
c("technospam.mentor.viewed", {
|
|
342
|
+
workspaceId: s,
|
|
343
343
|
entityId: e.id,
|
|
344
344
|
entityType: "TEC_MENTOR"
|
|
345
|
-
}),
|
|
345
|
+
}), r(`/mentorship/mentor-profile-page?id=${e.id}`);
|
|
346
346
|
}
|
|
347
347
|
}, e.id))
|
|
348
348
|
}),
|
|
349
|
-
/* @__PURE__ */ k(
|
|
349
|
+
/* @__PURE__ */ k(l, {
|
|
350
350
|
hasMore: U,
|
|
351
351
|
loading: z,
|
|
352
352
|
onClick: F
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { useTechnoSpam as e, useTechnoSpamNavigate as t } from "../providers/TechnoSpamProvider.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
2
|
+
import { useTechnoSpamAnalytics as n } from "../hooks/useTechnoSpamAnalytics.js";
|
|
3
|
+
import { PageLayout as r } from "../components/PageLayout.js";
|
|
4
|
+
import { StatCard as i } from "../components/StatCard.js";
|
|
5
|
+
import { formatDateTime as a, formatDuration as o } from "../utils/format.js";
|
|
6
|
+
import { StatusBadge as s } from "../components/StatusBadge.js";
|
|
7
|
+
import { EmptyView as c, ErrorView as l, LoadingRows as u } from "../components/StateViews.js";
|
|
7
8
|
import "../components/index.js";
|
|
8
|
-
import { notify as
|
|
9
|
-
import { useCancelSession as
|
|
10
|
-
import { useTechnoSpamAnalytics as g } from "../hooks/useTechnoSpamAnalytics.js";
|
|
9
|
+
import { notify as d } from "../lib/toast.js";
|
|
10
|
+
import { useCancelSession as f, useCompleteSession as p, useConfirmSession as m, useMentorsQuery as h, useSessionsQuery as g } from "../api/technospamApi.js";
|
|
11
11
|
import { useState as _ } from "react";
|
|
12
12
|
import { CalendarClock as v, Check as y, CheckCircle2 as b, Clock as x, MessageSquare as S, Users as C, Video as w, X as T } from "lucide-react";
|
|
13
13
|
import { jsx as E, jsxs as D } from "react/jsx-runtime";
|
|
14
14
|
import { Button as O, GlassCard as k, Input as A, Tabs as j, TabsList as M, TabsTrigger as N } from "@burdenoff/fe-libs/ui";
|
|
15
15
|
//#region src/technospam/pages/MentorshipSessionsPagePage.tsx
|
|
16
16
|
var P = new Set(["REQUESTED", "CONFIRMED"]);
|
|
17
|
-
function F({ session: e, showMentor: t, isMentor: n, onCancel: r, onConfirm:
|
|
17
|
+
function F({ session: e, showMentor: t, isMentor: n, onCancel: r, onConfirm: i, onComplete: c, busy: l }) {
|
|
18
18
|
let u = P.has(e.status), [d, f] = _("none"), [p, m] = _(""), [h, g] = _("5"), [S, C] = _("");
|
|
19
19
|
return /* @__PURE__ */ D(k, {
|
|
20
20
|
className: "flex flex-col gap-3 p-4 transition-all duration-200 hover:-translate-y-0.5 hover:shadow-md",
|
|
@@ -36,7 +36,7 @@ function F({ session: e, showMentor: t, isMentor: n, onCancel: r, onConfirm: s,
|
|
|
36
36
|
className: "truncate text-sm font-semibold text-text-primary",
|
|
37
37
|
children: e.topic
|
|
38
38
|
}),
|
|
39
|
-
/* @__PURE__ */ E(
|
|
39
|
+
/* @__PURE__ */ E(s, { status: e.status }),
|
|
40
40
|
e.rating ? /* @__PURE__ */ D("span", {
|
|
41
41
|
className: "text-xs text-text-muted",
|
|
42
42
|
children: [
|
|
@@ -58,14 +58,14 @@ function F({ session: e, showMentor: t, isMentor: n, onCancel: r, onConfirm: s,
|
|
|
58
58
|
children: [
|
|
59
59
|
/* @__PURE__ */ E(v, { size: 13 }),
|
|
60
60
|
" ",
|
|
61
|
-
|
|
61
|
+
a(e.scheduledAt)
|
|
62
62
|
]
|
|
63
63
|
}), /* @__PURE__ */ D("span", {
|
|
64
64
|
className: "inline-flex items-center gap-1",
|
|
65
65
|
children: [
|
|
66
66
|
/* @__PURE__ */ E(x, { size: 13 }),
|
|
67
67
|
" ",
|
|
68
|
-
|
|
68
|
+
o(e.durationMinutes)
|
|
69
69
|
]
|
|
70
70
|
})]
|
|
71
71
|
}),
|
|
@@ -115,7 +115,7 @@ function F({ session: e, showMentor: t, isMentor: n, onCancel: r, onConfirm: s,
|
|
|
115
115
|
}), /* @__PURE__ */ E(O, {
|
|
116
116
|
size: "sm",
|
|
117
117
|
onClick: async () => {
|
|
118
|
-
await
|
|
118
|
+
await i(e.id, p.trim()), f("none"), m("");
|
|
119
119
|
},
|
|
120
120
|
disabled: l,
|
|
121
121
|
children: "Confirm session"
|
|
@@ -156,14 +156,14 @@ function F({ session: e, showMentor: t, isMentor: n, onCancel: r, onConfirm: s,
|
|
|
156
156
|
]
|
|
157
157
|
});
|
|
158
158
|
}
|
|
159
|
-
function I({ loading: e, error: t, sessions: n, showMentor: r, emptyTitle: i, emptyDescription: a, emptyAction: o, isMentor:
|
|
160
|
-
return e && n.length === 0 ? /* @__PURE__ */ E(
|
|
159
|
+
function I({ loading: e, error: t, sessions: n, showMentor: r, emptyTitle: i, emptyDescription: a, emptyAction: o, isMentor: s, onCancel: d, onConfirm: f, onComplete: p, busyId: m }) {
|
|
160
|
+
return e && n.length === 0 ? /* @__PURE__ */ E(u, {
|
|
161
161
|
count: 3,
|
|
162
162
|
height: "h-24"
|
|
163
|
-
}) : t ? /* @__PURE__ */ E(
|
|
163
|
+
}) : t ? /* @__PURE__ */ E(l, {
|
|
164
164
|
title: "Couldn't load sessions",
|
|
165
165
|
error: t
|
|
166
|
-
}) : n.length === 0 ? /* @__PURE__ */ E(
|
|
166
|
+
}) : n.length === 0 ? /* @__PURE__ */ E(c, {
|
|
167
167
|
icon: /* @__PURE__ */ E(S, { size: 26 }),
|
|
168
168
|
title: i,
|
|
169
169
|
description: a,
|
|
@@ -173,7 +173,7 @@ function I({ loading: e, error: t, sessions: n, showMentor: r, emptyTitle: i, em
|
|
|
173
173
|
children: [...n].sort((e, t) => new Date(t.scheduledAt).getTime() - new Date(e.scheduledAt).getTime()).map((e) => /* @__PURE__ */ E(F, {
|
|
174
174
|
session: e,
|
|
175
175
|
showMentor: r,
|
|
176
|
-
isMentor:
|
|
176
|
+
isMentor: s,
|
|
177
177
|
onCancel: d,
|
|
178
178
|
onConfirm: f,
|
|
179
179
|
onComplete: p,
|
|
@@ -182,18 +182,18 @@ function I({ loading: e, error: t, sessions: n, showMentor: r, emptyTitle: i, em
|
|
|
182
182
|
});
|
|
183
183
|
}
|
|
184
184
|
function L() {
|
|
185
|
-
let
|
|
186
|
-
T(e),
|
|
187
|
-
workspaceId:
|
|
185
|
+
let a = t(), { currentUser: o, workspaceId: s } = e(), { emit: l } = n(), [y, x] = _("mentee"), [w, T] = _(null), k = o?.id, A = g(k ? { menteeId: k } : {}), P = h({}), F = P.data?.tecListMentors.items.find((e) => e.userId === o?.id), L = F?.id, R = g(L ? { mentorId: L } : {}), [z] = f(), [B] = m(), [V] = p(), H = k ? A.data?.tecListSessions ?? [] : [], U = L ? R.data?.tecListSessions ?? [] : [], W = [...H, ...U], G = W.filter((e) => e.status === "REQUESTED" || e.status === "CONFIRMED").length, K = W.filter((e) => e.status === "COMPLETED").length, q = async (e) => {
|
|
186
|
+
T(e), l("technospam.session.cancel_clicked", {
|
|
187
|
+
workspaceId: s,
|
|
188
188
|
entityId: e,
|
|
189
189
|
entityType: "TEC_MENTOR_SESSION"
|
|
190
190
|
});
|
|
191
191
|
try {
|
|
192
|
-
(await z({ variables: { id: e } })).data?.tecCancelSession && (
|
|
193
|
-
workspaceId:
|
|
192
|
+
(await z({ variables: { id: e } })).data?.tecCancelSession && (l("technospam.session.cancelled", {
|
|
193
|
+
workspaceId: s,
|
|
194
194
|
entityId: e,
|
|
195
195
|
entityType: "TEC_MENTOR_SESSION"
|
|
196
|
-
}),
|
|
196
|
+
}), d.success("Session cancelled", "The session has been cancelled."));
|
|
197
197
|
} finally {
|
|
198
198
|
T(null);
|
|
199
199
|
}
|
|
@@ -203,13 +203,13 @@ function L() {
|
|
|
203
203
|
(await B({ variables: {
|
|
204
204
|
id: e,
|
|
205
205
|
meetingUrl: t || void 0
|
|
206
|
-
} })).data?.tecConfirmSession && (
|
|
206
|
+
} })).data?.tecConfirmSession && (d.success("Session confirmed", "The mentee has been notified."), await R.refetch());
|
|
207
207
|
} finally {
|
|
208
208
|
T(null);
|
|
209
209
|
}
|
|
210
210
|
}, Y = async (e, t, n) => {
|
|
211
|
-
T(e),
|
|
212
|
-
workspaceId:
|
|
211
|
+
T(e), l("technospam.session.complete_clicked", {
|
|
212
|
+
workspaceId: s,
|
|
213
213
|
entityId: e,
|
|
214
214
|
entityType: "TEC_MENTOR_SESSION"
|
|
215
215
|
});
|
|
@@ -218,47 +218,47 @@ function L() {
|
|
|
218
218
|
id: e,
|
|
219
219
|
rating: t,
|
|
220
220
|
feedback: n || void 0
|
|
221
|
-
} })).data?.tecCompleteSession && (
|
|
222
|
-
workspaceId:
|
|
221
|
+
} })).data?.tecCompleteSession && (l("technospam.session.completed", {
|
|
222
|
+
workspaceId: s,
|
|
223
223
|
entityId: e,
|
|
224
224
|
entityType: "TEC_MENTOR_SESSION"
|
|
225
|
-
}),
|
|
225
|
+
}), d.success("Session completed", "Nice work — the session is wrapped up."), await R.refetch());
|
|
226
226
|
} finally {
|
|
227
227
|
T(null);
|
|
228
228
|
}
|
|
229
229
|
};
|
|
230
|
-
return
|
|
230
|
+
return o?.id ? /* @__PURE__ */ D(r, {
|
|
231
231
|
hero: !0,
|
|
232
232
|
title: "My Sessions",
|
|
233
233
|
description: "Manage the mentorship sessions you've booked and the ones you host.",
|
|
234
234
|
actions: /* @__PURE__ */ D(O, {
|
|
235
235
|
variant: "outline",
|
|
236
|
-
onClick: () =>
|
|
236
|
+
onClick: () => a("/mentorship/mentors-page"),
|
|
237
237
|
children: [/* @__PURE__ */ E(C, { size: 16 }), " Find a mentor"]
|
|
238
238
|
}),
|
|
239
239
|
children: [
|
|
240
240
|
/* @__PURE__ */ D("div", {
|
|
241
241
|
className: "mb-5 grid grid-cols-2 gap-3 sm:grid-cols-4",
|
|
242
242
|
children: [
|
|
243
|
-
/* @__PURE__ */ E(
|
|
243
|
+
/* @__PURE__ */ E(i, {
|
|
244
244
|
label: "As mentee",
|
|
245
245
|
value: H.length,
|
|
246
246
|
icon: S,
|
|
247
247
|
tone: "blue"
|
|
248
248
|
}),
|
|
249
|
-
/* @__PURE__ */ E(
|
|
249
|
+
/* @__PURE__ */ E(i, {
|
|
250
250
|
label: "As mentor",
|
|
251
251
|
value: L ? U.length : 0,
|
|
252
252
|
icon: C,
|
|
253
253
|
tone: "purple"
|
|
254
254
|
}),
|
|
255
|
-
/* @__PURE__ */ E(
|
|
255
|
+
/* @__PURE__ */ E(i, {
|
|
256
256
|
label: "Upcoming",
|
|
257
257
|
value: G,
|
|
258
258
|
icon: v,
|
|
259
259
|
tone: "teal"
|
|
260
260
|
}),
|
|
261
|
-
/* @__PURE__ */ E(
|
|
261
|
+
/* @__PURE__ */ E(i, {
|
|
262
262
|
label: "Completed",
|
|
263
263
|
value: K,
|
|
264
264
|
icon: b,
|
|
@@ -286,7 +286,7 @@ function L() {
|
|
|
286
286
|
emptyTitle: "No sessions booked yet",
|
|
287
287
|
emptyDescription: "Find a mentor and request a session to get personalized guidance.",
|
|
288
288
|
emptyAction: /* @__PURE__ */ E(O, {
|
|
289
|
-
onClick: () =>
|
|
289
|
+
onClick: () => a("/mentorship/mentors-page"),
|
|
290
290
|
children: "Find a mentor"
|
|
291
291
|
}),
|
|
292
292
|
isMentor: !1,
|
|
@@ -294,7 +294,7 @@ function L() {
|
|
|
294
294
|
onConfirm: J,
|
|
295
295
|
onComplete: Y,
|
|
296
296
|
busyId: w
|
|
297
|
-
}) : P.loading && !F ? /* @__PURE__ */ E(
|
|
297
|
+
}) : P.loading && !F ? /* @__PURE__ */ E(u, {
|
|
298
298
|
count: 3,
|
|
299
299
|
height: "h-24"
|
|
300
300
|
}) : L ? /* @__PURE__ */ E(I, {
|
|
@@ -309,21 +309,21 @@ function L() {
|
|
|
309
309
|
onConfirm: J,
|
|
310
310
|
onComplete: Y,
|
|
311
311
|
busyId: w
|
|
312
|
-
}) : /* @__PURE__ */ E(
|
|
312
|
+
}) : /* @__PURE__ */ E(c, {
|
|
313
313
|
icon: /* @__PURE__ */ E(C, { size: 26 }),
|
|
314
314
|
title: "You're not a mentor yet",
|
|
315
315
|
description: "Create a mentor profile to start hosting sessions and helping others build.",
|
|
316
316
|
action: /* @__PURE__ */ E(O, {
|
|
317
|
-
onClick: () =>
|
|
317
|
+
onClick: () => a("/mentorship/mentors-page"),
|
|
318
318
|
children: "Become a mentor"
|
|
319
319
|
})
|
|
320
320
|
})
|
|
321
321
|
]
|
|
322
|
-
}) : /* @__PURE__ */ E(
|
|
322
|
+
}) : /* @__PURE__ */ E(r, {
|
|
323
323
|
hero: !0,
|
|
324
324
|
title: "My Sessions",
|
|
325
325
|
description: "Track your mentorship sessions.",
|
|
326
|
-
children: /* @__PURE__ */ E(
|
|
326
|
+
children: /* @__PURE__ */ E(c, {
|
|
327
327
|
icon: /* @__PURE__ */ E(S, { size: 26 }),
|
|
328
328
|
title: "Sign in to view your sessions",
|
|
329
329
|
description: "Your booked and hosted mentorship sessions will appear here once you're signed in."
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@burdenoff/microfe-technospam",
|
|
3
|
-
"version": "2026.709.
|
|
3
|
+
"version": "2026.709.4",
|
|
4
4
|
"description": "Burdenoff TechnoSpam Microfrontend",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"types": "./dist/index.d.ts",
|
|
27
27
|
"scripts": {
|
|
28
28
|
"dev": "vite",
|
|
29
|
-
"build": "tsc && vite build",
|
|
29
|
+
"build": "MFE_DTS=1 tsc -p tsconfig.build.json && MFE_DTS=1 vite build",
|
|
30
30
|
"lint": "eslint .",
|
|
31
31
|
"format": "prettier --write \"src/**/*.{ts,tsx}\"",
|
|
32
32
|
"type:check": "tsc --noEmit",
|