feat(mui): kit primitives — PageHeader, EmptyState, LoadingState, FilterBar, StatCard + DataTable onRowClick/rowDanger
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
30
src/admin/ui/LoadingState.tsx
Normal file
30
src/admin/ui/LoadingState.tsx
Normal file
@@ -0,0 +1,30 @@
|
||||
import Box from "@mui/material/Box";
|
||||
import CircularProgress from "@mui/material/CircularProgress";
|
||||
import Typography from "@mui/material/Typography";
|
||||
|
||||
export interface LoadingStateProps {
|
||||
label?: string;
|
||||
}
|
||||
|
||||
/** Centered loading indicator — replaces admin-loading/admin-spinner CSS patterns. */
|
||||
export default function LoadingState({ label }: LoadingStateProps) {
|
||||
return (
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
flexDirection: "column",
|
||||
alignItems: "center",
|
||||
justifyContent: "center",
|
||||
py: 8,
|
||||
gap: 2,
|
||||
}}
|
||||
>
|
||||
<CircularProgress size={36} />
|
||||
{label && (
|
||||
<Typography variant="body2" color="text.secondary">
|
||||
{label}
|
||||
</Typography>
|
||||
)}
|
||||
</Box>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user