@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
|
@@ -1,66 +1,49 @@
|
|
|
1
1
|
import { useKadaikodi as e } from "../../context/KadaikodiContext.js";
|
|
2
2
|
import { cn as t } from "../../utils/cn.js";
|
|
3
3
|
import { PageLayout as n } from "../../components/PageLayout.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { useUpdateWorkerTaskStatus as a, useWorkerTasks as o } from "../../hooks/useKadaikodiApi.js";
|
|
4
|
+
import { EmptyState as r } from "../../components/EmptyState.js";
|
|
5
|
+
import { useUpdateWorkerTask as i, useUpdateWorkerTaskStatus as a, useWorkerTasks as o } from "../../hooks/useKadaikodiApi.js";
|
|
7
6
|
import { formatCurrency as s, formatDate as c } from "../../utils/formatters.js";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
7
|
+
import { Timeline as l } from "../../components/viz/Timeline.js";
|
|
8
|
+
import { StepProgress as u } from "../../components/viz/StepProgress.js";
|
|
9
|
+
import "../../components/viz/index.js";
|
|
10
|
+
import { useEffect as d, useMemo as f, useState as p } from "react";
|
|
11
|
+
import { AlertTriangle as m, ArrowLeft as ee, CheckCircle2 as te, Clock as h, FileText as g, IndianRupee as _, Loader2 as v, MapPin as y, Navigation as b, Package as x, Phone as S, ShoppingBag as C, ShoppingCart as w, StickyNote as T, Truck as E, User as D } from "lucide-react";
|
|
12
|
+
import { useParams as O } from "react-router-dom";
|
|
13
|
+
import { jsx as k, jsxs as A } from "react/jsx-runtime";
|
|
14
|
+
import { GlassCard as j, PagePurpose as M } from "@burdenoff/fe-libs/ui";
|
|
13
15
|
//#region src/kadaikodi/pages/worker/TaskDetailsPage.tsx
|
|
14
|
-
|
|
16
|
+
var N = {
|
|
17
|
+
delivery: "Delivery",
|
|
18
|
+
pickup: "Pickup",
|
|
19
|
+
service: "Service"
|
|
20
|
+
};
|
|
21
|
+
function P(e) {
|
|
15
22
|
switch (e) {
|
|
16
|
-
case "delivery": return
|
|
17
|
-
case "
|
|
18
|
-
case "
|
|
19
|
-
|
|
20
|
-
case "pickup": return O;
|
|
21
|
-
case "service": return w;
|
|
22
|
-
default: return y;
|
|
23
|
+
case "delivery": return E;
|
|
24
|
+
case "pickup": return C;
|
|
25
|
+
case "service": return x;
|
|
26
|
+
default: return g;
|
|
23
27
|
}
|
|
24
28
|
}
|
|
25
|
-
function
|
|
29
|
+
function F(e) {
|
|
26
30
|
switch (e) {
|
|
27
|
-
case "urgent":
|
|
28
|
-
case "high": return "bg-status-
|
|
31
|
+
case "urgent":
|
|
32
|
+
case "high": return "bg-status-error-bg-subtle text-status-error-text";
|
|
29
33
|
case "medium": return "bg-status-warning-bg-subtle text-status-warning-text";
|
|
30
34
|
case "low": return "bg-status-success-bg-subtle text-status-success-text";
|
|
31
35
|
default: return "bg-bg-sunken text-text-secondary";
|
|
32
36
|
}
|
|
33
37
|
}
|
|
34
|
-
function
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
status: "assigned",
|
|
38
|
-
label: "Task Assigned",
|
|
39
|
-
timestamp: e.assignedTime || null,
|
|
40
|
-
completed: !0
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
status: "in_progress",
|
|
44
|
-
label: "Work Started",
|
|
45
|
-
timestamp: null,
|
|
46
|
-
completed: e.status === "in_progress" || e.status === "completed"
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
status: "completed",
|
|
50
|
-
label: "Task Completed",
|
|
51
|
-
timestamp: e.status === "completed" ? e.completedAt ?? null : null,
|
|
52
|
-
completed: e.status === "completed"
|
|
53
|
-
}
|
|
54
|
-
];
|
|
55
|
-
}
|
|
56
|
-
function H(e) {
|
|
57
|
-
return new Date(e).toLocaleTimeString("en-IN", {
|
|
38
|
+
function I(e) {
|
|
39
|
+
let t = new Date(e);
|
|
40
|
+
return Number.isNaN(t.getTime()) ? e : t.toLocaleTimeString("en-IN", {
|
|
58
41
|
hour: "numeric",
|
|
59
42
|
minute: "2-digit",
|
|
60
43
|
hour12: !0
|
|
61
44
|
});
|
|
62
45
|
}
|
|
63
|
-
function
|
|
46
|
+
function L(e) {
|
|
64
47
|
let t = e.deliveryAddress ? [
|
|
65
48
|
e.deliveryAddress.street,
|
|
66
49
|
e.deliveryAddress.area,
|
|
@@ -89,443 +72,457 @@ function U(e) {
|
|
|
89
72
|
phone: e.customerPhone,
|
|
90
73
|
address: t
|
|
91
74
|
},
|
|
92
|
-
orderItems: [],
|
|
93
75
|
specialInstructions: e.notes ?? void 0,
|
|
94
76
|
notes: e.notes ?? "",
|
|
95
77
|
completedAt: e.completedAt
|
|
96
78
|
};
|
|
97
79
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
80
|
+
var R = [
|
|
81
|
+
{ label: "Assigned" },
|
|
82
|
+
{ label: "Picked Up" },
|
|
83
|
+
{ label: "Delivered" }
|
|
84
|
+
];
|
|
85
|
+
function z(e) {
|
|
86
|
+
switch (e) {
|
|
87
|
+
case "pending": return 1;
|
|
88
|
+
case "in_progress": return 2;
|
|
89
|
+
case "completed": return 3;
|
|
90
|
+
default: return 0;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
function B({ pickupLabel: e, dropLabel: t, distance: n }) {
|
|
94
|
+
return /* @__PURE__ */ A("div", {
|
|
95
|
+
className: "relative overflow-hidden rounded-[var(--radius-card)] border border-border-subtle bg-bg-sunken",
|
|
96
|
+
children: [
|
|
97
|
+
/* @__PURE__ */ A("svg", {
|
|
98
|
+
viewBox: "0 0 400 190",
|
|
99
|
+
className: "block w-full",
|
|
100
|
+
role: "img",
|
|
101
|
+
"aria-label": `Illustrative route from ${e} to ${t}`,
|
|
102
|
+
children: [
|
|
103
|
+
/* @__PURE__ */ A("g", {
|
|
104
|
+
stroke: "var(--color-border-subtle)",
|
|
105
|
+
strokeWidth: "1",
|
|
106
|
+
opacity: "0.7",
|
|
107
|
+
children: [/* @__PURE__ */ k("path", { d: "M0 45 H400 M0 95 H400 M0 145 H400" }), /* @__PURE__ */ k("path", { d: "M70 0 V190 M160 0 V190 M250 0 V190 M330 0 V190" })]
|
|
108
|
+
}),
|
|
109
|
+
/* @__PURE__ */ k("path", {
|
|
110
|
+
d: "M70 55 H150 Q165 55 165 70 V120 Q165 135 180 135 H300",
|
|
111
|
+
fill: "none",
|
|
112
|
+
stroke: "var(--color-accent-primary)",
|
|
113
|
+
strokeWidth: "3.5",
|
|
114
|
+
strokeLinecap: "round",
|
|
115
|
+
strokeLinejoin: "round",
|
|
116
|
+
strokeDasharray: "1 0"
|
|
117
|
+
}),
|
|
118
|
+
/* @__PURE__ */ k("circle", {
|
|
119
|
+
cx: "70",
|
|
120
|
+
cy: "55",
|
|
121
|
+
r: "7",
|
|
122
|
+
fill: "var(--color-accent-primary)"
|
|
123
|
+
}),
|
|
124
|
+
/* @__PURE__ */ k("circle", {
|
|
125
|
+
cx: "70",
|
|
126
|
+
cy: "55",
|
|
127
|
+
r: "12",
|
|
128
|
+
fill: "var(--color-accent-primary)",
|
|
129
|
+
opacity: "0.18"
|
|
130
|
+
}),
|
|
131
|
+
/* @__PURE__ */ k("circle", {
|
|
132
|
+
cx: "300",
|
|
133
|
+
cy: "135",
|
|
134
|
+
r: "7",
|
|
135
|
+
fill: "var(--color-status-success-text)"
|
|
136
|
+
}),
|
|
137
|
+
/* @__PURE__ */ k("circle", {
|
|
138
|
+
cx: "300",
|
|
139
|
+
cy: "135",
|
|
140
|
+
r: "12",
|
|
141
|
+
fill: "var(--color-status-success-text)",
|
|
142
|
+
opacity: "0.18"
|
|
143
|
+
})
|
|
144
|
+
]
|
|
145
|
+
}),
|
|
146
|
+
/* @__PURE__ */ A("div", {
|
|
147
|
+
className: "pointer-events-none absolute left-3 top-3 flex items-center gap-1.5 rounded-md bg-bg-surface/85 px-2 py-1 backdrop-blur",
|
|
148
|
+
children: [/* @__PURE__ */ k(x, { className: "h-3.5 w-3.5 text-accent-primary" }), /* @__PURE__ */ k("span", {
|
|
149
|
+
className: "max-w-[9rem] truncate text-[11px] font-medium text-text-primary",
|
|
150
|
+
children: e
|
|
151
|
+
})]
|
|
152
|
+
}),
|
|
153
|
+
/* @__PURE__ */ A("div", {
|
|
154
|
+
className: "pointer-events-none absolute bottom-3 right-3 flex items-center gap-1.5 rounded-md bg-bg-surface/85 px-2 py-1 backdrop-blur",
|
|
155
|
+
children: [/* @__PURE__ */ k(y, { className: "h-3.5 w-3.5 text-status-success-text" }), /* @__PURE__ */ k("span", {
|
|
156
|
+
className: "max-w-[9rem] truncate text-[11px] font-medium text-text-primary",
|
|
157
|
+
children: t
|
|
158
|
+
})]
|
|
159
|
+
}),
|
|
160
|
+
/* @__PURE__ */ A("div", {
|
|
161
|
+
className: "flex items-center justify-between border-t border-border-subtle px-3 py-2",
|
|
162
|
+
children: [/* @__PURE__ */ k("span", {
|
|
163
|
+
className: "text-[11px] text-text-muted",
|
|
164
|
+
children: "Illustrative route · not to scale"
|
|
165
|
+
}), n != null && /* @__PURE__ */ A("span", {
|
|
166
|
+
className: "text-[11px] font-medium text-text-secondary tabular-nums",
|
|
167
|
+
children: [n, " km"]
|
|
168
|
+
})]
|
|
169
|
+
})
|
|
170
|
+
]
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
function V() {
|
|
174
|
+
let { taskId: y } = O(), { navigateTo: x, currentUser: C } = e(), { data: E = [], isLoading: V } = o(C?.id ?? ""), H = a(), U = i(), [W, G] = p(null), [K, q] = p(""), [J, Y] = p(!1);
|
|
175
|
+
d(() => {
|
|
176
|
+
let e = E.find((e) => e.id === y);
|
|
102
177
|
if (e) {
|
|
103
|
-
let t =
|
|
104
|
-
|
|
105
|
-
} else
|
|
106
|
-
}, [
|
|
107
|
-
let
|
|
108
|
-
|
|
109
|
-
...
|
|
178
|
+
let t = L(e);
|
|
179
|
+
G(t), q(t.notes ?? "");
|
|
180
|
+
} else G(null);
|
|
181
|
+
}, [E, y]);
|
|
182
|
+
let X = () => {
|
|
183
|
+
W && (W.status === "pending" ? (G({
|
|
184
|
+
...W,
|
|
110
185
|
status: "in_progress"
|
|
111
|
-
}),
|
|
112
|
-
taskId:
|
|
186
|
+
}), H.mutate({
|
|
187
|
+
taskId: W.id,
|
|
113
188
|
status: "IN_PROGRESS"
|
|
114
|
-
}))
|
|
115
|
-
|
|
116
|
-
G && (K({
|
|
117
|
-
...G,
|
|
189
|
+
})) : W.status === "in_progress" && (G({
|
|
190
|
+
...W,
|
|
118
191
|
status: "completed"
|
|
119
|
-
}),
|
|
120
|
-
taskId:
|
|
192
|
+
}), H.mutate({
|
|
193
|
+
taskId: W.id,
|
|
121
194
|
status: "COMPLETED"
|
|
122
|
-
}));
|
|
195
|
+
})));
|
|
123
196
|
}, Z = () => {
|
|
124
|
-
|
|
125
|
-
}, Q = () => {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
197
|
+
W?.customerInfo?.phone && (window.location.href = `tel:${W.customerInfo.phone.replace(/\s/g, "")}`);
|
|
198
|
+
}, Q = (e) => {
|
|
199
|
+
e && window.open(`https://maps.google.com?q=${encodeURIComponent(e)}`, "_blank");
|
|
200
|
+
}, $ = () => {
|
|
201
|
+
W && (Y(!1), U.mutate({
|
|
202
|
+
taskId: W.id,
|
|
203
|
+
notes: K
|
|
204
|
+
}, { onSuccess: () => {
|
|
205
|
+
G((e) => e && {
|
|
206
|
+
...e,
|
|
207
|
+
notes: K
|
|
208
|
+
}), Y(!0);
|
|
209
|
+
} }));
|
|
210
|
+
}, ne = f(() => W ? [
|
|
211
|
+
{
|
|
212
|
+
title: "Task assigned",
|
|
213
|
+
time: W.assignedTime ? I(W.assignedTime) : void 0,
|
|
214
|
+
meta: W.assignedBy || void 0,
|
|
215
|
+
tone: "success"
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
title: "Picked up",
|
|
219
|
+
time: W.status === "in_progress" || W.status === "completed" ? "Done" : void 0,
|
|
220
|
+
tone: W.status === "in_progress" || W.status === "completed" ? "success" : "muted"
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
title: "Delivered",
|
|
224
|
+
time: W.status === "completed" ? W.completedAt ? I(W.completedAt) : "Done" : void 0,
|
|
225
|
+
tone: W.status === "completed" ? "success" : "muted"
|
|
129
226
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
...G,
|
|
133
|
-
notes: q
|
|
134
|
-
}), alert("Notes saved successfully"));
|
|
135
|
-
}, $ = l(() => G ? V(G) : [], [G]);
|
|
136
|
-
if (j) return /* @__PURE__ */ P(n, {
|
|
227
|
+
] : [], [W]);
|
|
228
|
+
if (V) return /* @__PURE__ */ k(n, {
|
|
137
229
|
title: "Task Details",
|
|
138
|
-
children: /* @__PURE__ */
|
|
230
|
+
children: /* @__PURE__ */ k("div", {
|
|
139
231
|
className: "flex items-center justify-center py-24",
|
|
140
|
-
children: /* @__PURE__ */
|
|
232
|
+
children: /* @__PURE__ */ A("div", {
|
|
141
233
|
className: "text-center",
|
|
142
|
-
children: [/* @__PURE__ */
|
|
234
|
+
children: [/* @__PURE__ */ k(v, { className: "h-10 w-10 animate-spin text-text-secondary mx-auto mb-4" }), /* @__PURE__ */ k("p", {
|
|
143
235
|
className: "text-sm text-text-secondary",
|
|
144
236
|
children: "Loading task details..."
|
|
145
237
|
})]
|
|
146
238
|
})
|
|
147
239
|
})
|
|
148
240
|
});
|
|
149
|
-
if (!
|
|
241
|
+
if (!W) return /* @__PURE__ */ k(n, {
|
|
150
242
|
title: "Task Not Found",
|
|
151
|
-
children: /* @__PURE__ */
|
|
152
|
-
icon: /* @__PURE__ */
|
|
243
|
+
children: /* @__PURE__ */ k(r, {
|
|
244
|
+
icon: /* @__PURE__ */ k(g, { className: "h-12 w-12" }),
|
|
153
245
|
title: "Task not found",
|
|
154
|
-
description: `No task found with ID "${
|
|
155
|
-
action: /* @__PURE__ */
|
|
246
|
+
description: `No task found with ID "${y}".`,
|
|
247
|
+
action: /* @__PURE__ */ k("button", {
|
|
156
248
|
type: "button",
|
|
157
|
-
onClick: () =>
|
|
158
|
-
className: "rounded-lg bg-
|
|
249
|
+
onClick: () => x("/worker/orders"),
|
|
250
|
+
className: "rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg-hover transition-colors",
|
|
159
251
|
children: "View All Orders"
|
|
160
252
|
})
|
|
161
253
|
})
|
|
162
254
|
});
|
|
163
|
-
let re =
|
|
164
|
-
return /* @__PURE__ */
|
|
165
|
-
title: /* @__PURE__ */
|
|
166
|
-
className: "flex items-center gap-3",
|
|
167
|
-
children: [/* @__PURE__ */
|
|
255
|
+
let re = P(W.type), ie = N[W.type] ?? "Task", ae = W.cartName || "Pickup", oe = W.customerInfo.address || W.customerInfo.name || "Drop-off", se = W.status === "pending" ? "Mark Picked Up" : W.status === "in_progress" ? "Mark Delivered" : "Delivered";
|
|
256
|
+
return /* @__PURE__ */ A(n, {
|
|
257
|
+
title: /* @__PURE__ */ A("div", {
|
|
258
|
+
className: "flex items-center gap-3 min-w-0",
|
|
259
|
+
children: [/* @__PURE__ */ k("button", {
|
|
168
260
|
type: "button",
|
|
169
|
-
onClick: () =>
|
|
170
|
-
className: "rounded-md p-1 text-text-secondary hover:bg-
|
|
171
|
-
|
|
172
|
-
|
|
261
|
+
onClick: () => x("/worker/orders"),
|
|
262
|
+
className: "rounded-md p-1 text-text-secondary hover:bg-bg-sunken hover:text-text-primary transition-colors shrink-0",
|
|
263
|
+
"aria-label": "Back to orders",
|
|
264
|
+
children: /* @__PURE__ */ k(ee, { className: "h-5 w-5" })
|
|
265
|
+
}), /* @__PURE__ */ A("span", {
|
|
266
|
+
className: "truncate",
|
|
267
|
+
children: [ie, W.orderId ? /* @__PURE__ */ A("span", {
|
|
268
|
+
className: "text-text-secondary",
|
|
269
|
+
children: [" · #", W.orderId]
|
|
270
|
+
}) : null]
|
|
271
|
+
})]
|
|
173
272
|
}),
|
|
174
|
-
description: "
|
|
175
|
-
children: [
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
/* @__PURE__ */
|
|
181
|
-
|
|
182
|
-
className: "
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
/* @__PURE__ */
|
|
216
|
-
className: "
|
|
217
|
-
children: G.title
|
|
218
|
-
}),
|
|
219
|
-
/* @__PURE__ */ P("p", {
|
|
220
|
-
className: "text-sm text-text-secondary mt-1",
|
|
221
|
-
children: G.description
|
|
222
|
-
}),
|
|
223
|
-
/* @__PURE__ */ F("div", {
|
|
224
|
-
className: "flex flex-wrap items-center gap-2 mt-3",
|
|
273
|
+
description: "Everything you need to complete this delivery",
|
|
274
|
+
children: [/* @__PURE__ */ k(M, {
|
|
275
|
+
className: "mb-6",
|
|
276
|
+
children: "One delivery, start to finish. Reach the customer, follow the route, jot a note, and advance the job — mark it picked up, then delivered — so nothing gets missed and your completion stats stay strong."
|
|
277
|
+
}), /* @__PURE__ */ A("div", {
|
|
278
|
+
className: "space-y-6",
|
|
279
|
+
children: [/* @__PURE__ */ A(j, {
|
|
280
|
+
treatment: "metric",
|
|
281
|
+
className: "p-5",
|
|
282
|
+
children: [/* @__PURE__ */ A("div", {
|
|
283
|
+
className: "mb-4 flex flex-wrap items-center gap-2",
|
|
284
|
+
children: [
|
|
285
|
+
/* @__PURE__ */ k("span", {
|
|
286
|
+
className: "flex h-8 w-8 items-center justify-center rounded-lg bg-accent-primary/12 text-accent-primary",
|
|
287
|
+
children: /* @__PURE__ */ k(re, { className: "h-4.5 w-4.5" })
|
|
288
|
+
}),
|
|
289
|
+
/* @__PURE__ */ k("h2", {
|
|
290
|
+
className: "text-base font-semibold text-text-primary",
|
|
291
|
+
children: W.title
|
|
292
|
+
}),
|
|
293
|
+
/* @__PURE__ */ k("span", {
|
|
294
|
+
className: t("inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium uppercase", F(W.priority)),
|
|
295
|
+
children: W.priority
|
|
296
|
+
})
|
|
297
|
+
]
|
|
298
|
+
}), /* @__PURE__ */ k(u, {
|
|
299
|
+
steps: R,
|
|
300
|
+
current: z(W.status)
|
|
301
|
+
})]
|
|
302
|
+
}), /* @__PURE__ */ A("div", {
|
|
303
|
+
className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
|
|
304
|
+
children: [/* @__PURE__ */ A("div", {
|
|
305
|
+
className: "lg:col-span-2 space-y-6",
|
|
306
|
+
children: [
|
|
307
|
+
/* @__PURE__ */ k(B, {
|
|
308
|
+
pickupLabel: ae,
|
|
309
|
+
dropLabel: oe,
|
|
310
|
+
distance: W.distance
|
|
311
|
+
}),
|
|
312
|
+
/* @__PURE__ */ A("div", {
|
|
313
|
+
className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
|
|
314
|
+
children: [/* @__PURE__ */ A(j, {
|
|
315
|
+
className: "p-5",
|
|
225
316
|
children: [
|
|
226
|
-
/* @__PURE__ */
|
|
227
|
-
className:
|
|
228
|
-
children:
|
|
317
|
+
/* @__PURE__ */ k("p", {
|
|
318
|
+
className: "text-xs font-medium uppercase tracking-wide text-text-muted",
|
|
319
|
+
children: "Pickup"
|
|
229
320
|
}),
|
|
230
|
-
/* @__PURE__ */
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
] })]
|
|
242
|
-
}), (G.assignedBy || G.assignedTime) && /* @__PURE__ */ F("div", {
|
|
243
|
-
className: "text-right shrink-0",
|
|
244
|
-
children: [
|
|
245
|
-
/* @__PURE__ */ P("p", {
|
|
246
|
-
className: "text-xs text-text-secondary",
|
|
247
|
-
children: "Assigned"
|
|
248
|
-
}),
|
|
249
|
-
G.assignedBy && /* @__PURE__ */ P("p", {
|
|
250
|
-
className: "text-sm font-medium text-text-primary",
|
|
251
|
-
children: G.assignedBy
|
|
252
|
-
}),
|
|
253
|
-
G.assignedTime && /* @__PURE__ */ P("p", {
|
|
254
|
-
className: "text-xs text-text-secondary mt-1",
|
|
255
|
-
children: H(G.assignedTime)
|
|
256
|
-
})
|
|
257
|
-
]
|
|
258
|
-
})]
|
|
259
|
-
}), G.dueTime && G.status !== "completed" && /* @__PURE__ */ P("div", {
|
|
260
|
-
className: "rounded-md bg-status-warning-bg-subtle border border-status-warning-text/20 p-3",
|
|
261
|
-
children: /* @__PURE__ */ F("div", {
|
|
262
|
-
className: "flex items-center gap-2",
|
|
263
|
-
children: [/* @__PURE__ */ P(A, { className: "h-4 w-4 text-status-warning-text shrink-0" }), /* @__PURE__ */ F("span", {
|
|
264
|
-
className: "text-xs font-medium text-status-warning-text",
|
|
265
|
-
children: ["Due by ", H(G.dueTime)]
|
|
266
|
-
})]
|
|
267
|
-
})
|
|
268
|
-
})] }), /* @__PURE__ */ F("div", {
|
|
269
|
-
className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
|
|
270
|
-
children: [/* @__PURE__ */ F("div", {
|
|
271
|
-
className: "lg:col-span-2 space-y-6",
|
|
272
|
-
children: [
|
|
273
|
-
/* @__PURE__ */ F("div", {
|
|
274
|
-
className: "rounded-lg border border-border-subtle bg-bg-surface p-6",
|
|
275
|
-
children: [/* @__PURE__ */ P("h3", {
|
|
276
|
-
className: "text-base font-semibold text-text-primary mb-4",
|
|
277
|
-
children: "Customer Information"
|
|
278
|
-
}), /* @__PURE__ */ F("div", {
|
|
279
|
-
className: "grid grid-cols-1 md:grid-cols-2 gap-5",
|
|
280
|
-
children: [/* @__PURE__ */ F("div", { children: [/* @__PURE__ */ P("div", {
|
|
281
|
-
className: "space-y-3",
|
|
282
|
-
children: /* @__PURE__ */ F("div", {
|
|
283
|
-
className: "flex items-center gap-3",
|
|
284
|
-
children: [/* @__PURE__ */ P("div", {
|
|
285
|
-
className: "flex h-10 w-10 items-center justify-center rounded-full bg-bg-sunken text-text-secondary",
|
|
286
|
-
children: /* @__PURE__ */ P(M, { className: "h-5 w-5" })
|
|
287
|
-
}), /* @__PURE__ */ F("div", { children: [/* @__PURE__ */ P("p", {
|
|
288
|
-
className: "text-sm font-medium text-text-primary",
|
|
289
|
-
children: G.customerInfo.name
|
|
290
|
-
}), /* @__PURE__ */ P("p", {
|
|
291
|
-
className: "text-xs text-text-secondary",
|
|
292
|
-
children: G.customerInfo.phone
|
|
293
|
-
})] })]
|
|
294
|
-
})
|
|
295
|
-
}), /* @__PURE__ */ F("div", {
|
|
296
|
-
className: "flex gap-2 mt-4",
|
|
297
|
-
children: [/* @__PURE__ */ F("button", {
|
|
298
|
-
type: "button",
|
|
299
|
-
onClick: Z,
|
|
300
|
-
className: "inline-flex items-center gap-1.5 rounded-md bg-accent px-3 py-2 text-xs font-medium text-text-primary hover:bg-accent/80 transition-colors",
|
|
301
|
-
children: [/* @__PURE__ */ P(T, { className: "h-3.5 w-3.5" }), "Call Customer"]
|
|
302
|
-
}), /* @__PURE__ */ F("button", {
|
|
321
|
+
/* @__PURE__ */ k("p", {
|
|
322
|
+
className: "mt-1 text-sm font-semibold text-text-primary",
|
|
323
|
+
children: W.cartName
|
|
324
|
+
}),
|
|
325
|
+
W.location && /* @__PURE__ */ k("p", {
|
|
326
|
+
className: "mt-0.5 text-xs text-text-secondary",
|
|
327
|
+
children: W.location
|
|
328
|
+
}),
|
|
329
|
+
/* @__PURE__ */ k("div", {
|
|
330
|
+
className: "mt-4",
|
|
331
|
+
children: /* @__PURE__ */ A("button", {
|
|
303
332
|
type: "button",
|
|
304
|
-
onClick: Q,
|
|
305
|
-
className: "inline-flex items-center gap-1.5 rounded-md bg-
|
|
306
|
-
children: [/* @__PURE__ */
|
|
307
|
-
})]
|
|
308
|
-
})] }), /* @__PURE__ */ F("div", { children: [/* @__PURE__ */ P("p", {
|
|
309
|
-
className: "text-xs text-text-secondary mb-2",
|
|
310
|
-
children: "Delivery Address"
|
|
311
|
-
}), /* @__PURE__ */ P("div", {
|
|
312
|
-
className: "rounded-md bg-bg-sunken/50 p-3",
|
|
313
|
-
children: /* @__PURE__ */ F("p", {
|
|
314
|
-
className: "text-xs text-text-primary flex items-start gap-2",
|
|
315
|
-
children: [/* @__PURE__ */ P(S, { className: "h-3.5 w-3.5 shrink-0 mt-0.5 text-text-secondary" }), G.customerInfo.address]
|
|
333
|
+
onClick: () => Q(W.location || W.cartName),
|
|
334
|
+
className: "inline-flex items-center gap-1.5 rounded-md border border-border-default bg-bg-surface px-3 py-2 text-xs font-medium text-text-primary hover:bg-bg-sunken transition-colors",
|
|
335
|
+
children: [/* @__PURE__ */ k(b, { className: "h-3.5 w-3.5" }), "Navigate"]
|
|
316
336
|
})
|
|
317
|
-
})] })]
|
|
318
|
-
})]
|
|
319
|
-
}),
|
|
320
|
-
G.orderItems.length > 0 && /* @__PURE__ */ F("div", {
|
|
321
|
-
className: "rounded-lg border border-border-subtle bg-bg-surface p-6",
|
|
322
|
-
children: [/* @__PURE__ */ P("h3", {
|
|
323
|
-
className: "text-base font-semibold text-text-primary mb-3",
|
|
324
|
-
children: "Order Items"
|
|
325
|
-
}), /* @__PURE__ */ P("div", {
|
|
326
|
-
className: "space-y-2",
|
|
327
|
-
children: G.orderItems.map((e, t) => /* @__PURE__ */ P("div", {
|
|
328
|
-
className: "flex items-start justify-between p-3 rounded-md bg-bg-sunken/50",
|
|
329
|
-
children: /* @__PURE__ */ F("div", { children: [/* @__PURE__ */ F("p", {
|
|
330
|
-
className: "text-sm font-medium text-text-primary",
|
|
331
|
-
children: [
|
|
332
|
-
e.quantity,
|
|
333
|
-
"x ",
|
|
334
|
-
e.name
|
|
335
|
-
]
|
|
336
|
-
}), e.specialInstructions && /* @__PURE__ */ F("p", {
|
|
337
|
-
className: "text-xs text-text-secondary mt-0.5",
|
|
338
|
-
children: ["Note: ", e.specialInstructions]
|
|
339
|
-
})] })
|
|
340
|
-
}, t))
|
|
341
|
-
})]
|
|
342
|
-
}),
|
|
343
|
-
G.specialInstructions && /* @__PURE__ */ F("div", {
|
|
344
|
-
className: "rounded-lg border border-border-subtle bg-bg-surface p-6",
|
|
345
|
-
children: [/* @__PURE__ */ P("h3", {
|
|
346
|
-
className: "text-base font-semibold text-text-primary mb-3",
|
|
347
|
-
children: "Special Instructions"
|
|
348
|
-
}), /* @__PURE__ */ P("div", {
|
|
349
|
-
className: "rounded-md bg-status-warning-bg-subtle border border-status-warning-text/20 p-4",
|
|
350
|
-
children: /* @__PURE__ */ F("p", {
|
|
351
|
-
className: "text-sm text-status-warning-text flex items-start gap-2",
|
|
352
|
-
children: [/* @__PURE__ */ P(d, { className: "h-4 w-4 shrink-0 mt-0.5 text-status-warning-text" }), G.specialInstructions]
|
|
353
337
|
})
|
|
354
|
-
|
|
355
|
-
}),
|
|
356
|
-
|
|
357
|
-
className: "rounded-lg border border-border-subtle bg-bg-surface p-6",
|
|
358
|
-
children: [/* @__PURE__ */ F("h3", {
|
|
359
|
-
className: "text-base font-semibold text-text-primary flex items-center gap-2 mb-3",
|
|
360
|
-
children: [/* @__PURE__ */ P(m, { className: "h-4 w-4 text-text-secondary" }), "Reference Photos"]
|
|
361
|
-
}), /* @__PURE__ */ P("div", {
|
|
362
|
-
className: "grid grid-cols-2 md:grid-cols-3 gap-3",
|
|
363
|
-
children: G.photos.map((e, t) => /* @__PURE__ */ P("img", {
|
|
364
|
-
src: e,
|
|
365
|
-
alt: `Reference ${t + 1}`,
|
|
366
|
-
className: "w-full h-32 object-cover rounded-lg border border-border-subtle"
|
|
367
|
-
}, t))
|
|
368
|
-
})]
|
|
369
|
-
}),
|
|
370
|
-
/* @__PURE__ */ F("div", {
|
|
371
|
-
className: "rounded-lg border border-border-subtle bg-bg-surface p-6",
|
|
338
|
+
]
|
|
339
|
+
}), /* @__PURE__ */ A(j, {
|
|
340
|
+
className: "p-5",
|
|
372
341
|
children: [
|
|
373
|
-
/* @__PURE__ */
|
|
374
|
-
className: "text-
|
|
375
|
-
children:
|
|
342
|
+
/* @__PURE__ */ k("p", {
|
|
343
|
+
className: "text-xs font-medium uppercase tracking-wide text-text-muted",
|
|
344
|
+
children: "Drop"
|
|
345
|
+
}),
|
|
346
|
+
/* @__PURE__ */ k("p", {
|
|
347
|
+
className: "mt-1 text-sm font-semibold text-text-primary",
|
|
348
|
+
children: W.customerInfo.name || "Customer"
|
|
349
|
+
}),
|
|
350
|
+
W.customerInfo.address && /* @__PURE__ */ k("p", {
|
|
351
|
+
className: "mt-0.5 text-xs text-text-secondary",
|
|
352
|
+
children: W.customerInfo.address
|
|
376
353
|
}),
|
|
377
|
-
/* @__PURE__ */
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
placeholder: "Add your notes about this task...",
|
|
381
|
-
rows: 4,
|
|
382
|
-
className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-border-focus/40 resize-none"
|
|
354
|
+
W.customerInfo.phone && /* @__PURE__ */ k("p", {
|
|
355
|
+
className: "mt-0.5 text-xs text-text-secondary",
|
|
356
|
+
children: W.customerInfo.phone
|
|
383
357
|
}),
|
|
384
|
-
/* @__PURE__ */
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
358
|
+
/* @__PURE__ */ A("div", {
|
|
359
|
+
className: "mt-4 flex gap-2",
|
|
360
|
+
children: [W.customerInfo.phone && /* @__PURE__ */ A("button", {
|
|
361
|
+
type: "button",
|
|
362
|
+
onClick: Z,
|
|
363
|
+
className: "inline-flex items-center gap-1.5 rounded-md border border-border-default bg-bg-surface px-3 py-2 text-xs font-medium text-text-primary hover:bg-bg-sunken transition-colors",
|
|
364
|
+
children: [/* @__PURE__ */ k(S, { className: "h-3.5 w-3.5" }), "Call"]
|
|
365
|
+
}), W.customerInfo.address && /* @__PURE__ */ A("button", {
|
|
366
|
+
type: "button",
|
|
367
|
+
onClick: () => Q(W.customerInfo.address),
|
|
368
|
+
className: "inline-flex items-center gap-1.5 rounded-md border border-border-default bg-bg-surface px-3 py-2 text-xs font-medium text-text-primary hover:bg-bg-sunken transition-colors",
|
|
369
|
+
children: [/* @__PURE__ */ k(b, { className: "h-3.5 w-3.5" }), "Navigate"]
|
|
370
|
+
})]
|
|
389
371
|
})
|
|
390
372
|
]
|
|
373
|
+
})]
|
|
374
|
+
}),
|
|
375
|
+
/* @__PURE__ */ k(j, {
|
|
376
|
+
treatment: "insight",
|
|
377
|
+
className: "p-5",
|
|
378
|
+
children: /* @__PURE__ */ A("div", {
|
|
379
|
+
className: "flex flex-wrap items-center justify-between gap-3",
|
|
380
|
+
children: [/* @__PURE__ */ A("div", {
|
|
381
|
+
className: "flex items-center gap-3",
|
|
382
|
+
children: [/* @__PURE__ */ k("span", {
|
|
383
|
+
className: "flex h-9 w-9 items-center justify-center rounded-lg bg-status-success-bg-subtle text-status-success-text",
|
|
384
|
+
children: /* @__PURE__ */ k(_, { className: "h-4.5 w-4.5" })
|
|
385
|
+
}), /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("p", {
|
|
386
|
+
className: "text-xs text-text-secondary",
|
|
387
|
+
children: "You earn"
|
|
388
|
+
}), /* @__PURE__ */ k("p", {
|
|
389
|
+
className: "text-lg font-bold text-text-primary",
|
|
390
|
+
children: s(W.earnings, { minimumFractionDigits: 0 })
|
|
391
|
+
})] })]
|
|
392
|
+
}), /* @__PURE__ */ A("div", {
|
|
393
|
+
className: "flex flex-wrap items-center gap-4 text-sm",
|
|
394
|
+
children: [/* @__PURE__ */ A("span", {
|
|
395
|
+
className: "flex items-center gap-1.5 text-text-secondary",
|
|
396
|
+
children: [/* @__PURE__ */ k(w, { className: "h-4 w-4" }), W.cartName]
|
|
397
|
+
}), W.dueTime && /* @__PURE__ */ A("span", {
|
|
398
|
+
className: "flex items-center gap-1.5 text-text-secondary",
|
|
399
|
+
children: [
|
|
400
|
+
/* @__PURE__ */ k(h, { className: "h-4 w-4" }),
|
|
401
|
+
"Due ",
|
|
402
|
+
I(W.dueTime)
|
|
403
|
+
]
|
|
404
|
+
})]
|
|
405
|
+
})]
|
|
391
406
|
})
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
className: "
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
407
|
+
}),
|
|
408
|
+
W.specialInstructions && /* @__PURE__ */ k("div", {
|
|
409
|
+
className: "rounded-[var(--radius-card)] border border-status-warning-text/20 bg-status-warning-bg-subtle p-4",
|
|
410
|
+
children: /* @__PURE__ */ A("p", {
|
|
411
|
+
className: "text-sm text-status-warning-text flex items-start gap-2",
|
|
412
|
+
children: [/* @__PURE__ */ k(m, { className: "h-4 w-4 shrink-0 mt-0.5" }), W.specialInstructions]
|
|
413
|
+
})
|
|
414
|
+
}),
|
|
415
|
+
/* @__PURE__ */ A(j, {
|
|
416
|
+
className: "p-5",
|
|
417
|
+
children: [
|
|
418
|
+
/* @__PURE__ */ A("h3", {
|
|
419
|
+
className: "mb-3 flex items-center gap-2 text-sm font-semibold text-text-primary",
|
|
420
|
+
children: [/* @__PURE__ */ k(T, { className: "h-4 w-4 text-text-secondary" }), "Delivery note"]
|
|
421
|
+
}),
|
|
422
|
+
/* @__PURE__ */ k("textarea", {
|
|
423
|
+
value: K,
|
|
424
|
+
onChange: (e) => {
|
|
425
|
+
q(e.target.value), Y(!1);
|
|
426
|
+
},
|
|
427
|
+
placeholder: "Add a delivery note...",
|
|
428
|
+
rows: 3,
|
|
429
|
+
className: "w-full resize-none rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:outline-none focus:ring-2 focus:ring-border-focus/40"
|
|
430
|
+
}),
|
|
431
|
+
/* @__PURE__ */ A("div", {
|
|
432
|
+
className: "mt-3 flex items-center gap-3",
|
|
403
433
|
children: [
|
|
404
|
-
/* @__PURE__ */
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
})
|
|
410
|
-
className: "text-sm font-medium font-mono text-text-primary",
|
|
411
|
-
children: G.orderId
|
|
412
|
-
})] })]
|
|
413
|
-
}),
|
|
414
|
-
/* @__PURE__ */ F("div", {
|
|
415
|
-
className: "flex items-center gap-2",
|
|
416
|
-
children: [/* @__PURE__ */ P(O, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ F("div", { children: [/* @__PURE__ */ P("p", {
|
|
417
|
-
className: "text-xs text-text-secondary",
|
|
418
|
-
children: "Cart"
|
|
419
|
-
}), /* @__PURE__ */ P("p", {
|
|
420
|
-
className: "text-sm font-medium text-text-primary",
|
|
421
|
-
children: G.cartName
|
|
422
|
-
})] })]
|
|
423
|
-
}),
|
|
424
|
-
G.dueTime && /* @__PURE__ */ F("div", {
|
|
425
|
-
className: "flex items-center gap-2",
|
|
426
|
-
children: [/* @__PURE__ */ P(v, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ F("div", { children: [/* @__PURE__ */ P("p", {
|
|
427
|
-
className: "text-xs text-text-secondary",
|
|
428
|
-
children: "Due At"
|
|
429
|
-
}), /* @__PURE__ */ P("p", {
|
|
430
|
-
className: "text-sm text-text-primary",
|
|
431
|
-
children: c(G.dueTime)
|
|
432
|
-
})] })]
|
|
433
|
-
}),
|
|
434
|
-
/* @__PURE__ */ F("div", {
|
|
435
|
-
className: "flex items-center gap-2",
|
|
436
|
-
children: [/* @__PURE__ */ P(b, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ F("div", { children: [/* @__PURE__ */ P("p", {
|
|
437
|
-
className: "text-xs text-text-secondary",
|
|
438
|
-
children: "Earnings"
|
|
439
|
-
}), /* @__PURE__ */ P("p", {
|
|
440
|
-
className: "text-sm font-medium text-status-success-text",
|
|
441
|
-
children: s(G.earnings, { minimumFractionDigits: 0 })
|
|
442
|
-
})] })]
|
|
434
|
+
/* @__PURE__ */ A("button", {
|
|
435
|
+
type: "button",
|
|
436
|
+
onClick: $,
|
|
437
|
+
disabled: U.isPending,
|
|
438
|
+
className: "inline-flex items-center gap-1.5 rounded-md border border-border-default bg-bg-surface px-3 py-1.5 text-xs font-medium text-text-primary hover:bg-bg-sunken transition-colors disabled:opacity-50",
|
|
439
|
+
children: [U.isPending ? /* @__PURE__ */ k(v, { className: "h-3.5 w-3.5 animate-spin" }) : /* @__PURE__ */ k(T, { className: "h-3.5 w-3.5" }), U.isPending ? "Saving..." : "Save note"]
|
|
443
440
|
}),
|
|
444
|
-
|
|
445
|
-
className: "
|
|
446
|
-
children:
|
|
447
|
-
className: "text-xs text-text-secondary",
|
|
448
|
-
children: "Distance"
|
|
449
|
-
}), /* @__PURE__ */ F("p", {
|
|
450
|
-
className: "text-sm text-text-primary",
|
|
451
|
-
children: [G.distance, " km"]
|
|
452
|
-
})] })]
|
|
441
|
+
J && !U.isPending && /* @__PURE__ */ k("span", {
|
|
442
|
+
className: "text-xs text-status-success-text",
|
|
443
|
+
children: "Note saved"
|
|
453
444
|
}),
|
|
454
|
-
|
|
455
|
-
className: "
|
|
456
|
-
children:
|
|
457
|
-
className: "text-xs text-text-secondary",
|
|
458
|
-
children: "Assigned At"
|
|
459
|
-
}), /* @__PURE__ */ P("p", {
|
|
460
|
-
className: "text-sm text-text-primary",
|
|
461
|
-
children: c(G.assignedTime)
|
|
462
|
-
})] })]
|
|
445
|
+
U.isError && /* @__PURE__ */ k("span", {
|
|
446
|
+
className: "text-xs text-status-error-text",
|
|
447
|
+
children: "Couldn't save — retry"
|
|
463
448
|
})
|
|
464
449
|
]
|
|
465
|
-
})
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
450
|
+
})
|
|
451
|
+
]
|
|
452
|
+
}),
|
|
453
|
+
/* @__PURE__ */ A("button", {
|
|
454
|
+
type: "button",
|
|
455
|
+
onClick: X,
|
|
456
|
+
disabled: W.status === "completed" || H.isPending,
|
|
457
|
+
className: t("w-full inline-flex items-center justify-center gap-2 rounded-[var(--radius-card)] px-4 py-3.5 text-base font-semibold transition-colors", W.status === "completed" ? "bg-status-success-bg-subtle text-status-success-text cursor-default" : "bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg-hover disabled:opacity-60"),
|
|
458
|
+
children: [H.isPending ? /* @__PURE__ */ k(v, { className: "h-5 w-5 animate-spin" }) : /* @__PURE__ */ k(te, { className: "h-5 w-5" }), se]
|
|
459
|
+
})
|
|
460
|
+
]
|
|
461
|
+
}), /* @__PURE__ */ A("div", {
|
|
462
|
+
className: "space-y-6",
|
|
463
|
+
children: [/* @__PURE__ */ A(j, {
|
|
464
|
+
className: "p-5",
|
|
465
|
+
children: [/* @__PURE__ */ k("h3", {
|
|
466
|
+
className: "mb-3 text-sm font-semibold text-text-primary",
|
|
467
|
+
children: "Delivery timeline"
|
|
468
|
+
}), /* @__PURE__ */ k(l, { items: ne })]
|
|
469
|
+
}), /* @__PURE__ */ A(j, {
|
|
470
|
+
className: "p-5",
|
|
471
|
+
children: [/* @__PURE__ */ k("h3", {
|
|
472
|
+
className: "mb-3 text-sm font-semibold text-text-primary",
|
|
473
|
+
children: "Job details"
|
|
474
|
+
}), /* @__PURE__ */ A("dl", {
|
|
475
|
+
className: "space-y-3 text-sm",
|
|
476
|
+
children: [
|
|
477
|
+
W.orderId && /* @__PURE__ */ A("div", {
|
|
478
|
+
className: "flex items-center gap-2",
|
|
479
|
+
children: [/* @__PURE__ */ k(g, { className: "h-4 w-4 text-text-secondary shrink-0" }), /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("dt", {
|
|
480
|
+
className: "text-xs text-text-secondary",
|
|
481
|
+
children: "Order ID"
|
|
482
|
+
}), /* @__PURE__ */ k("dd", {
|
|
483
|
+
className: "font-mono font-medium text-text-primary",
|
|
484
|
+
children: W.orderId
|
|
485
|
+
})] })]
|
|
486
|
+
}),
|
|
487
|
+
W.customerInfo.name && /* @__PURE__ */ A("div", {
|
|
488
|
+
className: "flex items-center gap-2",
|
|
489
|
+
children: [/* @__PURE__ */ k(D, { className: "h-4 w-4 text-text-secondary shrink-0" }), /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("dt", {
|
|
490
|
+
className: "text-xs text-text-secondary",
|
|
491
|
+
children: "Customer"
|
|
492
|
+
}), /* @__PURE__ */ k("dd", {
|
|
493
|
+
className: "font-medium text-text-primary",
|
|
494
|
+
children: W.customerInfo.name
|
|
495
|
+
})] })]
|
|
496
|
+
}),
|
|
497
|
+
W.distance != null && /* @__PURE__ */ A("div", {
|
|
498
|
+
className: "flex items-center gap-2",
|
|
499
|
+
children: [/* @__PURE__ */ k(b, { className: "h-4 w-4 text-text-secondary shrink-0" }), /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("dt", {
|
|
500
|
+
className: "text-xs text-text-secondary",
|
|
501
|
+
children: "Distance"
|
|
502
|
+
}), /* @__PURE__ */ A("dd", {
|
|
503
|
+
className: "font-medium text-text-primary",
|
|
504
|
+
children: [W.distance, " km"]
|
|
505
|
+
})] })]
|
|
506
|
+
}),
|
|
507
|
+
W.assignedTime && /* @__PURE__ */ A("div", {
|
|
508
|
+
className: "flex items-center gap-2",
|
|
509
|
+
children: [/* @__PURE__ */ k(h, { className: "h-4 w-4 text-text-secondary shrink-0" }), /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("dt", {
|
|
510
|
+
className: "text-xs text-text-secondary",
|
|
511
|
+
children: "Assigned"
|
|
512
|
+
}), /* @__PURE__ */ k("dd", {
|
|
513
|
+
className: "font-medium text-text-primary",
|
|
514
|
+
children: c(W.assignedTime)
|
|
515
|
+
})] })]
|
|
516
|
+
})
|
|
517
|
+
]
|
|
518
|
+
})]
|
|
522
519
|
})]
|
|
523
520
|
})]
|
|
524
|
-
})
|
|
525
|
-
]
|
|
521
|
+
})]
|
|
522
|
+
})]
|
|
526
523
|
});
|
|
527
524
|
}
|
|
528
525
|
//#endregion
|
|
529
|
-
export {
|
|
526
|
+
export { V as TaskDetailsPage };
|
|
530
527
|
|
|
531
528
|
//# sourceMappingURL=TaskDetailsPage.js.map
|