@burdenoff/microfe-movethewheels 2026.731.2 → 2026.802.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/MoveTheWheelsRoutes.js +1 -1
- package/dist/components/ProofOfDeliveryCard.js +2 -1
- package/dist/pages/CreateOrderPage.js +1 -1
- package/dist/pages/CustomerDetailsPage.js +1 -1
- package/dist/pages/DriverDetailsPage.js +1 -1
- package/dist/pages/OrderDetailsPage.js +1 -1
- package/dist/pages/ProductDetailsPage.js +1 -1
- package/dist/pages/RouteDetailsPage.js +1 -1
- package/dist/pages/TrackingPage.js +1 -1
- package/dist/pages/VehicleDetailsPage.js +1 -1
- package/dist/pages/WarehouseDetailsPage.js +1 -1
- package/dist/providers/MoveTheWheelsProvider.js +1 -1
- package/package.json +6 -6
- package/src/dev/main.tsx +1 -1
- package/src/movethewheels/MoveTheWheelsRoutes.tsx +1 -1
- package/src/movethewheels/components/ProofOfDeliveryCard.tsx +4 -1
- package/src/movethewheels/hooks/useEpod.ts +10 -3
- package/src/movethewheels/pages/CreateOrderPage.tsx +1 -1
- package/src/movethewheels/pages/CustomerDetailsPage.tsx +1 -1
- package/src/movethewheels/pages/DeliveryCapturePage.tsx +21 -4
- package/src/movethewheels/pages/DriverDetailsPage.tsx +1 -1
- package/src/movethewheels/pages/OrderDetailsPage.tsx +1 -1
- package/src/movethewheels/pages/ProductDetailsPage.tsx +1 -1
- package/src/movethewheels/pages/RouteDetailsPage.tsx +1 -1
- package/src/movethewheels/pages/TrackingPage.tsx +1 -1
- package/src/movethewheels/pages/VehicleDetailsPage.tsx +1 -1
- package/src/movethewheels/pages/WarehouseDetailsPage.tsx +1 -1
- package/src/movethewheels/providers/MoveTheWheelsProvider.tsx +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useMoveTheWheels as e } from "./providers/MoveTheWheelsProvider.js";
|
|
2
2
|
import { Suspense as t, lazy as n } from "react";
|
|
3
|
-
import { Route as r, Routes as i, useNavigate as a } from "react-router
|
|
3
|
+
import { Route as r, Routes as i, useNavigate as a } from "react-router";
|
|
4
4
|
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
5
5
|
import { NotFoundPage as c } from "@burdenoff/fe-libs/shared/pages";
|
|
6
6
|
//#region src/movethewheels/MoveTheWheelsRoutes.tsx
|
|
@@ -13,7 +13,7 @@ import { Button as u, Card as d, CardContent as f, CardHeader as p, CardTitle as
|
|
|
13
13
|
import { EmptyState as w, PageLayout as T } from "../components/PageLayout.js";
|
|
14
14
|
import { FormError as E } from "../components/FormError.js";
|
|
15
15
|
import { useEffect as D, useState as O } from "react";
|
|
16
|
-
import { useParams as k } from "react-router
|
|
16
|
+
import { useParams as k } from "react-router";
|
|
17
17
|
import { jsx as A, jsxs as j } from "react/jsx-runtime";
|
|
18
18
|
import { EmphasisPanel as M, NextSteps as ne, PagePurpose as re } from "@burdenoff/fe-libs/ui";
|
|
19
19
|
//#region src/movethewheels/pages/CreateOrderPage.tsx
|
|
@@ -21,7 +21,7 @@ import { FormError as j } from "../components/FormError.js";
|
|
|
21
21
|
import { Notice as ie, useNotice as ae } from "../components/Notice.js";
|
|
22
22
|
import { formatAddress as M, formatCurrency as N, formatDate as P } from "../utils/formatters.js";
|
|
23
23
|
import { useEffect as oe, useState as F } from "react";
|
|
24
|
-
import { useParams as se } from "react-router
|
|
24
|
+
import { useParams as se } from "react-router";
|
|
25
25
|
import { Fragment as ce, jsx as I, jsxs as L } from "react/jsx-runtime";
|
|
26
26
|
import { EmphasisPanel as R, NextSteps as le, PagePurpose as z } from "@burdenoff/fe-libs/ui";
|
|
27
27
|
//#region src/movethewheels/pages/CustomerDetailsPage.tsx
|
|
@@ -17,7 +17,7 @@ import { FormError as E } from "../components/FormError.js";
|
|
|
17
17
|
import { formatCurrency as D, formatDate as O } from "../utils/formatters.js";
|
|
18
18
|
import { DocumentsCard as k } from "../components/DocumentsCard.js";
|
|
19
19
|
import { useEffect as A, useState as j } from "react";
|
|
20
|
-
import { useLocation as M, useParams as N } from "react-router
|
|
20
|
+
import { useLocation as M, useParams as N } from "react-router";
|
|
21
21
|
import { jsx as P, jsxs as F } from "react/jsx-runtime";
|
|
22
22
|
import { EmphasisPanel as I, NextSteps as L, PagePurpose as R } from "@burdenoff/fe-libs/ui";
|
|
23
23
|
//#region src/movethewheels/pages/DriverDetailsPage.tsx
|
|
@@ -27,7 +27,7 @@ import { formatAddress as E, formatCurrency as D, formatDate as O } from "../uti
|
|
|
27
27
|
import { DocumentsCard as Ce } from "../components/DocumentsCard.js";
|
|
28
28
|
import { ProofOfDeliveryCard as we } from "../components/ProofOfDeliveryCard.js";
|
|
29
29
|
import { useState as k } from "react";
|
|
30
|
-
import { useParams as Te } from "react-router
|
|
30
|
+
import { useParams as Te } from "react-router";
|
|
31
31
|
import { jsx as A, jsxs as j } from "react/jsx-runtime";
|
|
32
32
|
import { EmphasisPanel as Ee, NextSteps as De, PagePurpose as Oe } from "@burdenoff/fe-libs/ui";
|
|
33
33
|
//#region src/movethewheels/pages/OrderDetailsPage.tsx
|
|
@@ -13,7 +13,7 @@ import { ErrorState as y, LoadingState as b, PageLayout as x } from "../componen
|
|
|
13
13
|
import { FormError as S } from "../components/FormError.js";
|
|
14
14
|
import { formatCurrency as C } from "../utils/formatters.js";
|
|
15
15
|
import { useEffect as w, useState as T } from "react";
|
|
16
|
-
import { useLocation as E, useParams as D } from "react-router
|
|
16
|
+
import { useLocation as E, useParams as D } from "react-router";
|
|
17
17
|
import { jsx as O, jsxs as k } from "react/jsx-runtime";
|
|
18
18
|
import { EmphasisPanel as A, NextSteps as j, PagePurpose as M } from "@burdenoff/fe-libs/ui";
|
|
19
19
|
//#region src/movethewheels/pages/ProductDetailsPage.tsx
|
|
@@ -26,7 +26,7 @@ import { Notice as L, useNotice as R } from "../components/Notice.js";
|
|
|
26
26
|
import { formatAddress as z, formatCurrency as B, formatDate as V } from "../utils/formatters.js";
|
|
27
27
|
import { firstRealLatLng as H } from "../utils/mapMarkers.js";
|
|
28
28
|
import { useEffect as U, useState as W } from "react";
|
|
29
|
-
import { useLocation as G, useParams as K } from "react-router
|
|
29
|
+
import { useLocation as G, useParams as K } from "react-router";
|
|
30
30
|
import { jsx as q, jsxs as J } from "react/jsx-runtime";
|
|
31
31
|
import { EmphasisPanel as Y, NextSteps as X, PagePurpose as Z } from "@burdenoff/fe-libs/ui";
|
|
32
32
|
//#region src/movethewheels/pages/RouteDetailsPage.tsx
|
|
@@ -17,7 +17,7 @@ import { formatAddress as b, formatDate as x } from "../utils/formatters.js";
|
|
|
17
17
|
import { firstRealLatLng as S } from "../utils/mapMarkers.js";
|
|
18
18
|
import { ProofOfDeliveryCard as C } from "../components/ProofOfDeliveryCard.js";
|
|
19
19
|
import { useMemo as w, useState as T } from "react";
|
|
20
|
-
import { useSearchParams as E } from "react-router
|
|
20
|
+
import { useSearchParams as E } from "react-router";
|
|
21
21
|
import { jsx as D, jsxs as O } from "react/jsx-runtime";
|
|
22
22
|
import { EmphasisPanel as k, PagePurpose as A } from "@burdenoff/fe-libs/ui";
|
|
23
23
|
import { useI18n as j } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
@@ -15,7 +15,7 @@ import { FormError as k } from "../components/FormError.js";
|
|
|
15
15
|
import { formatDate as A } from "../utils/formatters.js";
|
|
16
16
|
import { DocumentsCard as j } from "../components/DocumentsCard.js";
|
|
17
17
|
import { useEffect as M, useState as N } from "react";
|
|
18
|
-
import { useLocation as P, useParams as F } from "react-router
|
|
18
|
+
import { useLocation as P, useParams as F } from "react-router";
|
|
19
19
|
import { jsx as I, jsxs as L } from "react/jsx-runtime";
|
|
20
20
|
import { EmphasisPanel as R, NextSteps as z, PagePurpose as B } from "@burdenoff/fe-libs/ui";
|
|
21
21
|
//#region src/movethewheels/pages/VehicleDetailsPage.tsx
|
|
@@ -14,7 +14,7 @@ import { ErrorState as E, LoadingState as D, PageLayout as O } from "../componen
|
|
|
14
14
|
import { FormError as k } from "../components/FormError.js";
|
|
15
15
|
import { formatAddress as A } from "../utils/formatters.js";
|
|
16
16
|
import { useEffect as j, useState as M } from "react";
|
|
17
|
-
import { useLocation as N, useParams as P } from "react-router
|
|
17
|
+
import { useLocation as N, useParams as P } from "react-router";
|
|
18
18
|
import { jsx as F, jsxs as I } from "react/jsx-runtime";
|
|
19
19
|
import { EmphasisPanel as L, NextSteps as R, PagePurpose as z } from "@burdenoff/fe-libs/ui";
|
|
20
20
|
//#region src/movethewheels/pages/WarehouseDetailsPage.tsx
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { joinPath as e } from "../utils/navigation.js";
|
|
2
2
|
import { createContext as t, useContext as n, useMemo as r } from "react";
|
|
3
|
-
import { MemoryRouter as i } from "react-router
|
|
3
|
+
import { MemoryRouter as i } from "react-router";
|
|
4
4
|
import { jsx as a } from "react/jsx-runtime";
|
|
5
5
|
//#region src/movethewheels/providers/MoveTheWheelsProvider.tsx
|
|
6
6
|
var o = t(null), s = ({ children: e, ...t }) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@burdenoff/microfe-movethewheels",
|
|
3
|
-
"version": "2026.
|
|
3
|
+
"version": "2026.802.1",
|
|
4
4
|
"description": "Burdenoff MoveTheWheels Microfrontend - Logistics & Supply Chain Management Platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -26,13 +26,13 @@
|
|
|
26
26
|
"types": "./dist/index.d.ts",
|
|
27
27
|
"scripts": {
|
|
28
28
|
"dev": "vite --port 5191",
|
|
29
|
-
"build": "tsc && vite build",
|
|
29
|
+
"build": "tsc && bash scripts/build-limits.sh --gate vite build",
|
|
30
30
|
"lint": "eslint .",
|
|
31
31
|
"lint:sanity": "if [ \"${CI:-}\" = \"true\" ]; then bun run lint; else bun run lint -- --cache --cache-location .eslintcache; fi",
|
|
32
32
|
"format": "prettier --write \"src/**/*.{ts,tsx}\"",
|
|
33
|
-
"type:check": "tsc --noEmit",
|
|
33
|
+
"type:check": "bash scripts/build-limits.sh tsc --noEmit",
|
|
34
34
|
"validate:schema-drift": "graphql-schema-drift",
|
|
35
|
-
"sanity": "bun run codegen && bun run validate:schema-drift && bun run lint:sanity && bun run format && bun run type:check && bun run build && bun run build-storybook",
|
|
35
|
+
"sanity": "bash scripts/build-limits.sh --gate bash -c 'bun run codegen && bun run validate:schema-drift && bun run lint:sanity && bun run format && bun run type:check && bun run build && bun run build-storybook'",
|
|
36
36
|
"storybook": "storybook dev -p 6006",
|
|
37
37
|
"build-storybook": "storybook build",
|
|
38
38
|
"test:storybook": "test-storybook",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"@apollo/client": "^4.0.11",
|
|
51
|
-
"@burdenoff/fe-libs": "2026.
|
|
51
|
+
"@burdenoff/fe-libs": "2026.801.1",
|
|
52
52
|
"@react-leaflet/core": "^3.0.0",
|
|
53
53
|
"@tanstack/react-query": "^5.90.16",
|
|
54
54
|
"clsx": "^2.1.1",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"react": "^19.0.0",
|
|
59
59
|
"react-dom": "^19.0.0",
|
|
60
60
|
"react-leaflet": "^5.0.0",
|
|
61
|
-
"react-router
|
|
61
|
+
"react-router": "^8.3.0",
|
|
62
62
|
"recharts": "^2.15.0",
|
|
63
63
|
"tailwind-merge": "^3.4.0",
|
|
64
64
|
"zustand": "^5.0.3"
|
package/src/dev/main.tsx
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { StrictMode, useEffect, useState } from 'react';
|
|
5
5
|
import { createRoot } from 'react-dom/client';
|
|
6
|
-
import { BrowserRouter, Routes, Route, Navigate, useNavigate } from 'react-router
|
|
6
|
+
import { BrowserRouter, Routes, Route, Navigate, useNavigate } from 'react-router';
|
|
7
7
|
import { MoveTheWheelsRoot } from '../movethewheels';
|
|
8
8
|
import './styles.css';
|
|
9
9
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Uses lazy loading for code splitting.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { Routes, Route, useNavigate } from 'react-router
|
|
8
|
+
import { Routes, Route, useNavigate } from 'react-router';
|
|
9
9
|
import { lazy, Suspense } from 'react';
|
|
10
10
|
import { NotFoundPage } from '@burdenoff/fe-libs/shared/pages';
|
|
11
11
|
import { useMoveTheWheels } from './providers/MoveTheWheelsProvider';
|
|
@@ -77,7 +77,10 @@ export function ProofOfDeliveryCard({ deliveryJobId }: ProofOfDeliveryCardProps)
|
|
|
77
77
|
<p className="font-medium">
|
|
78
78
|
{epod.latitude.toFixed(5)}, {epod.longitude.toFixed(5)}
|
|
79
79
|
{epod.locationAccuracy != null && (
|
|
80
|
-
<span className="text-text-secondary">
|
|
80
|
+
<span className="text-text-secondary">
|
|
81
|
+
{' '}
|
|
82
|
+
(±{Math.round(epod.locationAccuracy)}m)
|
|
83
|
+
</span>
|
|
81
84
|
)}
|
|
82
85
|
</p>
|
|
83
86
|
</div>
|
|
@@ -167,7 +167,9 @@ export function useEpod(deliveryJobId: string | undefined) {
|
|
|
167
167
|
);
|
|
168
168
|
setEpod(data.epod ? mapEpod(data.epod) : null);
|
|
169
169
|
} catch (fetchError) {
|
|
170
|
-
setError(
|
|
170
|
+
setError(
|
|
171
|
+
fetchError instanceof Error ? fetchError : new Error('Failed to load proof of delivery')
|
|
172
|
+
);
|
|
171
173
|
setEpod(null);
|
|
172
174
|
} finally {
|
|
173
175
|
setIsLoading(false);
|
|
@@ -290,7 +292,9 @@ export function useCaptureEpod() {
|
|
|
290
292
|
return mapEpod(data.captureEpod);
|
|
291
293
|
} catch (captureError) {
|
|
292
294
|
const err =
|
|
293
|
-
captureError instanceof Error
|
|
295
|
+
captureError instanceof Error
|
|
296
|
+
? captureError
|
|
297
|
+
: new Error('Failed to capture proof of delivery');
|
|
294
298
|
setError(err);
|
|
295
299
|
throw err;
|
|
296
300
|
} finally {
|
|
@@ -362,7 +366,10 @@ export function useEpodPhotoUpload() {
|
|
|
362
366
|
setProgress(100);
|
|
363
367
|
return { fileId: completed.completeUpload.fileId, fileName: file.name };
|
|
364
368
|
} catch (uploadError) {
|
|
365
|
-
const err =
|
|
369
|
+
const err =
|
|
370
|
+
uploadError instanceof Error
|
|
371
|
+
? uploadError
|
|
372
|
+
: new Error('The photo could not be uploaded.');
|
|
366
373
|
setError(err);
|
|
367
374
|
throw err;
|
|
368
375
|
} finally {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { useEffect, useState } from 'react';
|
|
8
|
-
import { useParams } from 'react-router
|
|
8
|
+
import { useParams } from 'react-router';
|
|
9
9
|
import { Package, ArrowLeft, Save, Plus, Trash2, Users, MapPin } from 'lucide-react';
|
|
10
10
|
import { PageLayout, EmptyState } from '../components/PageLayout';
|
|
11
11
|
import { FormError } from '../components/FormError';
|
|
@@ -27,7 +27,16 @@ import {
|
|
|
27
27
|
Upload,
|
|
28
28
|
} from 'lucide-react';
|
|
29
29
|
import { PageLayout } from '../components/PageLayout';
|
|
30
|
-
import {
|
|
30
|
+
import {
|
|
31
|
+
Button,
|
|
32
|
+
Card,
|
|
33
|
+
CardContent,
|
|
34
|
+
CardHeader,
|
|
35
|
+
CardTitle,
|
|
36
|
+
Input,
|
|
37
|
+
Label,
|
|
38
|
+
Textarea,
|
|
39
|
+
} from '../components/ui';
|
|
31
40
|
import { SignaturePad, type SignaturePadHandle } from '../components/SignaturePad';
|
|
32
41
|
import { FormError } from '../components/FormError';
|
|
33
42
|
import { Notice, useNotice } from '../components/Notice';
|
|
@@ -85,10 +94,14 @@ function CaptureForm({
|
|
|
85
94
|
}
|
|
86
95
|
|
|
87
96
|
const signatureData =
|
|
88
|
-
signatureType === 'typed'
|
|
97
|
+
signatureType === 'typed'
|
|
98
|
+
? typedSignature.trim()
|
|
99
|
+
: (signaturePadRef.current?.toDataUrl() ?? null);
|
|
89
100
|
if (!signatureData) {
|
|
90
101
|
setValidationError(
|
|
91
|
-
signatureType === 'typed'
|
|
102
|
+
signatureType === 'typed'
|
|
103
|
+
? 'Type the recipient full name as their signature.'
|
|
104
|
+
: 'A signature is required.'
|
|
92
105
|
);
|
|
93
106
|
return;
|
|
94
107
|
}
|
|
@@ -253,7 +266,11 @@ export default function DeliveryCapturePage() {
|
|
|
253
266
|
<Notice message={message} />
|
|
254
267
|
|
|
255
268
|
{selectedJob ? (
|
|
256
|
-
<CaptureForm
|
|
269
|
+
<CaptureForm
|
|
270
|
+
job={selectedJob}
|
|
271
|
+
onCaptured={handleCaptured}
|
|
272
|
+
onCancel={() => setSelectedJob(null)}
|
|
273
|
+
/>
|
|
257
274
|
) : isLoading ? (
|
|
258
275
|
<p className="text-text-secondary text-center py-8">Loading your deliveries…</p>
|
|
259
276
|
) : error ? (
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
import { useEffect, useState } from 'react';
|
|
6
|
-
import { useLocation, useParams } from 'react-router
|
|
6
|
+
import { useLocation, useParams } from 'react-router';
|
|
7
7
|
import { Package, ArrowLeft, Edit, Box, DollarSign, Tag, Save } from 'lucide-react';
|
|
8
8
|
import { PageLayout, LoadingState, ErrorState } from '../components/PageLayout';
|
|
9
9
|
import {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { useMemo, useState } from 'react';
|
|
8
|
-
import { useSearchParams } from 'react-router
|
|
8
|
+
import { useSearchParams } from 'react-router';
|
|
9
9
|
import { MapPin, Search, Package, Truck, Clock, CheckCircle, AlertCircle } from 'lucide-react';
|
|
10
10
|
import { PageLayout, EmptyState } from '../components/PageLayout';
|
|
11
11
|
import { StatusBadge } from '../components/StatusBadge';
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
import { useEffect, useState } from 'react';
|
|
6
|
-
import { useParams, useLocation } from 'react-router
|
|
6
|
+
import { useParams, useLocation } from 'react-router';
|
|
7
7
|
import { Truck, ArrowLeft, MapPin, Fuel, Wrench, Edit, Save } from 'lucide-react';
|
|
8
8
|
import { PageLayout, LoadingState, ErrorState } from '../components/PageLayout';
|
|
9
9
|
import { StatusBadge, VehicleTypeBadge } from '../components/StatusBadge';
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
import { useEffect, useState } from 'react';
|
|
6
|
-
import { useLocation, useParams } from 'react-router
|
|
6
|
+
import { useLocation, useParams } from 'react-router';
|
|
7
7
|
import { Warehouse, ArrowLeft, Edit, MapPin, Clock, Users, Box, Save } from 'lucide-react';
|
|
8
8
|
import { PageLayout, LoadingState, ErrorState } from '../components/PageLayout';
|
|
9
9
|
import {
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import { createContext, useContext, useMemo, type FC, type PropsWithChildren } from 'react';
|
|
9
|
-
import { MemoryRouter } from 'react-router
|
|
9
|
+
import { MemoryRouter } from 'react-router';
|
|
10
10
|
import type { MoveTheWheelsRootProps, MoveTheWheelsContextValue } from '../types';
|
|
11
11
|
import { joinPath } from '../utils/navigation';
|
|
12
12
|
|