shadcn.io is not affiliated with official shadcn/ui
Upload Queue Preview Gallery Block for Radix UI
A file drop zone that lists every file you pick or drop (name and size, never opened) beside a queue of four seeded files in their states, with Retry, Remove and a Send button.
Installation
Overview
An upload queue for React with Radix UI, for Dropbay, a file-drop service. A split puts a header and the catalog file-upload drop zone (framed, with + marks) at the start and, past the divider, a queue in a region that keeps one height. The queue starts with four files in four states: uploaded, uploading with a progress bar, uploaded, and failed with a Retry button. Files you pick or drop join as "Queued", each with its name, its real size and a drawn stand-in thumbnail chosen from its name: the block never opens or reads a file. Remove takes one out, Retry puts the failed one back in the queue, and Send marks every queued file as uploaded. A polite line says "3 of 4 uploaded". Nothing is sent or saved in this demo. It's built from File Upload, Progress, Shine Button and Guides.
FAQ
Does it read the files I choose?
No. The drop zone hands the block each accepted file, and the block keeps only its name and its size. The thumbnail is a drawing picked from the file's type and a number made from its name, so the same name always draws the same picture. Nothing is uploaded, previewed from the file or stored.
How are the states told apart?
By words and a mark, never by colour alone: a tick and "Uploaded", a clock and "Queued", an alert mark and "Failed: the connection dropped", and "Uploading, 64%" with a thin bar in the theme's foreground. The bar is hidden from screen readers because the percentage is in the text.
What if a file is too big?
The drop zone refuses a file over 50 MB and the block says so in its status line ("big-video.mov is over 50 MB and was not added"); nothing is queued. Change MAX_BYTES and the hint under the drop zone for your own limit.
Does the queue grow the block?
No. The queue is a scrolling region of fixed height (focusable, so the keyboard can scroll it) and the foot band keeps its height; ten files scroll, four don't.