@siddjain/react-bootstrap-file-input v0.1.0
README
Bare-bones file picker for react with no dependencies (other than react >= 16.8, bootstrap and react-bootstrap) or bells and whistles.
What it does - it allows you to select multiple files and order and / or delete them. That's it.
You can also set a limit on the number of files user can select and the file types.
This package will not install react or bootstrap for you. It assumes you will add those dependencies
(all such dependencies that this package relies on you to install are declared under peerDependencies in package.json)
in your package.json along-side react-bootstrap-file-input. Example screenshot:
How to use it
Assuming you know how to write a React app:
import FileInput from "@siddjain/react-bootstrap-file-input";
import "bootstrap/dist/css/bootstrap.min.css";
export default function App() {
return (
<div className="App">
<FileInput maxFileCount={3} accept=".png,.jpg,.jpeg" />
</div>
);
}Note: please use following command to build your app (the app which will use this package as a dependency):
GENERATE_SOURCEMAP=false npm run buildYou need to set GENERATE_SOURCEMAP=false or you will get a warning when you run the app. See this.
API
FileInput takes following optional inputs:
onChange: an event handler that is called whenever the file list changes (addition, deletion or change in order of items in the list)maxFileSize: a number. units: bytes. If user selects a file whose size is greater thanmaxFileSizea warning symbol is displayed. The file is still selected and added to list of files.maxFileCount: a number. maximum number of files user should be able to select.accept: same as accept. a string that defines the file types the file input should accept.value: (for advanced users) this is useful if you will be usingFileInputin a multi-step (multi-page) form where user can go back and forth. An array ofFileobjects to initializeFileInput's list of files.
Known Issues
If you open a file, then remove it from selection, you cannot select (open) it again immediately (e.g., if you removed it from the selection by mistake). You have to open another file first. Then you can re-open or select the previous file.
Rest of this document is for me - the developer of this project.
Build Instructions
Install Dependencies
npm iBuild
npm run buildTest Instructions
Below are instructions on how to test the package locally before publishing to npm. To test the package, create a demo project that will import this package and use it. E.g., like this (full source code of demo project is not shown):
import FileInput from "@siddjain/react-bootstrap-file-input";
import "bootstrap/dist/css/bootstrap.min.css";
export default function App() {
return (
<div className="App">
<h1>Hello CodeSandbox</h1>
<FileInput></FileInput>
</div>
);
}Below are instructions how to use this package from a demo project.
Step 1: Pack the code
npm pack This will pack all the files under files in package.json and create a tarball (.tgz file).
Step 2: Copy over tarball to demo folder
Below we copy over the tarball to the demo project:
$ mv siddjain-react-bootstrap-file-input-1.0.0.tgz ../react-bootstrap-file-input-demoStep 3: Install tarball in demo project
$ npm i siddjain-react-bootstrap-file-input-1.0.0.tgzTip: Some docs suggest using npm link to test a package locally before publishing to npm.
Do NOT use npm link otherwise you run into invalid hook call. see this.
Publishing the package
npm publish --access publicSee this
LICENSE
4 years ago