@burdenoff/microfe-movethewheels 2026.920.3 → 2026.923.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CarbonFootprintPanel.js +1 -1
- package/dist/components/CustomerPicker.js +76 -65
- package/dist/components/DataTable.js +140 -139
- package/dist/components/DocumentsCard.js +14 -8
- package/dist/generated/wspace-types.d.ts +2719 -8
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/useAnalytics.js +21 -1
- package/dist/hooks/useCustomers.js +94 -78
- package/dist/hooks/useDebouncedValue.js +11 -0
- package/dist/hooks/useEntityDocuments.js +28 -18
- package/dist/hooks/useEpod.js +24 -17
- package/dist/hooks/useFleet.js +148 -125
- package/dist/hooks/useInventory.js +255 -186
- package/dist/hooks/useMultiModalShipments.js +35 -27
- package/dist/hooks/useOrders.js +139 -134
- package/dist/hooks/useRoutes.js +97 -75
- package/dist/hooks/useTracking.js +100 -88
- package/dist/index.js +6 -6
- package/dist/movethewheels/components/CustomerPicker.d.ts +3 -1
- package/dist/movethewheels/components/DataTable.d.ts +5 -1
- package/dist/movethewheels/hooks/useCustomers.d.ts +0 -1
- package/dist/movethewheels/hooks/useDebouncedValue.d.ts +1 -0
- package/dist/movethewheels/hooks/useEntityDocuments.d.ts +2 -0
- package/dist/movethewheels/hooks/useEpod.d.ts +6 -1
- package/dist/movethewheels/hooks/useFleet.d.ts +49 -5
- package/dist/movethewheels/hooks/useInventory.d.ts +24 -17
- package/dist/movethewheels/hooks/useMultiModalShipments.d.ts +6 -1
- package/dist/movethewheels/hooks/useOrders.d.ts +48 -5
- package/dist/movethewheels/hooks/useRoutes.d.ts +18 -1
- package/dist/movethewheels/hooks/useTracking.d.ts +12 -11
- package/dist/movethewheels/types/index.d.ts +12 -5
- package/dist/pages/CreateOrderPage.js +191 -129
- package/dist/pages/CustomersPage.js +61 -54
- package/dist/pages/DeliveryCapturePage.js +131 -109
- package/dist/pages/DriversPage.js +100 -92
- package/dist/pages/InventoryPage.js +239 -236
- package/dist/pages/MultiModalShipmentPage.js +163 -130
- package/dist/pages/OrderDetailsPage.js +190 -106
- package/dist/pages/OrdersListPage.js +66 -60
- package/dist/pages/ProductDetailsPage.js +241 -200
- package/dist/pages/ProductsPage.js +59 -52
- package/dist/pages/RouteDetailsPage.js +324 -293
- package/dist/pages/RoutesPage.js +55 -48
- package/dist/pages/VehiclesPage.js +63 -56
- package/dist/pages/WarehousesPage.js +60 -53
- package/package.json +1 -1
- package/src/generated/wspace-types.ts +3136 -8
- package/src/movethewheels/components/CarbonFootprintPanel.tsx +0 -1
- package/src/movethewheels/components/CustomerPicker.tsx +14 -0
- package/src/movethewheels/components/DataTable.tsx +34 -18
- package/src/movethewheels/components/DocumentsCard.tsx +6 -1
- package/src/movethewheels/components/maps/leaflet-setup.ts +1 -8
- package/src/movethewheels/hooks/useAnalytics.ts +27 -0
- package/src/movethewheels/hooks/useCustomers.ts +64 -24
- package/src/movethewheels/hooks/useDebouncedValue.ts +12 -0
- package/src/movethewheels/hooks/useEntityDocuments.ts +43 -25
- package/src/movethewheels/hooks/useEpod.ts +14 -7
- package/src/movethewheels/hooks/useFleet.ts +66 -38
- package/src/movethewheels/hooks/useFleetIntelligence.ts +1 -4
- package/src/movethewheels/hooks/useInventory.ts +211 -90
- package/src/movethewheels/hooks/useMultiModalShipments.ts +15 -11
- package/src/movethewheels/hooks/useOrders.ts +48 -14
- package/src/movethewheels/hooks/useRoutes.ts +81 -24
- package/src/movethewheels/hooks/useTracking.ts +130 -98
- package/src/movethewheels/pages/CreateOrderPage.tsx +93 -2
- package/src/movethewheels/pages/CustomersPage.tsx +11 -1
- package/src/movethewheels/pages/DeliveryCapturePage.tsx +31 -1
- package/src/movethewheels/pages/DriversPage.tsx +24 -12
- package/src/movethewheels/pages/InventoryPage.tsx +57 -32
- package/src/movethewheels/pages/MultiModalShipmentPage.tsx +52 -3
- package/src/movethewheels/pages/OrderDetailsPage.tsx +91 -6
- package/src/movethewheels/pages/OrdersListPage.tsx +20 -3
- package/src/movethewheels/pages/ProductDetailsPage.tsx +52 -3
- package/src/movethewheels/pages/ProductsPage.tsx +11 -1
- package/src/movethewheels/pages/RouteDetailsPage.tsx +45 -5
- package/src/movethewheels/pages/RoutesPage.tsx +11 -1
- package/src/movethewheels/pages/VehiclesPage.tsx +19 -2
- package/src/movethewheels/pages/WarehousesPage.tsx +11 -1
- package/src/movethewheels/types/index.ts +12 -5
|
@@ -2,11 +2,12 @@ import { useMoveTheWheels as e } from "../providers/MoveTheWheelsProvider.js";
|
|
|
2
2
|
import { executeGraphQL as t } from "../utils/graphqlClient.js";
|
|
3
3
|
import { useCallback as n, useEffect as r, useMemo as i, useState as a } from "react";
|
|
4
4
|
//#region src/movethewheels/hooks/useMultiModalShipments.ts
|
|
5
|
-
var o = "\n id\n shipmentNumber\n status\n primaryMode\n isMultiModal\n totalFreightCost\n freightCurrency\n origin\n destination\n createdAt\n legs {\n \n id\n legNumber\n mode\n status\n origin\n destination\n distanceKm\n weightKg\n lengthCm\n widthCm\n heightCm\n volumeCbm\n containerType\n containerCount\n carrierName\n chargeableWeightKg\n calculatedCost\n currency\n\n }\n", s = `
|
|
5
|
+
var o = "\n id\n shipmentNumber\n status\n primaryMode\n isMultiModal\n totalFreightCost\n freightCurrency\n origin\n destination\n createdAt\n legs(pagination: { limit: 20, offset: 0 }) {\n \n id\n legNumber\n mode\n status\n origin\n destination\n distanceKm\n weightKg\n lengthCm\n widthCm\n heightCm\n volumeCbm\n containerType\n containerCount\n carrierName\n chargeableWeightKg\n calculatedCost\n currency\n\n }\n", s = `
|
|
6
6
|
query ListMultiModalShipments($pagination: PaginationInput) {
|
|
7
7
|
shipments(filter: { isMultiModal: true }, pagination: $pagination) {
|
|
8
8
|
${o}
|
|
9
9
|
}
|
|
10
|
+
shipmentsCount(filter: { isMultiModal: true })
|
|
10
11
|
}
|
|
11
12
|
`, c = "\n query CalculateFreightRate($input: FreightRateInput!) {\n calculateFreightRate(input: $input) {\n mode\n chargeableWeightKg\n ratePerUnit\n calculatedCost\n currency\n breakdown {\n label\n amount\n }\n }\n }\n", l = `
|
|
12
13
|
mutation PlanMultiModalShipment($input: PlanMultiModalShipmentInput!) {
|
|
@@ -99,38 +100,45 @@ function m() {
|
|
|
99
100
|
s?.id
|
|
100
101
|
]);
|
|
101
102
|
}
|
|
102
|
-
function h() {
|
|
103
|
-
let e = m(), [
|
|
104
|
-
|
|
103
|
+
function h(e = {}) {
|
|
104
|
+
let { limit: i = 10, offset: o = 0 } = e, f = m(), [h, g] = a([]), [_, v] = a(0), [y, b] = a(!1), [x, S] = a(!1), [C, w] = a(null), T = n(async () => {
|
|
105
|
+
S(!0), w(null);
|
|
105
106
|
try {
|
|
106
|
-
|
|
107
|
-
limit:
|
|
108
|
-
offset:
|
|
109
|
-
} })
|
|
107
|
+
let e = await t(f, s, { pagination: {
|
|
108
|
+
limit: i,
|
|
109
|
+
offset: o
|
|
110
|
+
} });
|
|
111
|
+
g(e.shipments.map(p)), v(e.shipmentsCount), b(o + e.shipments.length < e.shipmentsCount);
|
|
110
112
|
} catch (e) {
|
|
111
|
-
|
|
113
|
+
w(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load multi-modal shipments"));
|
|
112
114
|
} finally {
|
|
113
|
-
|
|
115
|
+
S(!1);
|
|
114
116
|
}
|
|
115
|
-
}, [
|
|
117
|
+
}, [
|
|
118
|
+
f,
|
|
119
|
+
i,
|
|
120
|
+
o
|
|
121
|
+
]);
|
|
116
122
|
return r(() => {
|
|
117
|
-
|
|
118
|
-
}, [
|
|
119
|
-
shipments:
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
123
|
+
T();
|
|
124
|
+
}, [T]), {
|
|
125
|
+
shipments: h,
|
|
126
|
+
totalShipments: _,
|
|
127
|
+
hasMore: y,
|
|
128
|
+
isLoading: x,
|
|
129
|
+
error: C,
|
|
130
|
+
refetch: () => void T(),
|
|
131
|
+
calculateFreightRate: n(async (e) => (await t(f, c, { input: d(e) })).calculateFreightRate, [f]),
|
|
132
|
+
planMultiModalShipment: n(async (e) => {
|
|
133
|
+
let n = p((await t(f, l, { input: {
|
|
134
|
+
shipmentNumber: e.shipmentNumber,
|
|
135
|
+
customerId: e.customerId,
|
|
136
|
+
origin: e.origin,
|
|
137
|
+
destination: e.destination,
|
|
138
|
+
legs: e.legs.map(u)
|
|
131
139
|
} })).planMultiModalShipment);
|
|
132
|
-
return
|
|
133
|
-
}, [
|
|
140
|
+
return g((e) => [n, ...e]), v((e) => e + 1), n;
|
|
141
|
+
}, [f])
|
|
134
142
|
};
|
|
135
143
|
}
|
|
136
144
|
//#endregion
|
package/dist/hooks/useOrders.js
CHANGED
|
@@ -1,39 +1,41 @@
|
|
|
1
1
|
import { useMoveTheWheels as e } from "../providers/MoveTheWheelsProvider.js";
|
|
2
2
|
import { executeGraphQL as t } from "../utils/graphqlClient.js";
|
|
3
|
-
import {
|
|
3
|
+
import { mapRoute as n } from "./useRoutes.js";
|
|
4
|
+
import { useCallback as r, useEffect as i, useMemo as a, useState as o } from "react";
|
|
4
5
|
//#region src/movethewheels/hooks/useOrders.ts
|
|
5
|
-
var
|
|
6
|
+
var s = "\n id\n deliveryJobNumber\n customerId\n status\n priority\n pickupAddress\n deliveryAddress\n cargoItems\n pricing\n trackingNumber\n specialInstructions\n scheduledDelivery\n vehicleId\n driverId\n routeId\n route {\n id\n name\n status\n vehicleId\n driverId\n waypoints\n estimatedDistance\n estimatedDuration\n fuelCost\n actualDistance\n actualDuration\n createdAt\n }\n createdAt\n updatedAt\n customer {\n name\n email\n phone\n company\n }\n statusHistory {\n status\n notes\n location\n createdAt\n createdBy\n }\n", c = `
|
|
6
7
|
query ListDeliveryJobs($filter: DeliveryJobFilterInput, $pagination: PaginationInput) {
|
|
7
8
|
deliveryJobs(filter: $filter, pagination: $pagination) {
|
|
8
|
-
${
|
|
9
|
+
${s}
|
|
9
10
|
}
|
|
11
|
+
deliveryJobsCount(filter: $filter)
|
|
10
12
|
}
|
|
11
|
-
`,
|
|
13
|
+
`, l = `
|
|
12
14
|
query GetDeliveryJob($id: ID!) {
|
|
13
15
|
deliveryJob(id: $id) {
|
|
14
|
-
${
|
|
16
|
+
${s}
|
|
15
17
|
}
|
|
16
18
|
}
|
|
17
|
-
`,
|
|
19
|
+
`, u = "\n query GetDeliveryJobStatsBundle {\n deliveryJobStats {\n total\n pending\n inTransit\n delivered\n cancelled\n failed\n }\n financeMetrics {\n revenue {\n totalRevenue\n averageOrderValue\n }\n }\n }\n", d = `
|
|
18
20
|
mutation CreateDeliveryJob($input: CreateDeliveryJobInput!) {
|
|
19
21
|
createDeliveryJob(input: $input) {
|
|
20
|
-
${
|
|
22
|
+
${s}
|
|
21
23
|
}
|
|
22
24
|
}
|
|
23
|
-
`,
|
|
25
|
+
`, f = `
|
|
24
26
|
mutation UpdateDeliveryJob($id: ID!, $input: UpdateDeliveryJobInput!) {
|
|
25
27
|
updateDeliveryJob(id: $id, input: $input) {
|
|
26
|
-
${
|
|
28
|
+
${s}
|
|
27
29
|
}
|
|
28
30
|
}
|
|
29
|
-
`,
|
|
31
|
+
`, p = `
|
|
30
32
|
mutation UpdateDeliveryJobStatus($id: ID!, $input: UpdateDeliveryJobStatusInput!) {
|
|
31
33
|
updateDeliveryJobStatus(id: $id, input: $input) {
|
|
32
|
-
${
|
|
34
|
+
${s}
|
|
33
35
|
}
|
|
34
36
|
}
|
|
35
|
-
`,
|
|
36
|
-
function
|
|
37
|
+
`, m = "\n mutation DeleteDeliveryJob($id: ID!) {\n deleteDeliveryJob(id: $id)\n }\n";
|
|
38
|
+
function h(e) {
|
|
37
39
|
switch (e) {
|
|
38
40
|
case "PENDING": return "pending";
|
|
39
41
|
case "CONFIRMED": return "confirmed";
|
|
@@ -46,7 +48,7 @@ function m(e) {
|
|
|
46
48
|
default: return "failed";
|
|
47
49
|
}
|
|
48
50
|
}
|
|
49
|
-
function
|
|
51
|
+
function g(e) {
|
|
50
52
|
switch (e) {
|
|
51
53
|
case "LOW": return "low";
|
|
52
54
|
case "HIGH": return "high";
|
|
@@ -55,7 +57,7 @@ function h(e) {
|
|
|
55
57
|
default: return "normal";
|
|
56
58
|
}
|
|
57
59
|
}
|
|
58
|
-
function
|
|
60
|
+
function _(e) {
|
|
59
61
|
switch (e) {
|
|
60
62
|
case "pending": return "PENDING";
|
|
61
63
|
case "confirmed": return "CONFIRMED";
|
|
@@ -68,7 +70,7 @@ function g(e) {
|
|
|
68
70
|
default: return "FAILED";
|
|
69
71
|
}
|
|
70
72
|
}
|
|
71
|
-
function
|
|
73
|
+
function v(e) {
|
|
72
74
|
switch (e) {
|
|
73
75
|
case "low": return "LOW";
|
|
74
76
|
case "high": return "HIGH";
|
|
@@ -76,7 +78,7 @@ function _(e) {
|
|
|
76
78
|
default: return "MEDIUM";
|
|
77
79
|
}
|
|
78
80
|
}
|
|
79
|
-
function
|
|
81
|
+
function y(e) {
|
|
80
82
|
return {
|
|
81
83
|
street: "",
|
|
82
84
|
city: "",
|
|
@@ -86,7 +88,7 @@ function v(e) {
|
|
|
86
88
|
...e ?? {}
|
|
87
89
|
};
|
|
88
90
|
}
|
|
89
|
-
function
|
|
91
|
+
function b(e) {
|
|
90
92
|
return {
|
|
91
93
|
id: e.id,
|
|
92
94
|
orderNumber: e.deliveryJobNumber,
|
|
@@ -98,10 +100,10 @@ function y(e) {
|
|
|
98
100
|
company: e.customer?.company ?? void 0
|
|
99
101
|
},
|
|
100
102
|
items: Array.isArray(e.cargoItems) ? e.cargoItems : [],
|
|
101
|
-
status:
|
|
102
|
-
priority:
|
|
103
|
-
pickupAddress:
|
|
104
|
-
deliveryAddress:
|
|
103
|
+
status: h(e.status),
|
|
104
|
+
priority: g(e.priority),
|
|
105
|
+
pickupAddress: y(e.pickupAddress),
|
|
106
|
+
deliveryAddress: y(e.deliveryAddress),
|
|
105
107
|
trackingNumber: e.trackingNumber ?? "",
|
|
106
108
|
specialInstructions: e.specialInstructions ?? void 0,
|
|
107
109
|
pricing: {
|
|
@@ -119,7 +121,7 @@ function y(e) {
|
|
|
119
121
|
},
|
|
120
122
|
timeline: e.statusHistory?.map((e) => ({
|
|
121
123
|
timestamp: new Date(e.createdAt),
|
|
122
|
-
status:
|
|
124
|
+
status: h(e.status),
|
|
123
125
|
location: e.location,
|
|
124
126
|
notes: e.notes ?? void 0,
|
|
125
127
|
performedBy: e.createdBy ?? "system"
|
|
@@ -127,166 +129,169 @@ function y(e) {
|
|
|
127
129
|
scheduledDelivery: e.scheduledDelivery ? new Date(e.scheduledDelivery) : void 0,
|
|
128
130
|
vehicleId: e.vehicleId ?? void 0,
|
|
129
131
|
driverId: e.driverId ?? void 0,
|
|
132
|
+
routeId: e.routeId ?? void 0,
|
|
133
|
+
route: e.route ? n(e.route) : void 0,
|
|
130
134
|
createdAt: new Date(e.createdAt),
|
|
131
135
|
updatedAt: new Date(e.updatedAt)
|
|
132
136
|
};
|
|
133
137
|
}
|
|
134
|
-
function
|
|
135
|
-
let { filters:
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
138
|
+
function x(n = {}) {
|
|
139
|
+
let { filters: s, limit: l = 20, offset: u = 0 } = n, h = a(() => s, [
|
|
140
|
+
s?.status,
|
|
141
|
+
s?.priority,
|
|
142
|
+
s?.customerId,
|
|
143
|
+
s?.driverId,
|
|
144
|
+
s?.search,
|
|
145
|
+
s?.unassigned
|
|
146
|
+
]), { apiGatewayUrl: g, authToken: y, workspaceToken: x, workspaceId: S, tenantId: C, currentUser: w } = e(), [T, E] = o([]), [D, O] = o(0), [k, A] = o(!1), [j, M] = o(!1), [N, P] = o(null), F = a(() => ({
|
|
147
|
+
apiGatewayUrl: g,
|
|
148
|
+
authToken: y,
|
|
144
149
|
workspaceToken: x,
|
|
145
150
|
workspaceId: S,
|
|
146
151
|
tenantId: C,
|
|
147
152
|
actorId: w?.id
|
|
148
153
|
}), [
|
|
149
|
-
|
|
150
|
-
|
|
154
|
+
g,
|
|
155
|
+
y,
|
|
151
156
|
x,
|
|
152
157
|
S,
|
|
153
158
|
C,
|
|
154
159
|
w?.id
|
|
155
|
-
]),
|
|
156
|
-
|
|
160
|
+
]), I = r(async () => {
|
|
161
|
+
M(!0), P(null);
|
|
157
162
|
try {
|
|
158
|
-
let e =
|
|
163
|
+
let e = await t(F, c, {
|
|
159
164
|
filter: {
|
|
160
|
-
status: h?.status ?
|
|
161
|
-
priority: h?.priority ?
|
|
165
|
+
status: h?.status ? _(h.status) : void 0,
|
|
166
|
+
priority: h?.priority ? v(h.priority) : void 0,
|
|
162
167
|
customerId: h?.customerId,
|
|
163
|
-
driverId: h?.driverId
|
|
168
|
+
driverId: h?.driverId,
|
|
169
|
+
unassigned: h?.unassigned,
|
|
170
|
+
search: h?.search
|
|
164
171
|
},
|
|
165
172
|
pagination: {
|
|
166
173
|
limit: l,
|
|
167
|
-
offset:
|
|
174
|
+
offset: u
|
|
168
175
|
}
|
|
169
|
-
})
|
|
170
|
-
O(e.length
|
|
171
|
-
let n = e.map(y);
|
|
172
|
-
h?.unassigned && (n = n.filter((e) => !e.driverId)), E(n);
|
|
176
|
+
}), n = e.deliveryJobs;
|
|
177
|
+
O(e.deliveryJobsCount), A(u + n.length < e.deliveryJobsCount), E(n.map(b));
|
|
173
178
|
} catch (e) {
|
|
174
|
-
|
|
179
|
+
P(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load orders"));
|
|
175
180
|
} finally {
|
|
176
|
-
|
|
181
|
+
M(!1);
|
|
177
182
|
}
|
|
178
183
|
}, [
|
|
179
184
|
h,
|
|
180
|
-
|
|
185
|
+
F,
|
|
181
186
|
l,
|
|
182
|
-
|
|
187
|
+
u
|
|
183
188
|
]);
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
}, [
|
|
187
|
-
let F = n(() => {
|
|
188
|
-
P();
|
|
189
|
-
}, [P]), I = n(async (e) => {
|
|
190
|
-
let n = y((await t(N, u, { input: {
|
|
191
|
-
deliveryJobNumber: e.orderNumber ?? `ORD-${(/* @__PURE__ */ new Date()).getFullYear()}-${Date.now().toString().slice(-6)}`,
|
|
192
|
-
status: g(e.status ?? "pending"),
|
|
193
|
-
priority: _(e.priority),
|
|
194
|
-
customerId: e.customerId,
|
|
195
|
-
pickupAddress: e.pickupAddress ?? {},
|
|
196
|
-
deliveryAddress: e.deliveryAddress ?? {},
|
|
197
|
-
cargoItems: e.items ?? [],
|
|
198
|
-
pricing: e.pricing ?? null,
|
|
199
|
-
specialInstructions: e.specialInstructions,
|
|
200
|
-
trackingNumber: e.trackingNumber,
|
|
201
|
-
scheduledDelivery: e.scheduledDelivery?.toISOString(),
|
|
202
|
-
vehicleId: e.vehicleId,
|
|
203
|
-
driverId: e.driverId
|
|
204
|
-
} })).createDeliveryJob);
|
|
205
|
-
return E((e) => [n, ...e]), n;
|
|
206
|
-
}, [N]), L = n(async (e, n) => {
|
|
207
|
-
let r = y((await t(N, d, {
|
|
208
|
-
id: e,
|
|
209
|
-
input: {
|
|
210
|
-
status: n.status ? g(n.status) : void 0,
|
|
211
|
-
priority: n.priority ? _(n.priority) : void 0,
|
|
212
|
-
customerId: n.customerId,
|
|
213
|
-
pickupAddress: n.pickupAddress,
|
|
214
|
-
deliveryAddress: n.deliveryAddress,
|
|
215
|
-
cargoItems: n.items,
|
|
216
|
-
pricing: n.pricing,
|
|
217
|
-
specialInstructions: n.specialInstructions,
|
|
218
|
-
trackingNumber: n.trackingNumber,
|
|
219
|
-
scheduledDelivery: n.scheduledDelivery === null ? null : n.scheduledDelivery?.toISOString(),
|
|
220
|
-
vehicleId: n.vehicleId,
|
|
221
|
-
driverId: n.driverId
|
|
222
|
-
}
|
|
223
|
-
})).updateDeliveryJob);
|
|
224
|
-
return E((t) => t.map((t) => t.id === e ? r : t)), r;
|
|
225
|
-
}, [N]), R = n(async (e) => {
|
|
226
|
-
await t(N, p, { id: e }), E((t) => t.filter((t) => t.id !== e));
|
|
227
|
-
}, [N]), z = n(async (e, n) => {
|
|
228
|
-
let r = y((await t(N, f, {
|
|
229
|
-
id: e,
|
|
230
|
-
input: { status: g(n) }
|
|
231
|
-
})).updateDeliveryJobStatus);
|
|
232
|
-
return E((t) => t.map((t) => t.id === e ? r : t)), r;
|
|
233
|
-
}, [N]);
|
|
234
|
-
return {
|
|
189
|
+
return i(() => {
|
|
190
|
+
I();
|
|
191
|
+
}, [I]), {
|
|
235
192
|
orders: T,
|
|
236
|
-
totalOrders:
|
|
237
|
-
hasMore:
|
|
238
|
-
isLoading:
|
|
239
|
-
error:
|
|
240
|
-
refetch:
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
193
|
+
totalOrders: D,
|
|
194
|
+
hasMore: k,
|
|
195
|
+
isLoading: j,
|
|
196
|
+
error: N,
|
|
197
|
+
refetch: r(() => {
|
|
198
|
+
I();
|
|
199
|
+
}, [I]),
|
|
200
|
+
createOrder: r(async (e) => {
|
|
201
|
+
let n = b((await t(F, d, { input: {
|
|
202
|
+
deliveryJobNumber: e.orderNumber ?? `ORD-${(/* @__PURE__ */ new Date()).getFullYear()}-${Date.now().toString().slice(-6)}`,
|
|
203
|
+
status: _(e.status ?? "pending"),
|
|
204
|
+
priority: v(e.priority),
|
|
205
|
+
customerId: e.customerId,
|
|
206
|
+
pickupAddress: e.pickupAddress ?? {},
|
|
207
|
+
deliveryAddress: e.deliveryAddress ?? {},
|
|
208
|
+
cargoItems: e.items ?? [],
|
|
209
|
+
pricing: e.pricing ?? null,
|
|
210
|
+
specialInstructions: e.specialInstructions,
|
|
211
|
+
trackingNumber: e.trackingNumber,
|
|
212
|
+
scheduledDelivery: e.scheduledDelivery?.toISOString(),
|
|
213
|
+
vehicleId: e.vehicleId,
|
|
214
|
+
driverId: e.driverId,
|
|
215
|
+
routeId: e.routeId
|
|
216
|
+
} })).createDeliveryJob);
|
|
217
|
+
return E((e) => [n, ...e]), n;
|
|
218
|
+
}, [F]),
|
|
219
|
+
updateOrder: r(async (e, n) => {
|
|
220
|
+
let r = b((await t(F, f, {
|
|
221
|
+
id: e,
|
|
222
|
+
input: {
|
|
223
|
+
status: n.status ? _(n.status) : void 0,
|
|
224
|
+
priority: n.priority ? v(n.priority) : void 0,
|
|
225
|
+
customerId: n.customerId,
|
|
226
|
+
pickupAddress: n.pickupAddress,
|
|
227
|
+
deliveryAddress: n.deliveryAddress,
|
|
228
|
+
cargoItems: n.items,
|
|
229
|
+
pricing: n.pricing,
|
|
230
|
+
specialInstructions: n.specialInstructions,
|
|
231
|
+
trackingNumber: n.trackingNumber,
|
|
232
|
+
scheduledDelivery: n.scheduledDelivery === null ? null : n.scheduledDelivery?.toISOString(),
|
|
233
|
+
vehicleId: n.vehicleId,
|
|
234
|
+
driverId: n.driverId,
|
|
235
|
+
routeId: n.routeId
|
|
236
|
+
}
|
|
237
|
+
})).updateDeliveryJob);
|
|
238
|
+
return E((t) => t.map((t) => t.id === e ? r : t)), r;
|
|
239
|
+
}, [F]),
|
|
240
|
+
deleteOrder: r(async (e) => {
|
|
241
|
+
await t(F, m, { id: e }), E((t) => t.filter((t) => t.id !== e));
|
|
242
|
+
}, [F]),
|
|
243
|
+
updateOrderStatus: r(async (e, n) => {
|
|
244
|
+
let r = b((await t(F, p, {
|
|
245
|
+
id: e,
|
|
246
|
+
input: { status: _(n) }
|
|
247
|
+
})).updateDeliveryJobStatus);
|
|
248
|
+
return E((t) => t.map((t) => t.id === e ? r : t)), r;
|
|
249
|
+
}, [F])
|
|
245
250
|
};
|
|
246
251
|
}
|
|
247
|
-
function
|
|
248
|
-
let { apiGatewayUrl: s, authToken:
|
|
252
|
+
function S(n) {
|
|
253
|
+
let { apiGatewayUrl: s, authToken: c, workspaceToken: u, workspaceId: d, tenantId: f, currentUser: p } = e(), [m, h] = o(null), [g, _] = o(!1), [v, y] = o(null), x = a(() => ({
|
|
249
254
|
apiGatewayUrl: s,
|
|
250
|
-
authToken:
|
|
255
|
+
authToken: c,
|
|
251
256
|
workspaceToken: u,
|
|
252
257
|
workspaceId: d,
|
|
253
258
|
tenantId: f,
|
|
254
259
|
actorId: p?.id
|
|
255
260
|
}), [
|
|
256
261
|
s,
|
|
257
|
-
|
|
262
|
+
c,
|
|
258
263
|
u,
|
|
259
264
|
d,
|
|
260
265
|
f,
|
|
261
266
|
p?.id
|
|
262
|
-
]), S =
|
|
263
|
-
if (!
|
|
267
|
+
]), S = r(async () => {
|
|
268
|
+
if (!n) {
|
|
264
269
|
h(null);
|
|
265
270
|
return;
|
|
266
271
|
}
|
|
267
|
-
_(!0),
|
|
272
|
+
_(!0), y(null);
|
|
268
273
|
try {
|
|
269
|
-
let e = await t(x,
|
|
270
|
-
h(e.deliveryJob ?
|
|
274
|
+
let e = await t(x, l, { id: n });
|
|
275
|
+
h(e.deliveryJob ? b(e.deliveryJob) : null);
|
|
271
276
|
} catch (e) {
|
|
272
|
-
|
|
277
|
+
y(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load order"));
|
|
273
278
|
} finally {
|
|
274
279
|
_(!1);
|
|
275
280
|
}
|
|
276
|
-
}, [x,
|
|
277
|
-
return
|
|
281
|
+
}, [x, n]);
|
|
282
|
+
return i(() => {
|
|
278
283
|
S();
|
|
279
284
|
}, [S]), {
|
|
280
285
|
order: m,
|
|
281
286
|
isLoading: g,
|
|
282
287
|
error: v,
|
|
283
|
-
refetch:
|
|
288
|
+
refetch: r(() => {
|
|
284
289
|
S();
|
|
285
290
|
}, [S])
|
|
286
291
|
};
|
|
287
292
|
}
|
|
288
|
-
function
|
|
289
|
-
let { apiGatewayUrl:
|
|
293
|
+
function C() {
|
|
294
|
+
let { apiGatewayUrl: n, authToken: s, workspaceToken: c, workspaceId: l, tenantId: d, currentUser: f } = e(), [p, m] = o(!1), [h, g] = o(null), [_, v] = o({
|
|
290
295
|
total: 0,
|
|
291
296
|
byStatus: {
|
|
292
297
|
pending: 0,
|
|
@@ -302,24 +307,24 @@ function S() {
|
|
|
302
307
|
totalRevenue: 0,
|
|
303
308
|
todayOrders: 0,
|
|
304
309
|
avgOrderValue: 0
|
|
305
|
-
}), y =
|
|
306
|
-
apiGatewayUrl:
|
|
310
|
+
}), y = a(() => ({
|
|
311
|
+
apiGatewayUrl: n,
|
|
307
312
|
authToken: s,
|
|
308
313
|
workspaceToken: c,
|
|
309
|
-
workspaceId:
|
|
314
|
+
workspaceId: l,
|
|
310
315
|
tenantId: d,
|
|
311
316
|
actorId: f?.id
|
|
312
317
|
}), [
|
|
313
|
-
|
|
318
|
+
n,
|
|
314
319
|
s,
|
|
315
320
|
c,
|
|
316
|
-
|
|
321
|
+
l,
|
|
317
322
|
d,
|
|
318
323
|
f?.id
|
|
319
|
-
]), b =
|
|
324
|
+
]), b = r(async () => {
|
|
320
325
|
m(!0), g(null);
|
|
321
326
|
try {
|
|
322
|
-
let e = await t(y,
|
|
327
|
+
let e = await t(y, u);
|
|
323
328
|
v({
|
|
324
329
|
total: e.deliveryJobStats.total,
|
|
325
330
|
byStatus: {
|
|
@@ -343,7 +348,7 @@ function S() {
|
|
|
343
348
|
m(!1);
|
|
344
349
|
}
|
|
345
350
|
}, [y]);
|
|
346
|
-
return
|
|
351
|
+
return i(() => {
|
|
347
352
|
b();
|
|
348
353
|
}, [b]), {
|
|
349
354
|
stats: _,
|
|
@@ -352,4 +357,4 @@ function S() {
|
|
|
352
357
|
};
|
|
353
358
|
}
|
|
354
359
|
//#endregion
|
|
355
|
-
export {
|
|
360
|
+
export { b as mapOrder, g as mapOrderPriority, h as mapOrderStatus, S as useOrder, C as useOrderStats, x as useOrders };
|