├── .eslintrc.json ├── .gitignore ├── README.md ├── demo ├── .eslintrc.json ├── .gitignore ├── Dockerfile ├── package-lock.json ├── package.json ├── public │ ├── favicon.ico │ ├── index.html │ ├── manifest.json │ └── styles.css └── src │ ├── App.jsx │ ├── App.test.jsx │ ├── confetti │ └── Confetti.jsx │ ├── filePicker │ ├── FilePicker.jsx │ ├── FilePicker.test.jsx │ └── __mocks__ │ │ ├── .FileReader.js.swp │ │ └── FileReader.js │ ├── index.jsx │ ├── notificationSystem │ ├── NotificationSystem.jsx │ └── NotificationSystem.test.jsx │ ├── presignedUrlInput │ ├── PresignedUrlInput.jsx │ └── PresignedUrlInput.test.jsx │ ├── serviceWorker.js │ └── uploadFileButton │ ├── UploadFileButton.jsx │ └── UploadFileButton.test.jsx ├── dist ├── urlExtractor │ ├── UrlExtractor.js │ └── UrlExtractor.test.js ├── useUploadS3WithPresignedUrl.js └── useUploadS3WithPresignedUrl.test.js ├── docs ├── airbnb.png ├── react-s3-v2.gif └── react-s3.gif ├── index.js └── package.json /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "es6": true 5 | }, 6 | "extends": [ 7 | "airbnb" 8 | ], 9 | "globals": { 10 | "Atomics": "readonly", 11 | "SharedArrayBuffer": "readonly" 12 | }, 13 | "parserOptions": { 14 | "ecmaFeatures": { 15 | "jsx": true 16 | }, 17 | "ecmaVersion": 2018, 18 | "sourceType": "module" 19 | }, 20 | "plugins": [ 21 | "react" 22 | ], 23 | "rules": { 24 | } 25 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | 25 | *.swp 26 | *.swo 27 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
3 |
4 |
6 |
7 |
38 | {temporaryFile.name !== '' ? temporaryFile.name : 'Drag n drop a file here, or click to select file' } 39 |
40 |