Controlled Queue
retab-ui/dropzone-controlled-queueFreeBlock
Parent-owned file state with controlled selected files and explicit clear behavior.
Install it
npx shadcn@latest add https://ui.retab.com/r/dropzone-controlled-queue.jsonSource
1"use client";23import * as React from "react";45import { cn } from "@/lib/utils";6import { useDropzone, type DropzoneFileItem } from "@/components/ui/dropzone";78import {9 InlineFileRows,10 RejectionRows,11 type DropzoneExampleProps,12} from "./dropzone-example-shared";1314export function ControlledQueue({ className }: DropzoneExampleProps) {15 const [files, setFiles] = React.useState<DropzoneFileItem[]>([]);16 const dropzone = useDropzone({17 files,18 maxFiles: 4,19 multiple: true,20 onFilesChange: setFiles,21 });2223 return (24 <section25 {...dropzone.getRootProps({26 className: cn(27 "rounded-lg border bg-muted/20 p-4 transition-colors",28 dropzone.isDragging && "border-foreground/40 bg-accent/35",29 className,30 ),31 })}32 >33 <input {...dropzone.getInputProps({ className: "hidden" })} />34 <div className="flex items-center justify-between gap-3">35 <div>36 <div className="text-sm font-medium">Controlled queue</div>37 <div className="text-muted-foreground text-xs">38 Parent-owned file state.39 </div>40 </div>41 <div className="flex items-center gap-2">42 <button43 className="text-muted-foreground hover:bg-muted h-8 rounded-md border px-2 text-xs"44 onClick={dropzone.clearFiles}45 type="button"46 >47 Clear48 </button>49 <button50 {...dropzone.getTriggerProps({51 native: true,52 className:53 "inline-flex h-8 cursor-pointer items-center rounded-md bg-primary px-3 text-xs font-medium text-primary-foreground outline-none focus-visible:ring-[3px] focus-visible:ring-ring/24",54 })}55 >56 Browse57 </button>58 </div>59 </div>60 <InlineFileRows files={files} onRemove={dropzone.removeFile} />61 <RejectionRows rejections={dropzone.lastIntake.fileRejections} />62 </section>63 );64}
What it pulls in
npm packages
Other registry items
Files it writes
More from retab-ui
All 130 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Classify Consensusclassify-consensus-viewer-block | retab-ui | Blocks | Free | 1 dep · 4 files | |
| CSV Sourcescsv-sources-block | retab-ui | Blocks | Free | no deps · 2 files | |
| DOCX Sourcesdocx-sources-block | retab-ui | Blocks | Free | no deps · 2 files | |
| Avatar Image Slotdropzone-avatar-image-slot | retab-ui | Blocks | Free | 1 dep · 2 files | |
| Dropzonedropzone-block | retab-ui | Blocks | Free | 1 dep · 26 files | |
| Comparison Pairdropzone-comparison-pair-upload | retab-ui | Blocks | Free | 1 dep · 2 files | |
| Custom Thumbnail Griddropzone-custom-thumbnail-grid | retab-ui | Blocks | Free | 1 dep · 2 files | |
| Disabled Dropzonedropzone-disabled-dropzone | retab-ui | Blocks | Free | 1 dep · 2 files |
