@burdenoff/microfe-movethewheels 2026.719.3 → 2026.725.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/MoveTheWheelsRoot.js +45 -35
- package/dist/hooks/useOrders.js +119 -100
- package/dist/movethewheels/types/index.d.ts +1 -3
- package/dist/pages/CreateOrderPage.js +53 -79
- package/dist/pages/MarketplacePage.js +143 -124
- package/dist/pages/OrderDetailsPage.js +19 -20
- package/dist/pages/OrdersListPage.js +82 -113
- package/package.json +2 -1
- package/src/movethewheels/MoveTheWheelsRoot.tsx +57 -29
- package/src/movethewheels/hooks/useOrders.ts +83 -208
- package/src/movethewheels/pages/CreateOrderPage.tsx +1 -19
- package/src/movethewheels/pages/MarketplacePage.tsx +34 -1
- package/src/movethewheels/pages/OrderDetailsPage.tsx +1 -7
- package/src/movethewheels/pages/OrdersListPage.tsx +3 -31
- package/src/movethewheels/types/index.ts +1 -3
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
import { PageLayout } from '../components/PageLayout';
|
|
21
21
|
import { MetricCard, MetricGrid } from '../components/MetricCard';
|
|
22
22
|
import { DataTable, type Column } from '../components/DataTable';
|
|
23
|
-
import { StatusBadge, PriorityBadge
|
|
23
|
+
import { StatusBadge, PriorityBadge } from '../components/StatusBadge';
|
|
24
24
|
import { CTAOverflowMenu, PagePurpose } from '@burdenoff/fe-libs/ui';
|
|
25
25
|
import {
|
|
26
26
|
Button,
|
|
@@ -48,17 +48,15 @@ export default function OrdersListPage() {
|
|
|
48
48
|
};
|
|
49
49
|
const { basePath, navigate } = useMoveTheWheels();
|
|
50
50
|
const [statusFilter, setStatusFilter] = useState<OrderStatus | 'all'>('all');
|
|
51
|
-
const [typeFilter, setTypeFilter] = useState<'b2b' | 'b2c' | 'all'>('all');
|
|
52
51
|
const [unassignedOnly, setUnassignedOnly] = useState(false);
|
|
53
52
|
const [page, setPage] = useState(0);
|
|
54
53
|
const [pageSize, setPageSize] = useState(25);
|
|
55
54
|
|
|
56
|
-
const filtersActive = statusFilter !== 'all' ||
|
|
55
|
+
const filtersActive = statusFilter !== 'all' || unassignedOnly;
|
|
57
56
|
|
|
58
57
|
const { orders, hasMore, isLoading, error, refetch } = useOrders({
|
|
59
58
|
filters: {
|
|
60
59
|
status: statusFilter === 'all' ? undefined : statusFilter,
|
|
61
|
-
orderType: typeFilter === 'all' ? undefined : typeFilter,
|
|
62
60
|
unassigned: unassignedOnly || undefined,
|
|
63
61
|
},
|
|
64
62
|
limit: pageSize,
|
|
@@ -107,13 +105,6 @@ export default function OrdersListPage() {
|
|
|
107
105
|
className: 'min-w-[130px] whitespace-nowrap',
|
|
108
106
|
cell: (row) => <StatusBadge status={row.status} type="order" />,
|
|
109
107
|
},
|
|
110
|
-
{
|
|
111
|
-
id: 'type',
|
|
112
|
-
header: t('movethewheels.orders.table.type', 'Type'),
|
|
113
|
-
accessorKey: 'orderType',
|
|
114
|
-
className: 'min-w-[70px] whitespace-nowrap',
|
|
115
|
-
cell: (row) => <TypeBadge type={row.orderType} />,
|
|
116
|
-
},
|
|
117
108
|
{
|
|
118
109
|
id: 'priority',
|
|
119
110
|
header: t('movethewheels.orders.table.priority', 'Priority'),
|
|
@@ -227,7 +218,7 @@ export default function OrdersListPage() {
|
|
|
227
218
|
<PagePurpose icon={<Package size={18} />}>
|
|
228
219
|
{t(
|
|
229
220
|
'movethewheels.orders.purpose',
|
|
230
|
-
'Every delivery job lives here —
|
|
221
|
+
'Every delivery job lives here — their status, priority and value. Use this list to find an order, filter by status, and open one to assign a driver, track it, or update fulfilment.'
|
|
231
222
|
)}
|
|
232
223
|
</PagePurpose>
|
|
233
224
|
|
|
@@ -294,24 +285,6 @@ export default function OrdersListPage() {
|
|
|
294
285
|
))}
|
|
295
286
|
</SelectContent>
|
|
296
287
|
</Select>
|
|
297
|
-
<Select
|
|
298
|
-
value={typeFilter}
|
|
299
|
-
onValueChange={(value) => {
|
|
300
|
-
setTypeFilter(value as 'b2b' | 'b2c' | 'all');
|
|
301
|
-
resetPage();
|
|
302
|
-
}}
|
|
303
|
-
>
|
|
304
|
-
<SelectTrigger className="w-[150px]">
|
|
305
|
-
<SelectValue placeholder={t('movethewheels.orders.filters.type', 'Type')} />
|
|
306
|
-
</SelectTrigger>
|
|
307
|
-
<SelectContent>
|
|
308
|
-
<SelectItem value="all">
|
|
309
|
-
{t('movethewheels.orders.filters.allTypes', 'All Types')}
|
|
310
|
-
</SelectItem>
|
|
311
|
-
<SelectItem value="b2b">B2B</SelectItem>
|
|
312
|
-
<SelectItem value="b2c">B2C</SelectItem>
|
|
313
|
-
</SelectContent>
|
|
314
|
-
</Select>
|
|
315
288
|
<Button
|
|
316
289
|
variant={unassignedOnly ? 'default' : 'outline'}
|
|
317
290
|
size="sm"
|
|
@@ -329,7 +302,6 @@ export default function OrdersListPage() {
|
|
|
329
302
|
size="sm"
|
|
330
303
|
onClick={() => {
|
|
331
304
|
setStatusFilter('all');
|
|
332
|
-
setTypeFilter('all');
|
|
333
305
|
setUnassignedOnly(false);
|
|
334
306
|
resetPage();
|
|
335
307
|
}}
|
|
@@ -271,7 +271,6 @@ export interface Order {
|
|
|
271
271
|
};
|
|
272
272
|
items: OrderItem[];
|
|
273
273
|
status: OrderStatus;
|
|
274
|
-
orderType: 'b2b' | 'b2c';
|
|
275
274
|
priority: 'low' | 'normal' | 'high' | 'urgent';
|
|
276
275
|
pickupAddress: Address;
|
|
277
276
|
deliveryAddress: Address;
|
|
@@ -722,10 +721,9 @@ export interface OrderFilter {
|
|
|
722
721
|
dateFrom?: Date;
|
|
723
722
|
dateTo?: Date;
|
|
724
723
|
priority?: string;
|
|
725
|
-
orderType?: 'b2b' | 'b2c';
|
|
726
724
|
/**
|
|
727
725
|
* Client-side quick filter for orders that still need a driver assigned
|
|
728
|
-
* (driverId is null). The backend
|
|
726
|
+
* (driverId is null). The backend DeliveryJobFilterInput has no null-driver
|
|
729
727
|
* predicate, so this is applied to the fetched page after mapping.
|
|
730
728
|
*/
|
|
731
729
|
unassigned?: boolean;
|