The goal of this package is to provide a simple and reusable file input component for React applications. It supports drag-and-drop functionality, pending states for each file, custom upload handlers and more.
import { FileInputButton } from "dn-react-file-input";
export default function App() {
return (
<div>
<FileInputButton>Upload File</FileInputButton>
</div>
);
}import { FileInputArea } from "dn-react-file-input";
export default function App() {
return (
<div>
<FileInputArea>
Drag and drop files here or click to upload.
</FileInputArea>
</div>
);
}import {
useFiles,
useFileInputController,
FileInputArea,
} from "dn-react-file-input";
export default function App() {
const controller = useFileInputController();
const files = useFiles({ controller });
return (
<div>
<FileInputArea controller={controller}>
Drag and drop files here or click to upload.
</FileInputArea>
<ul>
{files.map((snapshot) => (
<li key={snapshot.uniqueKey}>
{snapshot.name} {snapshot.isLoading ? "Loading..." : "Loaded"}
</li>
))}
</ul>
</div>
);
}