Files
edr-platform/apps/edr-freight-web/backoffice/src/components/warehouses/VisualEmptyState.tsx
Hagernesh 95c6a71438 feat(warehouse): batch 3 — loading, dispatch & train-departure visibility
- WarehouseLoading entity + Batch3 migration (wagon loading records)
- wagon-aware load() with validation; dispatch moved to PATCH
- read-only SchedulingReadFacade (schedule/wagon/departure) — never writes scheduling
- new endpoints: GET /warehouse-loadings, loadable-wagons, booking schedule
- Loading Queue / Loaded Inventory / Dispatch Queue pages + routes + sidebar
- FreightVisual illustrations (page heroes + empty states)
- booking detail: loaded/dispatched/wagon + read-only train schedule

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 12:44:40 +00:00

37 lines
900 B
TypeScript

import type { ReactNode } from 'react';
import { Center, Stack, Text } from '@mantine/core';
import { FreightVisual, type FreightVisualVariant } from './FreightVisual';
interface VisualEmptyStateProps {
variant?: FreightVisualVariant;
title: string;
description?: string;
action?: ReactNode;
}
/** Friendly empty state with a small freight illustration. */
export function VisualEmptyState({
variant = 'empty',
title,
description,
action,
}: VisualEmptyStateProps) {
return (
<Center py="xl">
<Stack align="center" gap="xs" maw={360}>
<FreightVisual variant={variant} size={88} style={{ opacity: 0.85 }} />
<Text fw={600} ta="center">
{title}
</Text>
{description && (
<Text size="sm" c="dimmed" ta="center">
{description}
</Text>
)}
{action}
</Stack>
</Center>
);
}