@burdenoff/microfe-kadaikodi 2026.704.3 → 2026.704.5
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/kadaikodi/KadaikodiRoutes.js +34 -26
- package/dist/kadaikodi/KadaikodiRoutes.js.map +1 -1
- package/dist/kadaikodi/components/viz/AllocationBar.js +68 -0
- package/dist/kadaikodi/components/viz/AllocationBar.js.map +1 -0
- package/dist/kadaikodi/components/viz/AreaChart.js +102 -0
- package/dist/kadaikodi/components/viz/AreaChart.js.map +1 -0
- package/dist/kadaikodi/components/viz/AvatarStack.js +36 -0
- package/dist/kadaikodi/components/viz/AvatarStack.js.map +1 -0
- package/dist/kadaikodi/components/viz/BarChart.js +83 -0
- package/dist/kadaikodi/components/viz/BarChart.js.map +1 -0
- package/dist/kadaikodi/components/viz/CertificateCard.js +4 -0
- package/dist/kadaikodi/components/viz/DonutChart.js +109 -0
- package/dist/kadaikodi/components/viz/DonutChart.js.map +1 -0
- package/dist/kadaikodi/components/viz/HBarFunnel.js +54 -0
- package/dist/kadaikodi/components/viz/HBarFunnel.js.map +1 -0
- package/dist/kadaikodi/components/viz/Heatmap.js +3 -0
- package/dist/kadaikodi/components/viz/KanbanBoard.js +50 -0
- package/dist/kadaikodi/components/viz/KanbanBoard.js.map +1 -0
- package/dist/kadaikodi/components/viz/LineChart.js +4 -0
- package/dist/kadaikodi/components/viz/OrgTree.js +2 -0
- package/dist/kadaikodi/components/viz/PathSteps.js +3 -0
- package/dist/kadaikodi/components/viz/ProgressRing.js +68 -0
- package/dist/kadaikodi/components/viz/ProgressRing.js.map +1 -0
- package/dist/kadaikodi/components/viz/RatingStars.js +51 -0
- package/dist/kadaikodi/components/viz/RatingStars.js.map +1 -0
- package/dist/kadaikodi/components/viz/SegmentedTabs.js +69 -0
- package/dist/kadaikodi/components/viz/SegmentedTabs.js.map +1 -0
- package/dist/kadaikodi/components/viz/SkillBar.js +3 -0
- package/dist/kadaikodi/components/viz/Sparkline.js +74 -0
- package/dist/kadaikodi/components/viz/Sparkline.js.map +1 -0
- package/dist/kadaikodi/components/viz/StatCard.js +60 -0
- package/dist/kadaikodi/components/viz/StatCard.js.map +1 -0
- package/dist/kadaikodi/components/viz/StepProgress.js +64 -0
- package/dist/kadaikodi/components/viz/StepProgress.js.map +1 -0
- package/dist/kadaikodi/components/viz/Timeline.js +66 -0
- package/dist/kadaikodi/components/viz/Timeline.js.map +1 -0
- package/dist/kadaikodi/components/viz/index.js +23 -0
- package/dist/kadaikodi/components/viz/lib/Avatar.js +30 -0
- package/dist/kadaikodi/components/viz/lib/Avatar.js.map +1 -0
- package/dist/kadaikodi/components/viz/lib/CartesianFrame.js +119 -0
- package/dist/kadaikodi/components/viz/lib/CartesianFrame.js.map +1 -0
- package/dist/kadaikodi/components/viz/lib/ResponsiveSvg.js +35 -0
- package/dist/kadaikodi/components/viz/lib/ResponsiveSvg.js.map +1 -0
- package/dist/kadaikodi/components/viz/lib/format.js +21 -0
- package/dist/kadaikodi/components/viz/lib/format.js.map +1 -0
- package/dist/kadaikodi/components/viz/lib/geometry.js +61 -0
- package/dist/kadaikodi/components/viz/lib/geometry.js.map +1 -0
- package/dist/kadaikodi/components/viz/lib/hooks.js +39 -0
- package/dist/kadaikodi/components/viz/lib/hooks.js.map +1 -0
- package/dist/kadaikodi/components/viz/lib/palette.js +27 -0
- package/dist/kadaikodi/components/viz/lib/palette.js.map +1 -0
- package/dist/kadaikodi/hooks/useKadaikodiApi.js +84 -6
- package/dist/kadaikodi/hooks/useKadaikodiApi.js.map +1 -1
- package/dist/kadaikodi/pages/HomePage.js +373 -631
- package/dist/kadaikodi/pages/HomePage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js +304 -169
- package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminDashboard.js +255 -271
- package/dist/kadaikodi/pages/admin/AdminDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminFinancialPage.js +185 -125
- package/dist/kadaikodi/pages/admin/AdminFinancialPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminOrdersPage.js +141 -102
- package/dist/kadaikodi/pages/admin/AdminOrdersPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminSettingsPage.js +332 -276
- package/dist/kadaikodi/pages/admin/AdminSettingsPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/CartManagementPage.js +564 -729
- package/dist/kadaikodi/pages/admin/CartManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/UserManagementPage.js +310 -366
- package/dist/kadaikodi/pages/admin/UserManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js +201 -120
- package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js +290 -257
- package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js +173 -194
- package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js +270 -228
- package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js +194 -173
- package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js +428 -347
- package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/InvestmentListingPage.js +332 -0
- package/dist/kadaikodi/pages/cart-owner/InvestmentListingPage.js.map +1 -0
- package/dist/kadaikodi/pages/cart-owner/MerchantOnboardingPage.js +373 -0
- package/dist/kadaikodi/pages/cart-owner/MerchantOnboardingPage.js.map +1 -0
- package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js +294 -162
- package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js +180 -181
- package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/common/HelpSupportPage.js +310 -317
- package/dist/kadaikodi/pages/common/HelpSupportPage.js.map +1 -1
- package/dist/kadaikodi/pages/common/NotificationCenterPage.js.map +1 -1
- package/dist/kadaikodi/pages/common/SettingsPage.js +502 -586
- package/dist/kadaikodi/pages/common/SettingsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/BookingDetailsPage.js +239 -156
- package/dist/kadaikodi/pages/customer/BookingDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CartDetailPage.js +405 -248
- package/dist/kadaikodi/pages/customer/CartDetailPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js +258 -232
- package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CheckoutPage.js +254 -205
- package/dist/kadaikodi/pages/customer/CheckoutPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CustomerDashboard.js +5 -5
- package/dist/kadaikodi/pages/customer/CustomerDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CustomerProfilePage.js +189 -199
- package/dist/kadaikodi/pages/customer/CustomerProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js +272 -230
- package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/FavoritesPage.js +150 -413
- package/dist/kadaikodi/pages/customer/FavoritesPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/OrderHistoryPage.js +173 -134
- package/dist/kadaikodi/pages/customer/OrderHistoryPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/OrderTrackingPage.js +411 -305
- package/dist/kadaikodi/pages/customer/OrderTrackingPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/ReviewsPage.js +310 -406
- package/dist/kadaikodi/pages/customer/ReviewsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/SavedAddressesPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/shared.js +181 -0
- package/dist/kadaikodi/pages/customer/shared.js.map +1 -0
- package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js +438 -311
- package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js +320 -293
- package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.js +159 -91
- package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorDashboard.js +137 -107
- package/dist/kadaikodi/pages/investor/InvestorDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorInvestmentsPage.js +157 -135
- package/dist/kadaikodi/pages/investor/InvestorInvestmentsPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorPortfolioPage.js +280 -206
- package/dist/kadaikodi/pages/investor/InvestorPortfolioPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorProfilePage.js +441 -514
- package/dist/kadaikodi/pages/investor/InvestorProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/TaskDetailsPage.js +428 -431
- package/dist/kadaikodi/pages/worker/TaskDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerDashboard.js +328 -445
- package/dist/kadaikodi/pages/worker/WorkerDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js +141 -164
- package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerProfilePage.js +360 -288
- package/dist/kadaikodi/pages/worker/WorkerProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js +303 -281
- package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,35 +3,52 @@ import { cn as t } from "../../utils/cn.js";
|
|
|
3
3
|
import { PageLayout as n } from "../../components/PageLayout.js";
|
|
4
4
|
import { useUpdateWorkerTaskStatus as r, useWorkerClockInOut as i, useWorkerStats as a, useWorkerTasks as o } from "../../hooks/useKadaikodiApi.js";
|
|
5
5
|
import { formatCurrency as s } from "../../utils/formatters.js";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
6
|
+
import { ProgressRing as c } from "../../components/viz/ProgressRing.js";
|
|
7
|
+
import { StatCard as l } from "../../components/viz/StatCard.js";
|
|
8
|
+
import { RatingStars as ee } from "../../components/viz/RatingStars.js";
|
|
9
|
+
import "../../components/viz/index.js";
|
|
10
|
+
import { useState as u } from "react";
|
|
11
|
+
import { Boxes as d, CheckCircle2 as f, ChefHat as p, ChevronRight as m, ClipboardList as h, Clock as te, IndianRupee as g, Loader2 as _, MapPin as v, Package as y, Pause as ne, Play as b, Sparkles as x, Star as S, Truck as C, Wallet as w } from "lucide-react";
|
|
12
|
+
import { jsx as T, jsxs as E } from "react/jsx-runtime";
|
|
13
|
+
import { GlassCard as D, NextSteps as O, PagePurpose as k } from "@burdenoff/fe-libs/ui";
|
|
10
14
|
//#region src/kadaikodi/pages/worker/WorkerDashboard.tsx
|
|
11
|
-
var
|
|
15
|
+
var A = {
|
|
16
|
+
urgent: "bg-status-error-bg-subtle text-status-error-text",
|
|
12
17
|
high: "bg-status-error-bg-subtle text-status-error-text",
|
|
13
18
|
medium: "bg-status-warning-bg-subtle text-status-warning-text",
|
|
14
19
|
low: "bg-status-success-bg-subtle text-status-success-text"
|
|
15
|
-
},
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
}, j = {
|
|
21
|
+
delivery: "bg-accent-primary/12 text-accent-primary",
|
|
22
|
+
pickup: "bg-status-info-bg-subtle text-status-info-text",
|
|
23
|
+
service: "bg-status-success-bg-subtle text-status-success-text"
|
|
19
24
|
};
|
|
20
|
-
function
|
|
25
|
+
function M(e) {
|
|
21
26
|
switch (e) {
|
|
22
|
-
case "delivery": return
|
|
23
|
-
case "preparation": return
|
|
24
|
-
case "inventory": return
|
|
27
|
+
case "delivery": return C;
|
|
28
|
+
case "preparation": return p;
|
|
29
|
+
case "inventory": return d;
|
|
25
30
|
case "cleanup": return x;
|
|
26
|
-
default: return
|
|
31
|
+
default: return h;
|
|
27
32
|
}
|
|
28
33
|
}
|
|
29
|
-
var
|
|
34
|
+
var N = {
|
|
35
|
+
urgent: 4,
|
|
30
36
|
high: 3,
|
|
31
37
|
medium: 2,
|
|
32
38
|
low: 1
|
|
33
|
-
}
|
|
34
|
-
|
|
39
|
+
};
|
|
40
|
+
function P(e) {
|
|
41
|
+
if (!e.deliveryAddress) return e.location ?? "";
|
|
42
|
+
let t = e.deliveryAddress;
|
|
43
|
+
return [
|
|
44
|
+
t.street,
|
|
45
|
+
t.area,
|
|
46
|
+
t.city
|
|
47
|
+
].filter(Boolean).join(", ");
|
|
48
|
+
}
|
|
49
|
+
var F = () => {
|
|
50
|
+
let { navigateTo: d, currentUser: p } = e(), h = p?.id || "", { data: x = [], isLoading: F } = o(h), { data: I, isLoading: L } = a(h), R = r(), z = i(), [B, V] = u(null), [H, U] = u(!1), [W, G] = u(null), [K, q] = u(null), J = p?.firstName ?? p?.name?.split(" ")[0] ?? "there", Y = async (e, t) => {
|
|
51
|
+
q(null);
|
|
35
52
|
let n = "";
|
|
36
53
|
switch (t) {
|
|
37
54
|
case "start":
|
|
@@ -49,61 +66,107 @@ var F = {
|
|
|
49
66
|
taskId: e,
|
|
50
67
|
status: n
|
|
51
68
|
});
|
|
52
|
-
} catch
|
|
53
|
-
|
|
69
|
+
} catch {
|
|
70
|
+
q("Failed to update task. Please try again.");
|
|
54
71
|
}
|
|
55
|
-
},
|
|
72
|
+
}, X = async () => {
|
|
73
|
+
q(null);
|
|
56
74
|
let e = H ? "CLOCK_OUT" : "CLOCK_IN";
|
|
57
75
|
try {
|
|
58
|
-
|
|
59
|
-
workerId:
|
|
76
|
+
if ((await z.mutateAsync({
|
|
77
|
+
workerId: h,
|
|
60
78
|
action: e
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
});
|
|
70
|
-
U(!0), G(e);
|
|
71
|
-
}
|
|
72
|
-
alert(t.message || `${H ? "Clocked out" : "Clocked in"} successfully`);
|
|
79
|
+
})).success) if (H) U(!1), G(null);
|
|
80
|
+
else {
|
|
81
|
+
let e = (/* @__PURE__ */ new Date()).toLocaleTimeString("en-IN", {
|
|
82
|
+
hour: "2-digit",
|
|
83
|
+
minute: "2-digit",
|
|
84
|
+
hour12: !0
|
|
85
|
+
});
|
|
86
|
+
U(!0), G(e);
|
|
73
87
|
}
|
|
74
|
-
} catch
|
|
75
|
-
|
|
88
|
+
} catch {
|
|
89
|
+
q("Clock action failed. Please try again.");
|
|
76
90
|
}
|
|
77
91
|
};
|
|
78
|
-
if (
|
|
79
|
-
title:
|
|
80
|
-
description: "Your
|
|
81
|
-
children: /* @__PURE__ */
|
|
92
|
+
if (F || L) return /* @__PURE__ */ T(n, {
|
|
93
|
+
title: `Hi, ${J}`,
|
|
94
|
+
description: "Your shift at a glance",
|
|
95
|
+
children: /* @__PURE__ */ T("div", {
|
|
82
96
|
className: "flex items-center justify-center py-24",
|
|
83
|
-
children: /* @__PURE__ */
|
|
97
|
+
children: /* @__PURE__ */ E("div", {
|
|
84
98
|
className: "text-center",
|
|
85
|
-
children: [/* @__PURE__ */
|
|
99
|
+
children: [/* @__PURE__ */ T(_, { className: "h-10 w-10 animate-spin text-text-secondary mx-auto mb-4" }), /* @__PURE__ */ T("p", {
|
|
86
100
|
className: "text-sm text-text-secondary",
|
|
87
101
|
children: "Loading your dashboard..."
|
|
88
102
|
})]
|
|
89
103
|
})
|
|
90
104
|
})
|
|
91
105
|
});
|
|
92
|
-
let
|
|
93
|
-
return /* @__PURE__ */
|
|
94
|
-
title:
|
|
95
|
-
description: "
|
|
96
|
-
actions: /* @__PURE__ */
|
|
106
|
+
let Z = B ? x.find((e) => e.id === B) : null, Q = x.filter((e) => e.status !== "completed").sort((e, t) => (N[t.priority] ?? 0) - (N[e.priority] ?? 0)), $ = x.filter((e) => e.status === "completed");
|
|
107
|
+
return /* @__PURE__ */ T(n, {
|
|
108
|
+
title: `Hi, ${J}`,
|
|
109
|
+
description: "Your shift at a glance — clock in, then pick up your next delivery.",
|
|
110
|
+
actions: /* @__PURE__ */ E("button", {
|
|
97
111
|
type: "button",
|
|
98
|
-
onClick:
|
|
99
|
-
|
|
100
|
-
|
|
112
|
+
onClick: X,
|
|
113
|
+
disabled: z.isPending,
|
|
114
|
+
className: t("inline-flex items-center gap-2 rounded-full px-4 py-2 text-sm font-semibold shadow-sm transition-colors disabled:opacity-60", H ? "bg-status-success-bg-subtle text-status-success-text border border-status-success-text/30" : "bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg-hover"),
|
|
115
|
+
children: [z.isPending ? /* @__PURE__ */ T(_, { className: "h-4 w-4 animate-spin" }) : H ? /* @__PURE__ */ E("span", {
|
|
116
|
+
className: "relative flex h-2.5 w-2.5",
|
|
117
|
+
children: [/* @__PURE__ */ T("span", { className: "animate-ping absolute inline-flex h-full w-full rounded-full bg-status-success-text opacity-75" }), /* @__PURE__ */ T("span", { className: "relative inline-flex rounded-full h-2.5 w-2.5 bg-status-success-text" })]
|
|
118
|
+
}) : /* @__PURE__ */ T(te, { className: "h-4 w-4" }), H ? "Clocked In" : "Clock In"]
|
|
101
119
|
}),
|
|
102
|
-
children: /* @__PURE__ */
|
|
120
|
+
children: /* @__PURE__ */ E("div", {
|
|
103
121
|
className: "space-y-6",
|
|
104
122
|
children: [
|
|
105
|
-
/* @__PURE__ */
|
|
106
|
-
/* @__PURE__ */
|
|
123
|
+
/* @__PURE__ */ T(k, { children: "Your shift command centre — see today's assigned deliveries at a glance, clock in/out, and jump straight into the order you're working on. Clock in first, then start your next task below." }),
|
|
124
|
+
K && /* @__PURE__ */ T("div", {
|
|
125
|
+
className: "rounded-lg border border-status-error-text/20 bg-status-error-bg-subtle p-3",
|
|
126
|
+
children: /* @__PURE__ */ T("p", {
|
|
127
|
+
className: "text-xs text-status-error-text",
|
|
128
|
+
children: K
|
|
129
|
+
})
|
|
130
|
+
}),
|
|
131
|
+
I && /* @__PURE__ */ E("div", {
|
|
132
|
+
className: "grid grid-cols-2 lg:grid-cols-4 gap-3 sm:gap-4",
|
|
133
|
+
children: [
|
|
134
|
+
/* @__PURE__ */ T(l, {
|
|
135
|
+
label: "Today's Earnings",
|
|
136
|
+
value: s(I.todayEarnings, { minimumFractionDigits: 0 }),
|
|
137
|
+
icon: /* @__PURE__ */ T(w, { className: "h-4 w-4" })
|
|
138
|
+
}),
|
|
139
|
+
/* @__PURE__ */ T(l, {
|
|
140
|
+
label: "Deliveries",
|
|
141
|
+
value: I.totalDeliveries,
|
|
142
|
+
icon: /* @__PURE__ */ T(C, { className: "h-4 w-4" })
|
|
143
|
+
}),
|
|
144
|
+
/* @__PURE__ */ T(l, {
|
|
145
|
+
label: "Rating",
|
|
146
|
+
value: /* @__PURE__ */ E("span", {
|
|
147
|
+
className: "flex items-center gap-1.5",
|
|
148
|
+
children: [I.averageRating.toFixed(1), /* @__PURE__ */ T(S, { className: "h-5 w-5 fill-status-warning-text text-status-warning-text" })]
|
|
149
|
+
}),
|
|
150
|
+
icon: /* @__PURE__ */ T(S, { className: "h-4 w-4" })
|
|
151
|
+
}),
|
|
152
|
+
/* @__PURE__ */ T(l, {
|
|
153
|
+
label: "Completion",
|
|
154
|
+
value: `${I.completionRate}%`,
|
|
155
|
+
icon: /* @__PURE__ */ T(f, { className: "h-4 w-4" })
|
|
156
|
+
})
|
|
157
|
+
]
|
|
158
|
+
}),
|
|
159
|
+
H && W && /* @__PURE__ */ E("div", {
|
|
160
|
+
className: "flex items-center gap-2 rounded-lg bg-status-success-bg-subtle border border-status-success-text/20 px-3 py-2 w-fit",
|
|
161
|
+
children: [/* @__PURE__ */ E("span", {
|
|
162
|
+
className: "relative flex h-2 w-2",
|
|
163
|
+
children: [/* @__PURE__ */ T("span", { className: "animate-ping absolute inline-flex h-full w-full rounded-full bg-status-success-text opacity-75" }), /* @__PURE__ */ T("span", { className: "relative inline-flex rounded-full h-2 w-2 bg-status-success-text" })]
|
|
164
|
+
}), /* @__PURE__ */ E("span", {
|
|
165
|
+
className: "text-xs font-medium text-status-success-text",
|
|
166
|
+
children: ["Working since ", W]
|
|
167
|
+
})]
|
|
168
|
+
}),
|
|
169
|
+
/* @__PURE__ */ T(O, {
|
|
107
170
|
storageKey: "kadaikodi-worker-dashboard",
|
|
108
171
|
steps: [
|
|
109
172
|
{
|
|
@@ -111,7 +174,7 @@ var F = {
|
|
|
111
174
|
label: "Clock in to start your shift",
|
|
112
175
|
description: "Track your hours and let dispatch know you are available.",
|
|
113
176
|
onClick: () => {
|
|
114
|
-
H ||
|
|
177
|
+
H || X();
|
|
115
178
|
},
|
|
116
179
|
done: H
|
|
117
180
|
},
|
|
@@ -119,433 +182,253 @@ var F = {
|
|
|
119
182
|
id: "orders",
|
|
120
183
|
label: "Review assigned orders",
|
|
121
184
|
description: "See what needs picking up and delivering today.",
|
|
122
|
-
onClick: () =>
|
|
185
|
+
onClick: () => d("/worker/orders")
|
|
123
186
|
},
|
|
124
187
|
{
|
|
125
188
|
id: "schedule",
|
|
126
189
|
label: "Check your schedule",
|
|
127
190
|
description: "Know your upcoming shifts and plan ahead.",
|
|
128
|
-
onClick: () =>
|
|
191
|
+
onClick: () => d("/worker/schedule")
|
|
129
192
|
}
|
|
130
193
|
]
|
|
131
194
|
}),
|
|
132
|
-
/* @__PURE__ */
|
|
195
|
+
Z && /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("h2", {
|
|
133
196
|
className: "text-base font-semibold text-text-primary mb-3",
|
|
134
|
-
children: "
|
|
135
|
-
}), /* @__PURE__ */
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
197
|
+
children: "Current Task"
|
|
198
|
+
}), /* @__PURE__ */ T(D, {
|
|
199
|
+
treatment: "insight",
|
|
200
|
+
glow: !0,
|
|
201
|
+
className: "p-6",
|
|
202
|
+
children: /* @__PURE__ */ E("div", {
|
|
203
|
+
className: "flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",
|
|
204
|
+
children: [/* @__PURE__ */ E("div", {
|
|
205
|
+
className: "flex items-start gap-3 min-w-0",
|
|
206
|
+
children: [/* @__PURE__ */ T("div", {
|
|
207
|
+
className: "flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-accent-primary/12 text-accent-primary",
|
|
208
|
+
children: /* @__PURE__ */ T(M(Z.type), { className: "h-5 w-5" })
|
|
209
|
+
}), /* @__PURE__ */ E("div", {
|
|
210
|
+
className: "min-w-0",
|
|
211
|
+
children: [
|
|
212
|
+
/* @__PURE__ */ T("h3", {
|
|
213
|
+
className: "text-lg font-semibold text-text-primary",
|
|
214
|
+
children: Z.title ?? Z.description
|
|
215
|
+
}),
|
|
216
|
+
/* @__PURE__ */ T("p", {
|
|
217
|
+
className: "text-sm text-text-secondary mt-1",
|
|
218
|
+
children: Z.description
|
|
219
|
+
}),
|
|
220
|
+
/* @__PURE__ */ E("div", {
|
|
221
|
+
className: "flex flex-wrap items-center gap-3 mt-2 text-sm text-text-secondary",
|
|
222
|
+
children: [Z.customerName && /* @__PURE__ */ E("span", {
|
|
223
|
+
className: "flex items-center gap-1",
|
|
224
|
+
children: [/* @__PURE__ */ T(y, { className: "h-3.5 w-3.5" }), Z.customerName]
|
|
225
|
+
}), P(Z) && /* @__PURE__ */ E("span", {
|
|
226
|
+
className: "flex items-center gap-1",
|
|
227
|
+
children: [/* @__PURE__ */ T(v, { className: "h-3.5 w-3.5" }), P(Z)]
|
|
228
|
+
})]
|
|
229
|
+
})
|
|
230
|
+
]
|
|
231
|
+
})]
|
|
232
|
+
}), /* @__PURE__ */ E("div", {
|
|
233
|
+
className: "flex gap-2 shrink-0",
|
|
234
|
+
children: [/* @__PURE__ */ E("button", {
|
|
235
|
+
type: "button",
|
|
236
|
+
onClick: () => Y(Z.id, "complete"),
|
|
237
|
+
className: "inline-flex items-center gap-1.5 rounded-md bg-status-success-bg-subtle px-3 py-2 text-sm font-medium text-status-success-text transition-colors",
|
|
238
|
+
children: [/* @__PURE__ */ T(f, { className: "h-4 w-4" }), "Complete"]
|
|
239
|
+
}), /* @__PURE__ */ E("button", {
|
|
240
|
+
type: "button",
|
|
241
|
+
onClick: () => Y(Z.id, "pause"),
|
|
242
|
+
className: "inline-flex items-center gap-1.5 rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm font-medium text-text-primary hover:bg-bg-sunken transition-colors",
|
|
243
|
+
children: [/* @__PURE__ */ T(ne, { className: "h-4 w-4" }), "Pause"]
|
|
244
|
+
})]
|
|
245
|
+
})]
|
|
246
|
+
})
|
|
163
247
|
})] }),
|
|
164
|
-
|
|
248
|
+
/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ E("div", {
|
|
165
249
|
className: "flex items-center justify-between mb-3",
|
|
166
|
-
children: [/* @__PURE__ */
|
|
250
|
+
children: [/* @__PURE__ */ T("h2", {
|
|
167
251
|
className: "text-base font-semibold text-text-primary",
|
|
168
|
-
children: "
|
|
169
|
-
}),
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
}), /* @__PURE__ */ O("span", {
|
|
175
|
-
className: "text-xs font-medium text-status-success-text",
|
|
176
|
-
children: ["Working since ", W]
|
|
177
|
-
})]
|
|
252
|
+
children: "Assigned Tasks"
|
|
253
|
+
}), /* @__PURE__ */ E("button", {
|
|
254
|
+
type: "button",
|
|
255
|
+
onClick: () => d("/worker/orders"),
|
|
256
|
+
className: "inline-flex items-center gap-1 text-sm font-medium text-accent-primary hover:underline",
|
|
257
|
+
children: ["View all", /* @__PURE__ */ T(m, { className: "h-4 w-4" })]
|
|
178
258
|
})]
|
|
179
|
-
}), /* @__PURE__ */
|
|
180
|
-
className: "grid grid-cols-
|
|
181
|
-
children:
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
className: "flex items-center gap-2 mb-2",
|
|
187
|
-
children: /* @__PURE__ */ D("div", {
|
|
188
|
-
className: "inline-flex rounded-md p-1.5 bg-status-success-bg-subtle text-status-success-text",
|
|
189
|
-
children: /* @__PURE__ */ D(d, { className: "h-4 w-4" })
|
|
190
|
-
})
|
|
191
|
-
}),
|
|
192
|
-
/* @__PURE__ */ D("p", {
|
|
193
|
-
className: "text-2xl font-bold text-status-success-text",
|
|
194
|
-
children: I.totalDeliveries
|
|
195
|
-
}),
|
|
196
|
-
/* @__PURE__ */ D("p", {
|
|
197
|
-
className: "text-xs text-text-secondary",
|
|
198
|
-
children: "Total Deliveries"
|
|
199
|
-
})
|
|
200
|
-
]
|
|
201
|
-
}),
|
|
202
|
-
/* @__PURE__ */ O("div", {
|
|
203
|
-
className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
|
|
204
|
-
children: [
|
|
205
|
-
/* @__PURE__ */ D("div", {
|
|
206
|
-
className: "flex items-center gap-2 mb-2",
|
|
207
|
-
children: /* @__PURE__ */ D("div", {
|
|
208
|
-
className: "inline-flex rounded-md p-1.5 bg-[var(--color-accent-soft)] text-text-primary",
|
|
209
|
-
children: /* @__PURE__ */ D(b, { className: "h-4 w-4" })
|
|
210
|
-
})
|
|
211
|
-
}),
|
|
212
|
-
/* @__PURE__ */ D("p", {
|
|
213
|
-
className: "text-2xl font-bold text-text-primary",
|
|
214
|
-
children: I.todayTasks
|
|
215
|
-
}),
|
|
216
|
-
/* @__PURE__ */ D("p", {
|
|
217
|
-
className: "text-xs text-text-secondary",
|
|
218
|
-
children: "Today's Tasks"
|
|
219
|
-
})
|
|
220
|
-
]
|
|
221
|
-
}),
|
|
222
|
-
/* @__PURE__ */ O("div", {
|
|
223
|
-
className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
|
|
259
|
+
}), Q.length > 0 ? /* @__PURE__ */ T("div", {
|
|
260
|
+
className: "grid grid-cols-1 md:grid-cols-2 gap-4",
|
|
261
|
+
children: Q.map((e) => {
|
|
262
|
+
let n = e.cartName || "Pickup", r = P(e) || e.customerName || "Drop-off", i = B !== null && B !== e.id;
|
|
263
|
+
return /* @__PURE__ */ E(D, {
|
|
264
|
+
treatment: "metric",
|
|
265
|
+
className: "flex flex-col gap-4 p-5",
|
|
224
266
|
children: [
|
|
225
|
-
/* @__PURE__ */
|
|
226
|
-
className: "flex items-
|
|
227
|
-
children: /* @__PURE__ */
|
|
228
|
-
className: "
|
|
229
|
-
children: /* @__PURE__ */
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
]
|
|
241
|
-
}),
|
|
242
|
-
/* @__PURE__ */ O("div", {
|
|
243
|
-
className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
|
|
244
|
-
children: [
|
|
245
|
-
/* @__PURE__ */ D("div", {
|
|
246
|
-
className: "flex items-center gap-2 mb-2",
|
|
247
|
-
children: /* @__PURE__ */ D("div", {
|
|
248
|
-
className: "inline-flex rounded-md p-1.5 bg-accent-purple-subtle text-text-primary",
|
|
249
|
-
children: /* @__PURE__ */ D(C, { className: "h-4 w-4" })
|
|
250
|
-
})
|
|
251
|
-
}),
|
|
252
|
-
/* @__PURE__ */ D("p", {
|
|
253
|
-
className: "text-2xl font-bold text-text-primary",
|
|
254
|
-
children: s(I.todayEarnings, { minimumFractionDigits: 0 })
|
|
255
|
-
}),
|
|
256
|
-
/* @__PURE__ */ D("p", {
|
|
257
|
-
className: "text-xs text-text-secondary",
|
|
258
|
-
children: "Today's Earnings"
|
|
259
|
-
})
|
|
260
|
-
]
|
|
261
|
-
}),
|
|
262
|
-
/* @__PURE__ */ O("div", {
|
|
263
|
-
className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
|
|
264
|
-
children: [
|
|
265
|
-
/* @__PURE__ */ D("div", {
|
|
266
|
-
className: "flex items-center gap-2 mb-2",
|
|
267
|
-
children: /* @__PURE__ */ D("div", {
|
|
268
|
-
className: "inline-flex rounded-md p-1.5 bg-[var(--color-accent-soft)] text-text-primary",
|
|
269
|
-
children: /* @__PURE__ */ D(E, { className: "h-4 w-4" })
|
|
270
|
-
})
|
|
271
|
-
}),
|
|
272
|
-
/* @__PURE__ */ D("p", {
|
|
273
|
-
className: "text-2xl font-bold text-text-primary",
|
|
274
|
-
children: s(I.totalEarnings, { minimumFractionDigits: 0 })
|
|
275
|
-
}),
|
|
276
|
-
/* @__PURE__ */ D("p", {
|
|
277
|
-
className: "text-xs text-text-secondary",
|
|
278
|
-
children: "Total Earnings"
|
|
279
|
-
})
|
|
280
|
-
]
|
|
281
|
-
}),
|
|
282
|
-
/* @__PURE__ */ O("div", {
|
|
283
|
-
className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
|
|
284
|
-
children: [
|
|
285
|
-
/* @__PURE__ */ D("div", {
|
|
286
|
-
className: "flex items-center gap-2 mb-2",
|
|
287
|
-
children: /* @__PURE__ */ D("div", {
|
|
288
|
-
className: "inline-flex rounded-md p-1.5 bg-status-warning-bg-subtle text-status-warning-text",
|
|
289
|
-
children: /* @__PURE__ */ D(S, { className: "h-4 w-4" })
|
|
290
|
-
})
|
|
291
|
-
}),
|
|
292
|
-
/* @__PURE__ */ O("p", {
|
|
293
|
-
className: "text-2xl font-bold text-status-warning-text",
|
|
294
|
-
children: [I.averageRating, "/5"]
|
|
295
|
-
}),
|
|
296
|
-
/* @__PURE__ */ D("p", {
|
|
297
|
-
className: "text-xs text-text-secondary",
|
|
298
|
-
children: "Rating"
|
|
299
|
-
})
|
|
300
|
-
]
|
|
301
|
-
})
|
|
302
|
-
]
|
|
303
|
-
})] }),
|
|
304
|
-
J && /* @__PURE__ */ O("div", { children: [/* @__PURE__ */ D("h2", {
|
|
305
|
-
className: "text-base font-semibold text-text-primary mb-3",
|
|
306
|
-
children: "Current Task"
|
|
307
|
-
}), /* @__PURE__ */ D("div", {
|
|
308
|
-
className: "rounded-lg border-2 border-border-focus/40 bg-[var(--color-accent-soft)] p-6",
|
|
309
|
-
children: /* @__PURE__ */ O("div", {
|
|
310
|
-
className: "flex items-start justify-between mb-4",
|
|
311
|
-
children: [/* @__PURE__ */ O("div", {
|
|
312
|
-
className: "flex items-start gap-3",
|
|
313
|
-
children: [/* @__PURE__ */ D("div", {
|
|
314
|
-
className: "flex h-10 w-10 items-center justify-center rounded-lg bg-[var(--color-accent-soft)]",
|
|
315
|
-
children: /* @__PURE__ */ D(P(J.type), { className: "h-5 w-5 text-text-primary" })
|
|
316
|
-
}), /* @__PURE__ */ O("div", { children: [
|
|
317
|
-
/* @__PURE__ */ D("h3", {
|
|
318
|
-
className: "text-lg font-semibold text-text-primary",
|
|
319
|
-
children: J.title ?? J.description
|
|
267
|
+
/* @__PURE__ */ E("div", {
|
|
268
|
+
className: "flex items-start justify-between gap-3",
|
|
269
|
+
children: [/* @__PURE__ */ E("div", {
|
|
270
|
+
className: "flex flex-wrap items-center gap-2",
|
|
271
|
+
children: [/* @__PURE__ */ T("span", {
|
|
272
|
+
className: t("inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-semibold capitalize", j[e.type] ?? "bg-bg-sunken text-text-secondary"),
|
|
273
|
+
children: e.type
|
|
274
|
+
}), /* @__PURE__ */ T("span", {
|
|
275
|
+
className: t("inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-medium capitalize", A[e.priority] ?? "bg-bg-sunken text-text-secondary"),
|
|
276
|
+
children: e.priority
|
|
277
|
+
})]
|
|
278
|
+
}), e.orderId && /* @__PURE__ */ E("span", {
|
|
279
|
+
className: "text-sm font-bold text-text-primary tabular-nums",
|
|
280
|
+
children: ["#", e.orderId]
|
|
281
|
+
})]
|
|
320
282
|
}),
|
|
321
|
-
/* @__PURE__ */
|
|
322
|
-
className: "text-sm text-text-secondary
|
|
323
|
-
children:
|
|
283
|
+
e.customerName && /* @__PURE__ */ E("p", {
|
|
284
|
+
className: "-mt-1 text-sm text-text-secondary",
|
|
285
|
+
children: [
|
|
286
|
+
"Customer:",
|
|
287
|
+
" ",
|
|
288
|
+
/* @__PURE__ */ T("span", {
|
|
289
|
+
className: "font-medium text-text-primary",
|
|
290
|
+
children: e.customerName
|
|
291
|
+
})
|
|
292
|
+
]
|
|
324
293
|
}),
|
|
325
|
-
/* @__PURE__ */
|
|
326
|
-
className: "flex
|
|
294
|
+
/* @__PURE__ */ E("div", {
|
|
295
|
+
className: "flex items-stretch gap-3",
|
|
327
296
|
children: [
|
|
328
|
-
|
|
329
|
-
className: "flex items-center
|
|
297
|
+
/* @__PURE__ */ E("div", {
|
|
298
|
+
className: "flex flex-col items-center pt-1",
|
|
330
299
|
children: [
|
|
331
|
-
/* @__PURE__ */
|
|
332
|
-
|
|
333
|
-
"
|
|
334
|
-
]
|
|
335
|
-
}) : null,
|
|
336
|
-
J.dueTime && /* @__PURE__ */ O("span", {
|
|
337
|
-
className: "flex items-center gap-1",
|
|
338
|
-
children: [
|
|
339
|
-
/* @__PURE__ */ D(C, { className: "h-3.5 w-3.5" }),
|
|
340
|
-
"Due: ",
|
|
341
|
-
J.dueTime
|
|
300
|
+
/* @__PURE__ */ T(v, { className: "h-4 w-4 text-accent-primary shrink-0" }),
|
|
301
|
+
/* @__PURE__ */ T("span", { className: "my-1 w-px flex-1 border-l border-dashed border-border-strong" }),
|
|
302
|
+
/* @__PURE__ */ T(v, { className: "h-4 w-4 text-status-success-text shrink-0" })
|
|
342
303
|
]
|
|
343
304
|
}),
|
|
344
|
-
|
|
345
|
-
className: "flex
|
|
346
|
-
children: [/* @__PURE__ */
|
|
305
|
+
/* @__PURE__ */ E("div", {
|
|
306
|
+
className: "flex flex-1 flex-col justify-between gap-3 min-w-0",
|
|
307
|
+
children: [/* @__PURE__ */ T("p", {
|
|
308
|
+
className: "text-sm text-text-primary line-clamp-1",
|
|
309
|
+
children: n
|
|
310
|
+
}), /* @__PURE__ */ T("p", {
|
|
311
|
+
className: "text-sm text-text-primary line-clamp-1",
|
|
312
|
+
children: r
|
|
313
|
+
})]
|
|
314
|
+
}),
|
|
315
|
+
/* @__PURE__ */ E("div", {
|
|
316
|
+
className: "flex flex-col items-end justify-center rounded-lg bg-bg-sunken px-3 py-2 text-right shrink-0",
|
|
317
|
+
children: [e.distance != null && /* @__PURE__ */ E("span", {
|
|
318
|
+
className: "text-xs text-text-secondary tabular-nums",
|
|
319
|
+
children: [e.distance, " km"]
|
|
320
|
+
}), e.earnings > 0 && /* @__PURE__ */ E("span", {
|
|
321
|
+
className: "flex items-center text-base font-bold text-text-primary tabular-nums",
|
|
322
|
+
children: [/* @__PURE__ */ T(g, { className: "h-3.5 w-3.5" }), s(e.earnings, {
|
|
323
|
+
minimumFractionDigits: 0,
|
|
324
|
+
style: "decimal"
|
|
325
|
+
})]
|
|
326
|
+
})]
|
|
347
327
|
})
|
|
348
328
|
]
|
|
349
|
-
})
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
className: "flex gap-2 shrink-0",
|
|
353
|
-
children: [/* @__PURE__ */ O("button", {
|
|
354
|
-
type: "button",
|
|
355
|
-
onClick: () => K(J.id, "complete"),
|
|
356
|
-
className: "inline-flex items-center gap-1.5 rounded-md bg-status-success-bg-subtle px-3 py-2 text-sm font-medium text-status-success-text hover:bg-status-success-bg-subtle transition-colors",
|
|
357
|
-
children: [/* @__PURE__ */ D(d, { className: "h-4 w-4" }), "Complete"]
|
|
358
|
-
}), /* @__PURE__ */ O("button", {
|
|
359
|
-
type: "button",
|
|
360
|
-
onClick: () => K(J.id, "pause"),
|
|
361
|
-
className: "inline-flex items-center gap-1.5 rounded-md bg-accent px-3 py-2 text-sm font-medium text-text-primary hover:bg-accent/80 transition-colors",
|
|
362
|
-
children: [/* @__PURE__ */ D(y, { className: "h-4 w-4" }), "Pause"]
|
|
363
|
-
})]
|
|
364
|
-
})]
|
|
365
|
-
})
|
|
366
|
-
})] }),
|
|
367
|
-
/* @__PURE__ */ O("div", { children: [/* @__PURE__ */ D("h2", {
|
|
368
|
-
className: "text-base font-semibold text-text-primary mb-3",
|
|
369
|
-
children: "Assigned Tasks"
|
|
370
|
-
}), /* @__PURE__ */ D("div", {
|
|
371
|
-
className: "rounded-lg border border-border-subtle bg-bg-surface shadow-sm overflow-hidden",
|
|
372
|
-
children: Y.length > 0 ? /* @__PURE__ */ D("div", {
|
|
373
|
-
className: "divide-y divide-border",
|
|
374
|
-
children: Y.map((e) => /* @__PURE__ */ D("div", {
|
|
375
|
-
className: "p-4 hover:bg-bg-sunken/30 transition-colors",
|
|
376
|
-
children: /* @__PURE__ */ O("div", {
|
|
377
|
-
className: "flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3",
|
|
378
|
-
children: [/* @__PURE__ */ O("div", {
|
|
379
|
-
className: "flex items-start gap-3 flex-1 min-w-0",
|
|
380
|
-
children: [/* @__PURE__ */ D("div", {
|
|
381
|
-
className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-bg-sunken",
|
|
382
|
-
children: /* @__PURE__ */ D(P(e.type), { className: "h-4.5 w-4.5 text-text-secondary" })
|
|
383
|
-
}), /* @__PURE__ */ O("div", {
|
|
384
|
-
className: "flex-1 min-w-0",
|
|
385
|
-
children: [
|
|
386
|
-
/* @__PURE__ */ O("div", {
|
|
387
|
-
className: "flex flex-wrap items-center gap-2 mb-1",
|
|
388
|
-
children: [
|
|
389
|
-
/* @__PURE__ */ D("h3", {
|
|
390
|
-
className: "text-sm font-medium text-text-primary",
|
|
391
|
-
children: e.title ?? e.description
|
|
392
|
-
}),
|
|
393
|
-
/* @__PURE__ */ D("span", {
|
|
394
|
-
className: t("inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-medium capitalize", M[e.priority]),
|
|
395
|
-
children: e.priority
|
|
396
|
-
}),
|
|
397
|
-
/* @__PURE__ */ D("span", {
|
|
398
|
-
className: t("inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-medium", N[e.status]),
|
|
399
|
-
children: e.status.replace("_", " ")
|
|
400
|
-
})
|
|
401
|
-
]
|
|
402
|
-
}),
|
|
403
|
-
/* @__PURE__ */ D("p", {
|
|
404
|
-
className: "text-xs text-text-secondary line-clamp-1",
|
|
405
|
-
children: e.description
|
|
406
|
-
}),
|
|
407
|
-
/* @__PURE__ */ O("div", {
|
|
408
|
-
className: "flex flex-wrap items-center gap-3 mt-1.5 text-xs text-text-secondary",
|
|
409
|
-
children: [
|
|
410
|
-
e.assignedBy && /* @__PURE__ */ O("span", {
|
|
411
|
-
className: "flex items-center gap-1",
|
|
412
|
-
children: [/* @__PURE__ */ D(T, { className: "h-3 w-3" }), e.assignedBy]
|
|
413
|
-
}),
|
|
414
|
-
e.estimatedTime ? /* @__PURE__ */ O("span", {
|
|
415
|
-
className: "flex items-center gap-1",
|
|
416
|
-
children: [
|
|
417
|
-
/* @__PURE__ */ D(h, { className: "h-3 w-3" }),
|
|
418
|
-
e.estimatedTime,
|
|
419
|
-
" min"
|
|
420
|
-
]
|
|
421
|
-
}) : null,
|
|
422
|
-
e.dueTime && /* @__PURE__ */ O("span", {
|
|
423
|
-
className: "flex items-center gap-1",
|
|
424
|
-
children: [
|
|
425
|
-
/* @__PURE__ */ D(C, { className: "h-3 w-3" }),
|
|
426
|
-
"Due: ",
|
|
427
|
-
e.dueTime
|
|
428
|
-
]
|
|
429
|
-
}),
|
|
430
|
-
e.location && /* @__PURE__ */ O("span", {
|
|
431
|
-
className: "flex items-center gap-1",
|
|
432
|
-
children: [/* @__PURE__ */ D(_, { className: "h-3 w-3" }), e.location]
|
|
433
|
-
})
|
|
434
|
-
]
|
|
435
|
-
})
|
|
436
|
-
]
|
|
437
|
-
})]
|
|
438
|
-
}), /* @__PURE__ */ O("div", {
|
|
439
|
-
className: "flex gap-2 shrink-0",
|
|
329
|
+
}),
|
|
330
|
+
/* @__PURE__ */ E("div", {
|
|
331
|
+
className: "flex gap-2",
|
|
440
332
|
children: [
|
|
441
|
-
e.status === "pending" && /* @__PURE__ */
|
|
333
|
+
e.status === "pending" && /* @__PURE__ */ E("button", {
|
|
442
334
|
type: "button",
|
|
443
|
-
onClick: () =>
|
|
444
|
-
disabled:
|
|
445
|
-
className: t("inline-flex items-center gap-1.5 rounded-
|
|
446
|
-
children: [/* @__PURE__ */
|
|
335
|
+
onClick: () => Y(e.id, "start"),
|
|
336
|
+
disabled: i,
|
|
337
|
+
className: t("flex-1 inline-flex items-center justify-center gap-1.5 rounded-lg px-4 py-2.5 text-sm font-semibold transition-colors", i ? "bg-bg-sunken text-text-muted cursor-not-allowed" : "bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg-hover"),
|
|
338
|
+
children: [/* @__PURE__ */ T(b, { className: "h-4 w-4" }), "Start"]
|
|
447
339
|
}),
|
|
448
|
-
e.status === "in_progress" &&
|
|
340
|
+
e.status === "in_progress" && /* @__PURE__ */ E("button", {
|
|
449
341
|
type: "button",
|
|
450
342
|
onClick: () => V(e.id),
|
|
451
|
-
className: "inline-flex items-center gap-1.5 rounded-
|
|
452
|
-
children: [/* @__PURE__ */
|
|
343
|
+
className: "flex-1 inline-flex items-center justify-center gap-1.5 rounded-lg bg-action-primary-bg px-4 py-2.5 text-sm font-semibold text-action-primary-text hover:bg-action-primary-bg-hover transition-colors",
|
|
344
|
+
children: [/* @__PURE__ */ T(b, { className: "h-4 w-4" }), "Resume"]
|
|
453
345
|
}),
|
|
454
|
-
/* @__PURE__ */
|
|
346
|
+
/* @__PURE__ */ E("button", {
|
|
455
347
|
type: "button",
|
|
456
|
-
onClick: () =>
|
|
457
|
-
className: "inline-flex items-center gap-1
|
|
458
|
-
children: ["Details", /* @__PURE__ */
|
|
348
|
+
onClick: () => d(`/worker/task/${e.id}`),
|
|
349
|
+
className: "inline-flex items-center justify-center gap-1 rounded-lg border border-border-default bg-bg-surface px-4 py-2.5 text-sm font-medium text-text-primary hover:bg-bg-sunken transition-colors",
|
|
350
|
+
children: ["Details", /* @__PURE__ */ T(m, { className: "h-4 w-4" })]
|
|
459
351
|
})
|
|
460
352
|
]
|
|
461
|
-
})
|
|
462
|
-
})
|
|
463
|
-
}, e.id))
|
|
464
|
-
}) : /* @__PURE__ */ O("div", {
|
|
465
|
-
className: "p-8 text-center",
|
|
466
|
-
children: [/* @__PURE__ */ D(d, { className: "h-10 w-10 text-status-success-text opacity-40 mx-auto mb-2" }), /* @__PURE__ */ D("p", {
|
|
467
|
-
className: "text-sm text-text-secondary",
|
|
468
|
-
children: "All tasks completed!"
|
|
469
|
-
})]
|
|
470
|
-
})
|
|
471
|
-
})] }),
|
|
472
|
-
/* @__PURE__ */ O("div", { children: [/* @__PURE__ */ D("h2", {
|
|
473
|
-
className: "text-base font-semibold text-text-primary mb-3",
|
|
474
|
-
children: "Recently Completed"
|
|
475
|
-
}), /* @__PURE__ */ D("div", {
|
|
476
|
-
className: "rounded-lg border border-border-subtle bg-bg-surface p-5 shadow-sm",
|
|
477
|
-
children: X.length > 0 ? /* @__PURE__ */ D("div", {
|
|
478
|
-
className: "space-y-3",
|
|
479
|
-
children: X.slice(0, 3).map((e) => /* @__PURE__ */ O("div", {
|
|
480
|
-
className: "flex items-center gap-3 p-3 rounded-lg bg-status-success-bg-subtle border border-status-success-text/10",
|
|
481
|
-
children: [
|
|
482
|
-
/* @__PURE__ */ D("div", {
|
|
483
|
-
className: "flex h-8 w-8 items-center justify-center rounded-md bg-status-success-bg-subtle",
|
|
484
|
-
children: /* @__PURE__ */ D(P(e.type), { className: "h-4 w-4 text-status-success-text" })
|
|
485
|
-
}),
|
|
486
|
-
/* @__PURE__ */ O("div", {
|
|
487
|
-
className: "flex-1 min-w-0",
|
|
488
|
-
children: [/* @__PURE__ */ D("p", {
|
|
489
|
-
className: "text-sm font-medium text-text-primary",
|
|
490
|
-
children: e.title ?? e.description
|
|
491
|
-
}), e.completedAt && /* @__PURE__ */ O("p", {
|
|
492
|
-
className: "text-xs text-text-secondary",
|
|
493
|
-
children: [
|
|
494
|
-
"Completed at",
|
|
495
|
-
" ",
|
|
496
|
-
new Date(e.completedAt).toLocaleTimeString("en-IN", {
|
|
497
|
-
hour: "2-digit",
|
|
498
|
-
minute: "2-digit",
|
|
499
|
-
hour12: !0
|
|
500
|
-
})
|
|
501
|
-
]
|
|
502
|
-
})]
|
|
503
|
-
}),
|
|
504
|
-
/* @__PURE__ */ D(d, { className: "h-4 w-4 text-status-success-text shrink-0" })
|
|
353
|
+
})
|
|
505
354
|
]
|
|
506
|
-
}, e.id)
|
|
507
|
-
}) : /* @__PURE__ */ D("p", {
|
|
508
|
-
className: "text-sm text-text-secondary text-center py-4",
|
|
509
|
-
children: "No completed tasks yet today"
|
|
355
|
+
}, e.id);
|
|
510
356
|
})
|
|
357
|
+
}) : /* @__PURE__ */ E(D, {
|
|
358
|
+
className: "p-8 text-center",
|
|
359
|
+
children: [/* @__PURE__ */ T(f, { className: "h-10 w-10 text-status-success-text opacity-50 mx-auto mb-2" }), /* @__PURE__ */ T("p", {
|
|
360
|
+
className: "text-sm text-text-secondary",
|
|
361
|
+
children: "All tasks completed. Nice work!"
|
|
362
|
+
})]
|
|
511
363
|
})] }),
|
|
512
|
-
/* @__PURE__ */
|
|
513
|
-
className: "
|
|
514
|
-
children: [/* @__PURE__ */ D
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
}), /* @__PURE__ */ O("div", {
|
|
518
|
-
className: "grid grid-cols-2 gap-4 sm:grid-cols-4",
|
|
364
|
+
/* @__PURE__ */ E("div", {
|
|
365
|
+
className: "grid grid-cols-1 lg:grid-cols-3 gap-4",
|
|
366
|
+
children: [/* @__PURE__ */ E(D, {
|
|
367
|
+
treatment: "insight",
|
|
368
|
+
className: "p-6 flex flex-col items-center text-center",
|
|
519
369
|
children: [
|
|
520
|
-
/* @__PURE__ */
|
|
521
|
-
className: "text-
|
|
522
|
-
children: "Total Deliveries"
|
|
523
|
-
}), /* @__PURE__ */ D("p", {
|
|
524
|
-
className: "text-lg font-bold text-text-primary",
|
|
525
|
-
children: I?.totalDeliveries || 0
|
|
526
|
-
})] }),
|
|
527
|
-
/* @__PURE__ */ O("div", { children: [/* @__PURE__ */ D("p", {
|
|
528
|
-
className: "text-xs text-text-secondary",
|
|
529
|
-
children: "Total Earnings"
|
|
530
|
-
}), /* @__PURE__ */ D("p", {
|
|
531
|
-
className: "text-lg font-bold text-text-primary",
|
|
532
|
-
children: s(I?.totalEarnings || 0, { minimumFractionDigits: 0 })
|
|
533
|
-
})] }),
|
|
534
|
-
/* @__PURE__ */ O("div", { children: [/* @__PURE__ */ D("p", {
|
|
535
|
-
className: "text-xs text-text-secondary",
|
|
536
|
-
children: "Average Rating"
|
|
537
|
-
}), /* @__PURE__ */ O("p", {
|
|
538
|
-
className: "text-lg font-bold text-text-primary flex items-center gap-1",
|
|
539
|
-
children: [I?.averageRating || 0, /* @__PURE__ */ D(S, { className: "h-4 w-4 fill-status-warning-text text-status-warning-text" })]
|
|
540
|
-
})] }),
|
|
541
|
-
/* @__PURE__ */ O("div", { children: [/* @__PURE__ */ D("p", {
|
|
542
|
-
className: "text-xs text-text-secondary",
|
|
370
|
+
/* @__PURE__ */ T("h2", {
|
|
371
|
+
className: "text-base font-semibold text-text-primary mb-4 self-start",
|
|
543
372
|
children: "Completion Rate"
|
|
544
|
-
}),
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
373
|
+
}),
|
|
374
|
+
/* @__PURE__ */ T(c, {
|
|
375
|
+
value: I?.completionRate ?? 0,
|
|
376
|
+
max: 100,
|
|
377
|
+
label: `${I?.completionRate ?? 0}%`,
|
|
378
|
+
caption: "on-time"
|
|
379
|
+
}),
|
|
380
|
+
/* @__PURE__ */ T("div", {
|
|
381
|
+
className: "mt-4",
|
|
382
|
+
children: /* @__PURE__ */ T(ee, {
|
|
383
|
+
value: I?.averageRating ?? 0,
|
|
384
|
+
showValue: !0,
|
|
385
|
+
size: 18
|
|
386
|
+
})
|
|
387
|
+
})
|
|
548
388
|
]
|
|
389
|
+
}), /* @__PURE__ */ E(D, {
|
|
390
|
+
className: "p-6 lg:col-span-2",
|
|
391
|
+
children: [/* @__PURE__ */ T("h2", {
|
|
392
|
+
className: "text-base font-semibold text-text-primary mb-4",
|
|
393
|
+
children: "Recently Completed"
|
|
394
|
+
}), $.length > 0 ? /* @__PURE__ */ T("div", {
|
|
395
|
+
className: "space-y-3",
|
|
396
|
+
children: $.slice(0, 4).map((e) => /* @__PURE__ */ E("div", {
|
|
397
|
+
className: "flex items-center gap-3 rounded-lg bg-status-success-bg-subtle border border-status-success-text/10 p-3",
|
|
398
|
+
children: [
|
|
399
|
+
/* @__PURE__ */ T("div", {
|
|
400
|
+
className: "flex h-8 w-8 items-center justify-center rounded-md bg-status-success-bg-subtle",
|
|
401
|
+
children: /* @__PURE__ */ T(M(e.type), { className: "h-4 w-4 text-status-success-text" })
|
|
402
|
+
}),
|
|
403
|
+
/* @__PURE__ */ E("div", {
|
|
404
|
+
className: "flex-1 min-w-0",
|
|
405
|
+
children: [/* @__PURE__ */ T("p", {
|
|
406
|
+
className: "text-sm font-medium text-text-primary truncate",
|
|
407
|
+
children: e.title ?? e.description
|
|
408
|
+
}), e.completedAt && /* @__PURE__ */ E("p", {
|
|
409
|
+
className: "text-xs text-text-secondary",
|
|
410
|
+
children: [
|
|
411
|
+
"Completed at",
|
|
412
|
+
" ",
|
|
413
|
+
new Date(e.completedAt).toLocaleTimeString("en-IN", {
|
|
414
|
+
hour: "2-digit",
|
|
415
|
+
minute: "2-digit",
|
|
416
|
+
hour12: !0
|
|
417
|
+
})
|
|
418
|
+
]
|
|
419
|
+
})]
|
|
420
|
+
}),
|
|
421
|
+
e.earnings > 0 && /* @__PURE__ */ T("span", {
|
|
422
|
+
className: "text-sm font-semibold text-text-primary tabular-nums",
|
|
423
|
+
children: s(e.earnings, { minimumFractionDigits: 0 })
|
|
424
|
+
}),
|
|
425
|
+
/* @__PURE__ */ T(f, { className: "h-4 w-4 text-status-success-text shrink-0" })
|
|
426
|
+
]
|
|
427
|
+
}, e.id))
|
|
428
|
+
}) : /* @__PURE__ */ T("p", {
|
|
429
|
+
className: "text-sm text-text-secondary text-center py-8",
|
|
430
|
+
children: "No completed tasks yet today."
|
|
431
|
+
})]
|
|
549
432
|
})]
|
|
550
433
|
})
|
|
551
434
|
]
|
|
@@ -553,6 +436,6 @@ var F = {
|
|
|
553
436
|
});
|
|
554
437
|
};
|
|
555
438
|
//#endregion
|
|
556
|
-
export {
|
|
439
|
+
export { F as WorkerDashboard };
|
|
557
440
|
|
|
558
441
|
//# sourceMappingURL=WorkerDashboard.js.map
|