@burdenoff/microfe-movethewheels 2026.929.4 → 2026.930.2
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/CustomerPicker.js +52 -48
- package/dist/components/EntityCombobox.js +25 -23
- package/dist/components/OrderItemRow.js +123 -78
- package/dist/hooks/useCustomers.js +52 -17
- package/dist/hooks/useFleet.js +126 -44
- package/dist/hooks/useInventory.js +43 -7
- package/dist/hooks/useMultiModalShipments.js +30 -26
- package/dist/hooks/useRefetchOnLeaveEdit.js +10 -0
- package/dist/hooks/useRoutes.js +55 -15
- package/dist/movethewheels/components/CustomerPicker.d.ts +5 -1
- package/dist/movethewheels/components/EntityCombobox.d.ts +6 -3
- package/dist/movethewheels/components/OrderItemRow.d.ts +7 -1
- package/dist/movethewheels/hooks/useCustomers.d.ts +3 -0
- package/dist/movethewheels/hooks/useFleet.d.ts +6 -0
- package/dist/movethewheels/hooks/useInventory.d.ts +2 -0
- package/dist/movethewheels/hooks/useMultiModalShipments.d.ts +1 -0
- package/dist/movethewheels/hooks/useRefetchOnLeaveEdit.d.ts +7 -0
- package/dist/movethewheels/hooks/useRoutes.d.ts +3 -0
- package/dist/movethewheels/utils/orderValidation.d.ts +11 -0
- package/dist/pages/CreateOrderPage.js +349 -297
- package/dist/pages/DriverDetailsPage.js +258 -251
- package/dist/pages/DriversPage.js +3 -1
- package/dist/pages/MultiModalShipmentPage.js +139 -125
- package/dist/pages/OrderDetailsPage.js +132 -140
- package/dist/pages/ProductDetailsPage.js +22 -19
- package/dist/pages/RouteDetailsPage.js +284 -281
- package/dist/pages/TrackingPage.js +2 -1
- package/dist/pages/VehicleDetailsPage.js +28 -25
- package/dist/utils/orderValidation.js +18 -0
- package/package.json +1 -1
- package/src/movethewheels/components/CustomerPicker.tsx +12 -0
- package/src/movethewheels/components/EntityCombobox.tsx +30 -11
- package/src/movethewheels/components/OrderItemRow.tsx +44 -0
- package/src/movethewheels/hooks/useCustomers.ts +38 -0
- package/src/movethewheels/hooks/useFleet.ts +125 -5
- package/src/movethewheels/hooks/useInventory.ts +42 -0
- package/src/movethewheels/hooks/useMultiModalShipments.ts +9 -7
- package/src/movethewheels/hooks/useRefetchOnLeaveEdit.ts +18 -0
- package/src/movethewheels/hooks/useRoutes.ts +51 -0
- package/src/movethewheels/pages/CreateOrderPage.tsx +66 -2
- package/src/movethewheels/pages/DriverDetailsPage.tsx +14 -1
- package/src/movethewheels/pages/DriversPage.tsx +7 -1
- package/src/movethewheels/pages/MultiModalShipmentPage.tsx +15 -1
- package/src/movethewheels/pages/OrderDetailsPage.tsx +25 -25
- package/src/movethewheels/pages/ProductDetailsPage.tsx +2 -0
- package/src/movethewheels/pages/RouteDetailsPage.tsx +10 -4
- package/src/movethewheels/pages/TrackingPage.tsx +7 -2
- package/src/movethewheels/pages/VehicleDetailsPage.tsx +2 -0
- package/src/movethewheels/utils/orderValidation.ts +53 -0
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import { OrderItem, Product } from '../types';
|
|
2
|
+
import { OrderItemFieldErrors } from '../utils/orderValidation';
|
|
2
3
|
|
|
3
4
|
interface OrderItemRowProps {
|
|
4
5
|
item: OrderItem;
|
|
5
6
|
index: number;
|
|
6
7
|
products: Product[];
|
|
7
8
|
productsLoading: boolean;
|
|
9
|
+
productsLoadingMore?: boolean;
|
|
10
|
+
productsHasMore?: boolean;
|
|
11
|
+
productsTotalCount?: number;
|
|
12
|
+
onLoadMoreProducts?: () => void | Promise<void>;
|
|
13
|
+
errors?: OrderItemFieldErrors;
|
|
8
14
|
onUpdate: (index: number, field: string, value: unknown) => void;
|
|
9
15
|
onRemove: (index: number) => void;
|
|
10
16
|
}
|
|
11
|
-
export declare function OrderItemRow({ item, index, products, productsLoading, onUpdate, onRemove, }: OrderItemRowProps): import("react").JSX.Element;
|
|
17
|
+
export declare function OrderItemRow({ item, index, products, productsLoading, productsLoadingMore, productsHasMore, productsTotalCount, onLoadMoreProducts, errors, onUpdate, onRemove, }: OrderItemRowProps): import("react").JSX.Element;
|
|
12
18
|
export {};
|
|
@@ -10,8 +10,11 @@ interface UseCustomersResult {
|
|
|
10
10
|
totalCustomers: number;
|
|
11
11
|
hasMore: boolean;
|
|
12
12
|
isLoading: boolean;
|
|
13
|
+
/** True while an additional server page is appended. */
|
|
14
|
+
isLoadingMore: boolean;
|
|
13
15
|
error: Error | null;
|
|
14
16
|
refetch: () => void;
|
|
17
|
+
loadMore: () => Promise<void>;
|
|
15
18
|
createCustomer: (customer: Partial<Customer>) => Promise<Customer>;
|
|
16
19
|
updateCustomer: (id: string, updates: Partial<Customer>) => Promise<Customer>;
|
|
17
20
|
deleteCustomer: (id: string) => Promise<void>;
|
|
@@ -149,8 +149,11 @@ interface UseVehiclesResult {
|
|
|
149
149
|
/** True when the last fetch returned a full page (rawCount === limit). */
|
|
150
150
|
hasMore: boolean;
|
|
151
151
|
isLoading: boolean;
|
|
152
|
+
/** True while an additional server page is appended. */
|
|
153
|
+
isLoadingMore: boolean;
|
|
152
154
|
error: Error | null;
|
|
153
155
|
refetch: () => void;
|
|
156
|
+
loadMore: () => Promise<void>;
|
|
154
157
|
updateVehicleStatus: (id: string, status: VehicleStatus) => Promise<Vehicle>;
|
|
155
158
|
assignDriver: (vehicleId: string, driverId: string) => Promise<Vehicle>;
|
|
156
159
|
deleteVehicle: (id: string) => Promise<void>;
|
|
@@ -168,8 +171,11 @@ interface UseDriversResult {
|
|
|
168
171
|
/** True when the last fetch returned a full page (rawCount === limit). */
|
|
169
172
|
hasMore: boolean;
|
|
170
173
|
isLoading: boolean;
|
|
174
|
+
/** True while an additional server page is appended. */
|
|
175
|
+
isLoadingMore: boolean;
|
|
171
176
|
error: Error | null;
|
|
172
177
|
refetch: () => void;
|
|
178
|
+
loadMore: () => Promise<void>;
|
|
173
179
|
updateDriverStatus: (id: string, status: DriverStatus) => Promise<Driver>;
|
|
174
180
|
assignVehicle: (driverId: string, vehicleId: string | null) => Promise<Driver>;
|
|
175
181
|
}
|
|
@@ -72,8 +72,10 @@ export declare function useProducts(options?: UseProductsOptions): {
|
|
|
72
72
|
totalProducts: number;
|
|
73
73
|
hasMore: boolean;
|
|
74
74
|
isLoading: boolean;
|
|
75
|
+
isLoadingMore: boolean;
|
|
75
76
|
error: Error | null;
|
|
76
77
|
refetch: () => undefined;
|
|
78
|
+
loadMore: () => Promise<void>;
|
|
77
79
|
};
|
|
78
80
|
export declare function useProductStats(): {
|
|
79
81
|
stats: {
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detail pages render their `/edit` form from the same route component, so the
|
|
3
|
+
* component (and its record hook) stays mounted across edit → detail. Without a
|
|
4
|
+
* refetch the detail view keeps showing the pre-edit record. Call `refetch`
|
|
5
|
+
* exactly when the edit route is left, never on the initial mount.
|
|
6
|
+
*/
|
|
7
|
+
export declare function useRefetchOnLeaveEdit(isEditRoute: boolean, refetch: () => void): void;
|
|
@@ -14,8 +14,11 @@ interface UseRoutesResult {
|
|
|
14
14
|
/** True when the last fetch has another server page. */
|
|
15
15
|
hasMore: boolean;
|
|
16
16
|
isLoading: boolean;
|
|
17
|
+
/** True while an additional server page is appended. */
|
|
18
|
+
isLoadingMore: boolean;
|
|
17
19
|
error: Error | null;
|
|
18
20
|
refetch: () => void;
|
|
21
|
+
loadMore: () => Promise<void>;
|
|
19
22
|
createRoute: (route: Partial<Route>) => Promise<Route>;
|
|
20
23
|
updateRoute: (id: string, updates: Omit<Partial<Route>, 'vehicleId' | 'driverId'> & {
|
|
21
24
|
vehicleId?: string | null;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { OrderItem } from '../types';
|
|
2
|
+
|
|
3
|
+
export type OrderItemField = 'name' | 'sku' | 'quantity' | 'weight' | 'value' | 'length' | 'width' | 'height';
|
|
4
|
+
export type OrderItemFieldErrors = Partial<Record<OrderItemField, string>>;
|
|
5
|
+
/**
|
|
6
|
+
* Validates one delivery-job cargo line without imposing pricing or order
|
|
7
|
+
* semantics that belong to the service. A catalog product may supply the name;
|
|
8
|
+
* every line still carries its SKU because cargo-item records require one.
|
|
9
|
+
*/
|
|
10
|
+
export declare function validateOrderItem(item: OrderItem): OrderItemFieldErrors;
|
|
11
|
+
export declare function validateOrderItems(items: OrderItem[]): Record<string, OrderItemFieldErrors>;
|