Skip to content

Instantly share code, notes, and snippets.

@zackshapiro
Created June 14, 2019 23:21
Show Gist options
  • Save zackshapiro/bf85114fdba6c163ad779fd7e732aacc to your computer and use it in GitHub Desktop.
Save zackshapiro/bf85114fdba6c163ad779fd7e732aacc to your computer and use it in GitHub Desktop.
import React from 'react'
import useFileHandlers from './useFileHandlers'
import './App.css'
const Input = (props) => (
<input
type='file'
accept='image/*'
name='img-loader-input'
multiple
{...props}
/>
)
const App = () => {
const {
files,
pending,
next,
uploading,
uploaded,
status,
onSubmit,
onChange,
} = useFileHandlers()
return (
<div className='container'>
<form className='form' onSubmit={onSubmit}>
{status === 'FILES_UPLOADED' && (
<div className='success-container'>
<div>
<h2>Congratulations!</h2>
<small>You uploaded your files. Get some rest.</small>
</div>
</div>
)}
<div>
<Input onChange={onChange} />
<button type='submit'>Submit</button>
</div>
<div>
{files.map(({ file, src, id }, index) => (
<div
style={{
opacity: uploaded[id] ? 0.2 : 1,
}}
key={`thumb${index}`}
className='thumbnail-wrapper'
>
<img className='thumbnail' src={src} alt='' />
<div className='thumbnail-caption'>{file.name}</div>
</div>
))}
</div>
</form>
</div>
)
}
export default App
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment