@burdenoff/microfe-kadaikodi 2026.704.2 → 2026.704.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/kadaikodi/KadaikodiRoutes.js +30 -26
- package/dist/kadaikodi/KadaikodiRoutes.js.map +1 -1
- package/dist/kadaikodi/hooks/useKadaikodiApi.js +76 -6
- package/dist/kadaikodi/hooks/useKadaikodiApi.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js +45 -107
- package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminDashboard.js +30 -32
- package/dist/kadaikodi/pages/admin/AdminDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminFinancialPage.js +137 -120
- package/dist/kadaikodi/pages/admin/AdminFinancialPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminOrdersPage.js +2 -2
- 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 +278 -283
- 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 +105 -111
- 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 +84 -70
- 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 +202 -139
- package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/InvestmentListingPage.js +232 -0
- package/dist/kadaikodi/pages/cart-owner/InvestmentListingPage.js.map +1 -0
- package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js +84 -79
- package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js.map +1 -1
- 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 +243 -143
- package/dist/kadaikodi/pages/customer/BookingDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CartDetailPage.js +4 -4
- package/dist/kadaikodi/pages/customer/CartDetailPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js +2 -2
- package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CheckoutPage.js +4 -4
- package/dist/kadaikodi/pages/customer/CheckoutPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CustomerDashboard.js +6 -6
- 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 +6 -4
- package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/FavoritesPage.js +6 -6
- package/dist/kadaikodi/pages/customer/FavoritesPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/OrderHistoryPage.js +4 -4
- package/dist/kadaikodi/pages/customer/OrderHistoryPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/OrderTrackingPage.js +409 -304
- package/dist/kadaikodi/pages/customer/OrderTrackingPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/ReviewsPage.js +209 -162
- package/dist/kadaikodi/pages/customer/ReviewsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/SavedAddressesPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.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 +207 -186
- package/dist/kadaikodi/pages/worker/TaskDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerProfilePage.js +340 -272
- package/dist/kadaikodi/pages/worker/WorkerProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js +122 -75
- package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,26 +3,26 @@ import { cn as t } from "../../utils/cn.js";
|
|
|
3
3
|
import { PageLayout as n } from "../../components/PageLayout.js";
|
|
4
4
|
import { StatusBadge as r } from "../../components/StatusBadge.js";
|
|
5
5
|
import { EmptyState as i } from "../../components/EmptyState.js";
|
|
6
|
-
import {
|
|
7
|
-
import { formatCurrency as
|
|
8
|
-
import { useEffect as
|
|
9
|
-
import { AlertTriangle as d, ArrowLeft as f, Boxes as p, Camera as m, CheckCircle2 as h, ChefHat as g, Circle as _, Clock as v, FileText as y, IndianRupee as
|
|
10
|
-
import { useParams as
|
|
11
|
-
import { jsx as
|
|
12
|
-
import { EmphasisPanel as
|
|
6
|
+
import { useUpdateWorkerTask as a, useWorkerTasks as o } from "../../hooks/useKadaikodiApi.js";
|
|
7
|
+
import { formatCurrency as ee, formatDate as s } from "../../utils/formatters.js";
|
|
8
|
+
import { useEffect as c, useMemo as l, useState as u } from "react";
|
|
9
|
+
import { AlertTriangle as d, ArrowLeft as f, Boxes as p, Camera as m, CheckCircle2 as h, ChefHat as g, Circle as _, Clock as v, FileText as y, IndianRupee as te, Loader2 as b, MapPin as x, Navigation as S, Package as C, Phone as w, PlayCircle as T, Save as E, ShoppingBag as D, Sparkles as O, StickyNote as k, Timer as ne, Truck as A, User as re } from "lucide-react";
|
|
10
|
+
import { useParams as ie } from "react-router-dom";
|
|
11
|
+
import { jsx as j, jsxs as M } from "react/jsx-runtime";
|
|
12
|
+
import { EmphasisPanel as N, NextSteps as P, PagePurpose as F } from "@burdenoff/fe-libs/ui";
|
|
13
13
|
//#region src/kadaikodi/pages/worker/TaskDetailsPage.tsx
|
|
14
|
-
function
|
|
14
|
+
function I(e) {
|
|
15
15
|
switch (e) {
|
|
16
|
-
case "delivery": return
|
|
16
|
+
case "delivery": return A;
|
|
17
17
|
case "preparation": return g;
|
|
18
18
|
case "inventory": return p;
|
|
19
|
-
case "cleanup": return
|
|
20
|
-
case "pickup": return
|
|
21
|
-
case "service": return
|
|
19
|
+
case "cleanup": return O;
|
|
20
|
+
case "pickup": return D;
|
|
21
|
+
case "service": return C;
|
|
22
22
|
default: return y;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
function
|
|
25
|
+
function L(e) {
|
|
26
26
|
switch (e) {
|
|
27
27
|
case "urgent": return "bg-status-error-bg-subtle text-status-error-text";
|
|
28
28
|
case "high": return "bg-status-warning-bg-subtle text-status-warning-text";
|
|
@@ -31,7 +31,7 @@ function B(e) {
|
|
|
31
31
|
default: return "bg-bg-sunken text-text-secondary";
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
function
|
|
34
|
+
function R(e) {
|
|
35
35
|
return [
|
|
36
36
|
{
|
|
37
37
|
status: "assigned",
|
|
@@ -53,14 +53,14 @@ function V(e) {
|
|
|
53
53
|
}
|
|
54
54
|
];
|
|
55
55
|
}
|
|
56
|
-
function
|
|
56
|
+
function z(e) {
|
|
57
57
|
return new Date(e).toLocaleTimeString("en-IN", {
|
|
58
58
|
hour: "numeric",
|
|
59
59
|
minute: "2-digit",
|
|
60
60
|
hour12: !0
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
|
-
function
|
|
63
|
+
function B(e) {
|
|
64
64
|
let t = e.deliveryAddress ? [
|
|
65
65
|
e.deliveryAddress.street,
|
|
66
66
|
e.deliveryAddress.area,
|
|
@@ -95,64 +95,69 @@ function U(e) {
|
|
|
95
95
|
completedAt: e.completedAt
|
|
96
96
|
};
|
|
97
97
|
}
|
|
98
|
-
function
|
|
99
|
-
let { taskId: p } =
|
|
100
|
-
|
|
101
|
-
let e =
|
|
98
|
+
function V() {
|
|
99
|
+
let { taskId: p } = ie(), { navigateTo: g, currentUser: C } = e(), { data: O = [], isLoading: A } = o(C?.id ?? ""), V = a(), H = a(), [U, W] = u(null), [G, K] = u(""), [q, J] = u(!1);
|
|
100
|
+
c(() => {
|
|
101
|
+
let e = O.find((e) => e.id === p);
|
|
102
102
|
if (e) {
|
|
103
|
-
let t =
|
|
104
|
-
|
|
105
|
-
} else
|
|
106
|
-
}, [
|
|
103
|
+
let t = B(e);
|
|
104
|
+
W(t), K(t.notes ?? "");
|
|
105
|
+
} else W(null);
|
|
106
|
+
}, [O, p]);
|
|
107
107
|
let Y = () => {
|
|
108
|
-
|
|
109
|
-
...
|
|
108
|
+
U && (W({
|
|
109
|
+
...U,
|
|
110
110
|
status: "in_progress"
|
|
111
|
-
}),
|
|
112
|
-
taskId:
|
|
111
|
+
}), V.mutate({
|
|
112
|
+
taskId: U.id,
|
|
113
113
|
status: "IN_PROGRESS"
|
|
114
114
|
}));
|
|
115
115
|
}, X = () => {
|
|
116
|
-
|
|
117
|
-
...
|
|
116
|
+
U && (W({
|
|
117
|
+
...U,
|
|
118
118
|
status: "completed"
|
|
119
|
-
}),
|
|
120
|
-
taskId:
|
|
119
|
+
}), V.mutate({
|
|
120
|
+
taskId: U.id,
|
|
121
121
|
status: "COMPLETED"
|
|
122
122
|
}));
|
|
123
123
|
}, Z = () => {
|
|
124
|
-
|
|
124
|
+
U?.customerInfo?.phone && (window.location.href = `tel:${U.customerInfo.phone.replace(/\s/g, "")}`);
|
|
125
125
|
}, Q = () => {
|
|
126
|
-
if (
|
|
127
|
-
let e = encodeURIComponent(
|
|
126
|
+
if (U?.customerInfo?.address) {
|
|
127
|
+
let e = encodeURIComponent(U.customerInfo.address);
|
|
128
128
|
window.open(`https://maps.google.com?q=${e}`, "_blank");
|
|
129
129
|
}
|
|
130
|
-
},
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
notes:
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
|
|
130
|
+
}, ae = () => {
|
|
131
|
+
U && (J(!1), H.mutate({
|
|
132
|
+
taskId: U.id,
|
|
133
|
+
notes: G
|
|
134
|
+
}, { onSuccess: () => {
|
|
135
|
+
W((e) => e && {
|
|
136
|
+
...e,
|
|
137
|
+
notes: G
|
|
138
|
+
}), J(!0);
|
|
139
|
+
} }));
|
|
140
|
+
}, $ = l(() => U ? R(U) : [], [U]);
|
|
141
|
+
if (A) return /* @__PURE__ */ j(n, {
|
|
137
142
|
title: "Task Details",
|
|
138
|
-
children: /* @__PURE__ */
|
|
143
|
+
children: /* @__PURE__ */ j("div", {
|
|
139
144
|
className: "flex items-center justify-center py-24",
|
|
140
|
-
children: /* @__PURE__ */
|
|
145
|
+
children: /* @__PURE__ */ M("div", {
|
|
141
146
|
className: "text-center",
|
|
142
|
-
children: [/* @__PURE__ */
|
|
147
|
+
children: [/* @__PURE__ */ j(b, { className: "h-10 w-10 animate-spin text-text-secondary mx-auto mb-4" }), /* @__PURE__ */ j("p", {
|
|
143
148
|
className: "text-sm text-text-secondary",
|
|
144
149
|
children: "Loading task details..."
|
|
145
150
|
})]
|
|
146
151
|
})
|
|
147
152
|
})
|
|
148
153
|
});
|
|
149
|
-
if (!
|
|
154
|
+
if (!U) return /* @__PURE__ */ j(n, {
|
|
150
155
|
title: "Task Not Found",
|
|
151
|
-
children: /* @__PURE__ */
|
|
152
|
-
icon: /* @__PURE__ */
|
|
156
|
+
children: /* @__PURE__ */ j(i, {
|
|
157
|
+
icon: /* @__PURE__ */ j(y, { className: "h-12 w-12" }),
|
|
153
158
|
title: "Task not found",
|
|
154
159
|
description: `No task found with ID "${p}".`,
|
|
155
|
-
action: /* @__PURE__ */
|
|
160
|
+
action: /* @__PURE__ */ j("button", {
|
|
156
161
|
type: "button",
|
|
157
162
|
onClick: () => g("/worker/orders"),
|
|
158
163
|
className: "rounded-lg bg-accent px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent/80 transition-colors",
|
|
@@ -160,24 +165,24 @@ function W() {
|
|
|
160
165
|
})
|
|
161
166
|
})
|
|
162
167
|
});
|
|
163
|
-
let
|
|
164
|
-
return /* @__PURE__ */
|
|
165
|
-
title: /* @__PURE__ */
|
|
168
|
+
let oe = I(U.type);
|
|
169
|
+
return /* @__PURE__ */ M(n, {
|
|
170
|
+
title: /* @__PURE__ */ M("div", {
|
|
166
171
|
className: "flex items-center gap-3",
|
|
167
|
-
children: [/* @__PURE__ */
|
|
172
|
+
children: [/* @__PURE__ */ j("button", {
|
|
168
173
|
type: "button",
|
|
169
174
|
onClick: () => g("/worker/orders"),
|
|
170
175
|
className: "rounded-md p-1 text-text-secondary hover:bg-accent hover:text-text-primary transition-colors",
|
|
171
|
-
children: /* @__PURE__ */
|
|
172
|
-
}), /* @__PURE__ */
|
|
176
|
+
children: /* @__PURE__ */ j(f, { className: "h-5 w-5" })
|
|
177
|
+
}), /* @__PURE__ */ j("span", { children: "Task Details" })]
|
|
173
178
|
}),
|
|
174
179
|
description: "Manage and track your assigned task",
|
|
175
180
|
children: [
|
|
176
|
-
/* @__PURE__ */
|
|
181
|
+
/* @__PURE__ */ j(F, {
|
|
177
182
|
className: "mb-6",
|
|
178
183
|
children: "Everything you need to complete one assigned task, in order. Use this page to see exactly what to do, reach the customer, navigate to their location, jot down notes, and mark the task started and then completed as you go — so nothing gets missed and your completion stats stay strong."
|
|
179
184
|
}),
|
|
180
|
-
/* @__PURE__ */ P
|
|
185
|
+
/* @__PURE__ */ j(P, {
|
|
181
186
|
storageKey: "kadaikodi-task-details",
|
|
182
187
|
className: "mb-6",
|
|
183
188
|
steps: [
|
|
@@ -195,326 +200,342 @@ function W() {
|
|
|
195
200
|
},
|
|
196
201
|
{
|
|
197
202
|
id: "start",
|
|
198
|
-
label:
|
|
199
|
-
description:
|
|
200
|
-
onClick:
|
|
201
|
-
done:
|
|
203
|
+
label: U.status === "completed" ? "Task completed" : "Start & complete the task",
|
|
204
|
+
description: U.status === "completed" ? "This task is done — nice work." : "Mark it started, then completed when finished.",
|
|
205
|
+
onClick: U.status === "completed" ? X : Y,
|
|
206
|
+
done: U.status === "completed"
|
|
202
207
|
}
|
|
203
208
|
]
|
|
204
209
|
}),
|
|
205
|
-
/* @__PURE__ */
|
|
210
|
+
/* @__PURE__ */ M("div", {
|
|
206
211
|
className: "space-y-6",
|
|
207
|
-
children: [/* @__PURE__ */
|
|
212
|
+
children: [/* @__PURE__ */ M(N, { children: [/* @__PURE__ */ M("div", {
|
|
208
213
|
className: "flex items-start justify-between mb-4",
|
|
209
|
-
children: [/* @__PURE__ */
|
|
214
|
+
children: [/* @__PURE__ */ M("div", {
|
|
210
215
|
className: "flex items-start gap-3",
|
|
211
|
-
children: [/* @__PURE__ */
|
|
216
|
+
children: [/* @__PURE__ */ j("div", {
|
|
212
217
|
className: "flex h-10 w-10 items-center justify-center rounded-lg bg-bg-sunken",
|
|
213
|
-
children: /* @__PURE__ */
|
|
214
|
-
}), /* @__PURE__ */
|
|
215
|
-
/* @__PURE__ */
|
|
218
|
+
children: /* @__PURE__ */ j(oe, { className: "h-5 w-5 text-text-secondary" })
|
|
219
|
+
}), /* @__PURE__ */ M("div", { children: [
|
|
220
|
+
/* @__PURE__ */ j("h2", {
|
|
216
221
|
className: "text-xl font-bold text-text-primary",
|
|
217
|
-
children:
|
|
222
|
+
children: U.title
|
|
218
223
|
}),
|
|
219
|
-
/* @__PURE__ */
|
|
224
|
+
/* @__PURE__ */ j("p", {
|
|
220
225
|
className: "text-sm text-text-secondary mt-1",
|
|
221
|
-
children:
|
|
226
|
+
children: U.description
|
|
222
227
|
}),
|
|
223
|
-
/* @__PURE__ */
|
|
228
|
+
/* @__PURE__ */ M("div", {
|
|
224
229
|
className: "flex flex-wrap items-center gap-2 mt-3",
|
|
225
230
|
children: [
|
|
226
|
-
/* @__PURE__ */
|
|
227
|
-
className: t("inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium uppercase",
|
|
228
|
-
children:
|
|
231
|
+
/* @__PURE__ */ j("span", {
|
|
232
|
+
className: t("inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium uppercase", L(U.priority)),
|
|
233
|
+
children: U.priority
|
|
229
234
|
}),
|
|
230
|
-
/* @__PURE__ */
|
|
231
|
-
|
|
235
|
+
/* @__PURE__ */ j(r, { status: U.status }),
|
|
236
|
+
U.estimatedTime > 0 && /* @__PURE__ */ M("span", {
|
|
232
237
|
className: "text-xs text-text-secondary flex items-center gap-1",
|
|
233
238
|
children: [
|
|
234
|
-
/* @__PURE__ */
|
|
235
|
-
|
|
239
|
+
/* @__PURE__ */ j(v, { className: "h-3 w-3" }),
|
|
240
|
+
U.estimatedTime,
|
|
236
241
|
" min"
|
|
237
242
|
]
|
|
238
243
|
})
|
|
239
244
|
]
|
|
240
245
|
})
|
|
241
246
|
] })]
|
|
242
|
-
}), (
|
|
247
|
+
}), (U.assignedBy || U.assignedTime) && /* @__PURE__ */ M("div", {
|
|
243
248
|
className: "text-right shrink-0",
|
|
244
249
|
children: [
|
|
245
|
-
/* @__PURE__ */
|
|
250
|
+
/* @__PURE__ */ j("p", {
|
|
246
251
|
className: "text-xs text-text-secondary",
|
|
247
252
|
children: "Assigned"
|
|
248
253
|
}),
|
|
249
|
-
|
|
254
|
+
U.assignedBy && /* @__PURE__ */ j("p", {
|
|
250
255
|
className: "text-sm font-medium text-text-primary",
|
|
251
|
-
children:
|
|
256
|
+
children: U.assignedBy
|
|
252
257
|
}),
|
|
253
|
-
|
|
258
|
+
U.assignedTime && /* @__PURE__ */ j("p", {
|
|
254
259
|
className: "text-xs text-text-secondary mt-1",
|
|
255
|
-
children:
|
|
260
|
+
children: z(U.assignedTime)
|
|
256
261
|
})
|
|
257
262
|
]
|
|
258
263
|
})]
|
|
259
|
-
}),
|
|
264
|
+
}), U.dueTime && U.status !== "completed" && /* @__PURE__ */ j("div", {
|
|
260
265
|
className: "rounded-md bg-status-warning-bg-subtle border border-status-warning-text/20 p-3",
|
|
261
|
-
children: /* @__PURE__ */
|
|
266
|
+
children: /* @__PURE__ */ M("div", {
|
|
262
267
|
className: "flex items-center gap-2",
|
|
263
|
-
children: [/* @__PURE__ */
|
|
268
|
+
children: [/* @__PURE__ */ j(ne, { className: "h-4 w-4 text-status-warning-text shrink-0" }), /* @__PURE__ */ M("span", {
|
|
264
269
|
className: "text-xs font-medium text-status-warning-text",
|
|
265
|
-
children: ["Due by ",
|
|
270
|
+
children: ["Due by ", z(U.dueTime)]
|
|
266
271
|
})]
|
|
267
272
|
})
|
|
268
|
-
})] }), /* @__PURE__ */
|
|
273
|
+
})] }), /* @__PURE__ */ M("div", {
|
|
269
274
|
className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
|
|
270
|
-
children: [/* @__PURE__ */
|
|
275
|
+
children: [/* @__PURE__ */ M("div", {
|
|
271
276
|
className: "lg:col-span-2 space-y-6",
|
|
272
277
|
children: [
|
|
273
|
-
/* @__PURE__ */
|
|
278
|
+
/* @__PURE__ */ M("div", {
|
|
274
279
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-6",
|
|
275
|
-
children: [/* @__PURE__ */
|
|
280
|
+
children: [/* @__PURE__ */ j("h3", {
|
|
276
281
|
className: "text-base font-semibold text-text-primary mb-4",
|
|
277
282
|
children: "Customer Information"
|
|
278
|
-
}), /* @__PURE__ */
|
|
283
|
+
}), /* @__PURE__ */ M("div", {
|
|
279
284
|
className: "grid grid-cols-1 md:grid-cols-2 gap-5",
|
|
280
|
-
children: [/* @__PURE__ */
|
|
285
|
+
children: [/* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("div", {
|
|
281
286
|
className: "space-y-3",
|
|
282
|
-
children: /* @__PURE__ */
|
|
287
|
+
children: /* @__PURE__ */ M("div", {
|
|
283
288
|
className: "flex items-center gap-3",
|
|
284
|
-
children: [/* @__PURE__ */
|
|
289
|
+
children: [/* @__PURE__ */ j("div", {
|
|
285
290
|
className: "flex h-10 w-10 items-center justify-center rounded-full bg-bg-sunken text-text-secondary",
|
|
286
|
-
children: /* @__PURE__ */
|
|
287
|
-
}), /* @__PURE__ */
|
|
291
|
+
children: /* @__PURE__ */ j(re, { className: "h-5 w-5" })
|
|
292
|
+
}), /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("p", {
|
|
288
293
|
className: "text-sm font-medium text-text-primary",
|
|
289
|
-
children:
|
|
290
|
-
}), /* @__PURE__ */
|
|
294
|
+
children: U.customerInfo.name
|
|
295
|
+
}), /* @__PURE__ */ j("p", {
|
|
291
296
|
className: "text-xs text-text-secondary",
|
|
292
|
-
children:
|
|
297
|
+
children: U.customerInfo.phone
|
|
293
298
|
})] })]
|
|
294
299
|
})
|
|
295
|
-
}), /* @__PURE__ */
|
|
300
|
+
}), /* @__PURE__ */ M("div", {
|
|
296
301
|
className: "flex gap-2 mt-4",
|
|
297
|
-
children: [/* @__PURE__ */
|
|
302
|
+
children: [/* @__PURE__ */ M("button", {
|
|
298
303
|
type: "button",
|
|
299
304
|
onClick: Z,
|
|
300
305
|
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__ */
|
|
302
|
-
}), /* @__PURE__ */
|
|
306
|
+
children: [/* @__PURE__ */ j(w, { className: "h-3.5 w-3.5" }), "Call Customer"]
|
|
307
|
+
}), /* @__PURE__ */ M("button", {
|
|
303
308
|
type: "button",
|
|
304
309
|
onClick: Q,
|
|
305
310
|
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",
|
|
306
|
-
children: [/* @__PURE__ */
|
|
311
|
+
children: [/* @__PURE__ */ j(S, { className: "h-3.5 w-3.5" }), "Navigate"]
|
|
307
312
|
})]
|
|
308
|
-
})] }), /* @__PURE__ */
|
|
313
|
+
})] }), /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("p", {
|
|
309
314
|
className: "text-xs text-text-secondary mb-2",
|
|
310
315
|
children: "Delivery Address"
|
|
311
|
-
}), /* @__PURE__ */
|
|
316
|
+
}), /* @__PURE__ */ j("div", {
|
|
312
317
|
className: "rounded-md bg-bg-sunken/50 p-3",
|
|
313
|
-
children: /* @__PURE__ */
|
|
318
|
+
children: /* @__PURE__ */ M("p", {
|
|
314
319
|
className: "text-xs text-text-primary flex items-start gap-2",
|
|
315
|
-
children: [/* @__PURE__ */
|
|
320
|
+
children: [/* @__PURE__ */ j(x, { className: "h-3.5 w-3.5 shrink-0 mt-0.5 text-text-secondary" }), U.customerInfo.address]
|
|
316
321
|
})
|
|
317
322
|
})] })]
|
|
318
323
|
})]
|
|
319
324
|
}),
|
|
320
|
-
|
|
325
|
+
U.orderItems.length > 0 && /* @__PURE__ */ M("div", {
|
|
321
326
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-6",
|
|
322
|
-
children: [/* @__PURE__ */
|
|
327
|
+
children: [/* @__PURE__ */ j("h3", {
|
|
323
328
|
className: "text-base font-semibold text-text-primary mb-3",
|
|
324
329
|
children: "Order Items"
|
|
325
|
-
}), /* @__PURE__ */
|
|
330
|
+
}), /* @__PURE__ */ j("div", {
|
|
326
331
|
className: "space-y-2",
|
|
327
|
-
children:
|
|
332
|
+
children: U.orderItems.map((e, t) => /* @__PURE__ */ j("div", {
|
|
328
333
|
className: "flex items-start justify-between p-3 rounded-md bg-bg-sunken/50",
|
|
329
|
-
children: /* @__PURE__ */
|
|
334
|
+
children: /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ M("p", {
|
|
330
335
|
className: "text-sm font-medium text-text-primary",
|
|
331
336
|
children: [
|
|
332
337
|
e.quantity,
|
|
333
338
|
"x ",
|
|
334
339
|
e.name
|
|
335
340
|
]
|
|
336
|
-
}), e.specialInstructions && /* @__PURE__ */
|
|
341
|
+
}), e.specialInstructions && /* @__PURE__ */ M("p", {
|
|
337
342
|
className: "text-xs text-text-secondary mt-0.5",
|
|
338
343
|
children: ["Note: ", e.specialInstructions]
|
|
339
344
|
})] })
|
|
340
345
|
}, t))
|
|
341
346
|
})]
|
|
342
347
|
}),
|
|
343
|
-
|
|
348
|
+
U.specialInstructions && /* @__PURE__ */ M("div", {
|
|
344
349
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-6",
|
|
345
|
-
children: [/* @__PURE__ */
|
|
350
|
+
children: [/* @__PURE__ */ j("h3", {
|
|
346
351
|
className: "text-base font-semibold text-text-primary mb-3",
|
|
347
352
|
children: "Special Instructions"
|
|
348
|
-
}), /* @__PURE__ */
|
|
353
|
+
}), /* @__PURE__ */ j("div", {
|
|
349
354
|
className: "rounded-md bg-status-warning-bg-subtle border border-status-warning-text/20 p-4",
|
|
350
|
-
children: /* @__PURE__ */
|
|
355
|
+
children: /* @__PURE__ */ M("p", {
|
|
351
356
|
className: "text-sm text-status-warning-text flex items-start gap-2",
|
|
352
|
-
children: [/* @__PURE__ */
|
|
357
|
+
children: [/* @__PURE__ */ j(d, { className: "h-4 w-4 shrink-0 mt-0.5 text-status-warning-text" }), U.specialInstructions]
|
|
353
358
|
})
|
|
354
359
|
})]
|
|
355
360
|
}),
|
|
356
|
-
|
|
361
|
+
U.photos && U.photos.length > 0 && /* @__PURE__ */ M("div", {
|
|
357
362
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-6",
|
|
358
|
-
children: [/* @__PURE__ */
|
|
363
|
+
children: [/* @__PURE__ */ M("h3", {
|
|
359
364
|
className: "text-base font-semibold text-text-primary flex items-center gap-2 mb-3",
|
|
360
|
-
children: [/* @__PURE__ */
|
|
361
|
-
}), /* @__PURE__ */
|
|
365
|
+
children: [/* @__PURE__ */ j(m, { className: "h-4 w-4 text-text-secondary" }), "Reference Photos"]
|
|
366
|
+
}), /* @__PURE__ */ j("div", {
|
|
362
367
|
className: "grid grid-cols-2 md:grid-cols-3 gap-3",
|
|
363
|
-
children:
|
|
368
|
+
children: U.photos.map((e, t) => /* @__PURE__ */ j("img", {
|
|
364
369
|
src: e,
|
|
365
370
|
alt: `Reference ${t + 1}`,
|
|
366
371
|
className: "w-full h-32 object-cover rounded-lg border border-border-subtle"
|
|
367
372
|
}, t))
|
|
368
373
|
})]
|
|
369
374
|
}),
|
|
370
|
-
/* @__PURE__ */
|
|
375
|
+
/* @__PURE__ */ M("div", {
|
|
371
376
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-6",
|
|
372
377
|
children: [
|
|
373
|
-
/* @__PURE__ */
|
|
378
|
+
/* @__PURE__ */ M("h3", {
|
|
374
379
|
className: "text-base font-semibold text-text-primary flex items-center gap-2 mb-3",
|
|
375
|
-
children: [/* @__PURE__ */
|
|
380
|
+
children: [/* @__PURE__ */ j(k, { className: "h-4 w-4 text-text-secondary" }), "Task Notes"]
|
|
376
381
|
}),
|
|
377
|
-
/* @__PURE__ */
|
|
378
|
-
value:
|
|
379
|
-
onChange: (e) =>
|
|
382
|
+
/* @__PURE__ */ j("textarea", {
|
|
383
|
+
value: G,
|
|
384
|
+
onChange: (e) => {
|
|
385
|
+
K(e.target.value), J(!1);
|
|
386
|
+
},
|
|
380
387
|
placeholder: "Add your notes about this task...",
|
|
381
388
|
rows: 4,
|
|
382
389
|
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"
|
|
383
390
|
}),
|
|
384
|
-
/* @__PURE__ */
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
391
|
+
/* @__PURE__ */ M("div", {
|
|
392
|
+
className: "mt-3 flex items-center gap-3",
|
|
393
|
+
children: [
|
|
394
|
+
/* @__PURE__ */ M("button", {
|
|
395
|
+
type: "button",
|
|
396
|
+
onClick: ae,
|
|
397
|
+
disabled: H.isPending,
|
|
398
|
+
className: "inline-flex items-center gap-1.5 rounded-md bg-accent px-3 py-1.5 text-xs font-medium text-text-primary hover:bg-accent/80 transition-colors disabled:opacity-50",
|
|
399
|
+
children: [H.isPending ? /* @__PURE__ */ j(b, { className: "h-3.5 w-3.5 animate-spin" }) : /* @__PURE__ */ j(E, { className: "h-3.5 w-3.5" }), H.isPending ? "Saving..." : "Save Notes"]
|
|
400
|
+
}),
|
|
401
|
+
q && !H.isPending && /* @__PURE__ */ j("span", {
|
|
402
|
+
className: "text-xs text-status-success-text",
|
|
403
|
+
children: "Notes saved"
|
|
404
|
+
}),
|
|
405
|
+
H.isError && /* @__PURE__ */ j("span", {
|
|
406
|
+
className: "text-xs text-status-error-text",
|
|
407
|
+
children: "Couldn't save — try again"
|
|
408
|
+
})
|
|
409
|
+
]
|
|
389
410
|
})
|
|
390
411
|
]
|
|
391
412
|
})
|
|
392
413
|
]
|
|
393
|
-
}), /* @__PURE__ */
|
|
414
|
+
}), /* @__PURE__ */ M("div", {
|
|
394
415
|
className: "space-y-6",
|
|
395
416
|
children: [
|
|
396
|
-
/* @__PURE__ */
|
|
417
|
+
/* @__PURE__ */ M("div", {
|
|
397
418
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
|
|
398
|
-
children: [/* @__PURE__ */
|
|
419
|
+
children: [/* @__PURE__ */ j("h3", {
|
|
399
420
|
className: "text-base font-semibold text-text-primary mb-3",
|
|
400
421
|
children: "Task Details"
|
|
401
|
-
}), /* @__PURE__ */
|
|
422
|
+
}), /* @__PURE__ */ M("div", {
|
|
402
423
|
className: "space-y-3",
|
|
403
424
|
children: [
|
|
404
|
-
/* @__PURE__ */
|
|
425
|
+
/* @__PURE__ */ M("div", {
|
|
405
426
|
className: "flex items-center gap-2",
|
|
406
|
-
children: [/* @__PURE__ */
|
|
427
|
+
children: [/* @__PURE__ */ j(y, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("p", {
|
|
407
428
|
className: "text-xs text-text-secondary",
|
|
408
429
|
children: "Order ID"
|
|
409
|
-
}), /* @__PURE__ */
|
|
430
|
+
}), /* @__PURE__ */ j("p", {
|
|
410
431
|
className: "text-sm font-medium font-mono text-text-primary",
|
|
411
|
-
children:
|
|
432
|
+
children: U.orderId
|
|
412
433
|
})] })]
|
|
413
434
|
}),
|
|
414
|
-
/* @__PURE__ */
|
|
435
|
+
/* @__PURE__ */ M("div", {
|
|
415
436
|
className: "flex items-center gap-2",
|
|
416
|
-
children: [/* @__PURE__ */
|
|
437
|
+
children: [/* @__PURE__ */ j(D, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("p", {
|
|
417
438
|
className: "text-xs text-text-secondary",
|
|
418
439
|
children: "Cart"
|
|
419
|
-
}), /* @__PURE__ */
|
|
440
|
+
}), /* @__PURE__ */ j("p", {
|
|
420
441
|
className: "text-sm font-medium text-text-primary",
|
|
421
|
-
children:
|
|
442
|
+
children: U.cartName
|
|
422
443
|
})] })]
|
|
423
444
|
}),
|
|
424
|
-
|
|
445
|
+
U.dueTime && /* @__PURE__ */ M("div", {
|
|
425
446
|
className: "flex items-center gap-2",
|
|
426
|
-
children: [/* @__PURE__ */
|
|
447
|
+
children: [/* @__PURE__ */ j(v, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("p", {
|
|
427
448
|
className: "text-xs text-text-secondary",
|
|
428
449
|
children: "Due At"
|
|
429
|
-
}), /* @__PURE__ */
|
|
450
|
+
}), /* @__PURE__ */ j("p", {
|
|
430
451
|
className: "text-sm text-text-primary",
|
|
431
|
-
children:
|
|
452
|
+
children: s(U.dueTime)
|
|
432
453
|
})] })]
|
|
433
454
|
}),
|
|
434
|
-
/* @__PURE__ */
|
|
455
|
+
/* @__PURE__ */ M("div", {
|
|
435
456
|
className: "flex items-center gap-2",
|
|
436
|
-
children: [/* @__PURE__ */
|
|
457
|
+
children: [/* @__PURE__ */ j(te, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("p", {
|
|
437
458
|
className: "text-xs text-text-secondary",
|
|
438
459
|
children: "Earnings"
|
|
439
|
-
}), /* @__PURE__ */
|
|
460
|
+
}), /* @__PURE__ */ j("p", {
|
|
440
461
|
className: "text-sm font-medium text-status-success-text",
|
|
441
|
-
children:
|
|
462
|
+
children: ee(U.earnings, { minimumFractionDigits: 0 })
|
|
442
463
|
})] })]
|
|
443
464
|
}),
|
|
444
|
-
|
|
465
|
+
U.distance != null && /* @__PURE__ */ M("div", {
|
|
445
466
|
className: "flex items-center gap-2",
|
|
446
|
-
children: [/* @__PURE__ */
|
|
467
|
+
children: [/* @__PURE__ */ j(S, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("p", {
|
|
447
468
|
className: "text-xs text-text-secondary",
|
|
448
469
|
children: "Distance"
|
|
449
|
-
}), /* @__PURE__ */
|
|
470
|
+
}), /* @__PURE__ */ M("p", {
|
|
450
471
|
className: "text-sm text-text-primary",
|
|
451
|
-
children: [
|
|
472
|
+
children: [U.distance, " km"]
|
|
452
473
|
})] })]
|
|
453
474
|
}),
|
|
454
|
-
|
|
475
|
+
U.assignedTime && /* @__PURE__ */ M("div", {
|
|
455
476
|
className: "flex items-center gap-2",
|
|
456
|
-
children: [/* @__PURE__ */
|
|
477
|
+
children: [/* @__PURE__ */ j(v, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("p", {
|
|
457
478
|
className: "text-xs text-text-secondary",
|
|
458
479
|
children: "Assigned At"
|
|
459
|
-
}), /* @__PURE__ */
|
|
480
|
+
}), /* @__PURE__ */ j("p", {
|
|
460
481
|
className: "text-sm text-text-primary",
|
|
461
|
-
children:
|
|
482
|
+
children: s(U.assignedTime)
|
|
462
483
|
})] })]
|
|
463
484
|
})
|
|
464
485
|
]
|
|
465
486
|
})]
|
|
466
487
|
}),
|
|
467
|
-
/* @__PURE__ */
|
|
488
|
+
/* @__PURE__ */ M("div", {
|
|
468
489
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
|
|
469
|
-
children: [/* @__PURE__ */
|
|
490
|
+
children: [/* @__PURE__ */ j("h3", {
|
|
470
491
|
className: "text-base font-semibold text-text-primary mb-4",
|
|
471
492
|
children: "Status Timeline"
|
|
472
|
-
}), /* @__PURE__ */
|
|
493
|
+
}), /* @__PURE__ */ j("div", {
|
|
473
494
|
className: "relative",
|
|
474
495
|
children: $.map((e, n) => {
|
|
475
496
|
let r = n === $.length - 1, i = e.completed ? h : _;
|
|
476
|
-
return /* @__PURE__ */
|
|
497
|
+
return /* @__PURE__ */ M("div", {
|
|
477
498
|
className: "flex gap-3",
|
|
478
|
-
children: [/* @__PURE__ */
|
|
499
|
+
children: [/* @__PURE__ */ M("div", {
|
|
479
500
|
className: "flex flex-col items-center",
|
|
480
|
-
children: [/* @__PURE__ */
|
|
501
|
+
children: [/* @__PURE__ */ j("div", {
|
|
481
502
|
className: t("flex h-7 w-7 shrink-0 items-center justify-center rounded-full", e.completed ? "bg-status-success-bg-subtle text-status-success-text" : "bg-bg-sunken text-text-secondary"),
|
|
482
|
-
children: /* @__PURE__ */
|
|
483
|
-
}), !r && /* @__PURE__ */
|
|
484
|
-
}), /* @__PURE__ */
|
|
503
|
+
children: /* @__PURE__ */ j(i, { className: "h-3.5 w-3.5" })
|
|
504
|
+
}), !r && /* @__PURE__ */ j("div", { className: t("w-0.5 flex-1 my-1", e.completed ? "bg-status-success-bg-subtle" : "bg-border") })]
|
|
505
|
+
}), /* @__PURE__ */ M("div", {
|
|
485
506
|
className: t("pb-5", r && "pb-0"),
|
|
486
|
-
children: [/* @__PURE__ */
|
|
507
|
+
children: [/* @__PURE__ */ j("p", {
|
|
487
508
|
className: "text-sm font-medium text-text-primary",
|
|
488
509
|
children: e.label
|
|
489
|
-
}), /* @__PURE__ */
|
|
510
|
+
}), /* @__PURE__ */ j("p", {
|
|
490
511
|
className: "mt-0.5 text-xs text-text-secondary",
|
|
491
|
-
children: e.timestamp ?
|
|
512
|
+
children: e.timestamp ? s(e.timestamp) : "Pending"
|
|
492
513
|
})]
|
|
493
514
|
})]
|
|
494
515
|
}, e.status);
|
|
495
516
|
})
|
|
496
517
|
})]
|
|
497
518
|
}),
|
|
498
|
-
/* @__PURE__ */
|
|
519
|
+
/* @__PURE__ */ M("div", {
|
|
499
520
|
className: "space-y-3",
|
|
500
521
|
children: [
|
|
501
|
-
|
|
522
|
+
U.status === "pending" && /* @__PURE__ */ M("button", {
|
|
502
523
|
type: "button",
|
|
503
524
|
onClick: Y,
|
|
504
525
|
className: "w-full inline-flex items-center justify-center gap-2 rounded-lg bg-[var(--color-accent-soft)] px-4 py-3 text-sm font-medium text-text-primary hover:bg-[var(--color-accent-soft)] transition-colors",
|
|
505
|
-
children: [/* @__PURE__ */
|
|
526
|
+
children: [/* @__PURE__ */ j(T, { className: "h-4 w-4" }), "Start Task"]
|
|
506
527
|
}),
|
|
507
|
-
|
|
528
|
+
U.status === "in_progress" && /* @__PURE__ */ M("button", {
|
|
508
529
|
type: "button",
|
|
509
530
|
onClick: X,
|
|
510
531
|
className: "w-full inline-flex items-center justify-center gap-2 rounded-lg bg-status-success-bg-subtle px-4 py-3 text-sm font-medium text-status-success-text hover:bg-status-success-bg-subtle transition-colors",
|
|
511
|
-
children: [/* @__PURE__ */
|
|
532
|
+
children: [/* @__PURE__ */ j(h, { className: "h-4 w-4" }), "Complete Task"]
|
|
512
533
|
}),
|
|
513
|
-
/* @__PURE__ */
|
|
534
|
+
/* @__PURE__ */ M("button", {
|
|
514
535
|
type: "button",
|
|
515
536
|
onClick: () => g("/worker/orders"),
|
|
516
537
|
className: "w-full inline-flex items-center justify-center gap-2 rounded-lg bg-accent px-4 py-3 text-sm font-medium text-text-primary hover:bg-accent/80 transition-colors",
|
|
517
|
-
children: [/* @__PURE__ */
|
|
538
|
+
children: [/* @__PURE__ */ j(f, { className: "h-4 w-4" }), "Back to Tasks"]
|
|
518
539
|
})
|
|
519
540
|
]
|
|
520
541
|
})
|
|
@@ -526,6 +547,6 @@ function W() {
|
|
|
526
547
|
});
|
|
527
548
|
}
|
|
528
549
|
//#endregion
|
|
529
|
-
export {
|
|
550
|
+
export { V as TaskDetailsPage };
|
|
530
551
|
|
|
531
552
|
//# sourceMappingURL=TaskDetailsPage.js.map
|