Files
Art-gallery/client/src/components/GalleryLoadingMarker.tsx
T
Danila KhodjaefandCursor f78c14f307 Fix debug upload persistence and UX; exclude prod audit log from DB restore
Uploads and fixes now bust browser cache via file-mtime keys in API
responses. Debug upload shows a centered loading overlay and blocks search
while uploading. Prod DB restore skips curator_audit_log.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-09 18:30:19 +03:00

41 lines
990 B
TypeScript

import './GalleryLoadingMarker.css';
interface Props {
message?: string;
/** Full-area overlay (dims background). */
overlay?: boolean;
/** Compact strip along the bottom — does not block interaction. */
banner?: boolean;
/** Inline row for small panels (debug upload, etc.). */
compact?: boolean;
className?: string;
}
export default function GalleryLoadingMarker({
message = 'Loading…',
overlay = false,
banner = false,
compact = false,
className = '',
}: Props) {
const modeClass = overlay
? ' gallery-loading-marker-overlay'
: banner
? ' gallery-loading-marker-banner'
: compact
? ' gallery-loading-marker-compact'
: '';
return (
<div
className={`gallery-loading-marker${modeClass}${className ? ` ${className}` : ''}`}
role="status"
aria-live="polite"
aria-busy="true"
>
<div className="gallery-loading-marker-spinner" aria-hidden />
<p>{message}</p>
</div>
);
}