mirror of
https://github.com/transloadit/uppy.git
synced 2026-01-24 02:46:39 +00:00
101 lines
2.5 KiB
JavaScript
101 lines
2.5 KiB
JavaScript
/* eslint-disable */
|
|
const React = require('react')
|
|
const Uppy = require('uppy/lib/core')
|
|
const Tus = require('uppy/lib/plugins/Tus')
|
|
const GoogleDrive = require('uppy/lib/plugins/GoogleDrive')
|
|
const { Dashboard, DashboardModal, DragDrop, ProgressBar } = require('uppy/lib/react')
|
|
|
|
module.exports = class App extends React.Component {
|
|
constructor (props) {
|
|
super(props)
|
|
|
|
this.state = {
|
|
showInlineDashboard: false,
|
|
open: false
|
|
}
|
|
|
|
this.handleModalClick = this.handleModalClick.bind(this)
|
|
}
|
|
|
|
componentWillMount () {
|
|
this.uppy = new Uppy({ id: 'uppy1', autoProceed: true, debug: true })
|
|
.use(Tus, { endpoint: 'https://master.tus.io/files/' })
|
|
.use(GoogleDrive, { host: 'https://server.uppy.io' })
|
|
|
|
this.uppy2 = new Uppy({ id: 'uppy2', autoProceed: false, debug: true })
|
|
.use(Tus, { endpoint: 'https://master.tus.io/files/' })
|
|
}
|
|
|
|
componentWillUnmount () {
|
|
this.uppy.close()
|
|
this.uppy2.close()
|
|
}
|
|
|
|
handleModalClick () {
|
|
this.setState({
|
|
open: !this.state.open
|
|
})
|
|
}
|
|
|
|
render () {
|
|
const { showInlineDashboard } = this.state
|
|
return (
|
|
<div>
|
|
<h1>React Examples</h1>
|
|
|
|
<h2>Inline Dashboard</h2>
|
|
<label>
|
|
<input
|
|
type="checkbox"
|
|
checked={showInlineDashboard}
|
|
onChange={(event) => {
|
|
this.setState({
|
|
showInlineDashboard: event.target.checked
|
|
})
|
|
}}
|
|
/>
|
|
Show Dashboard
|
|
</label>
|
|
{showInlineDashboard && (
|
|
<Dashboard
|
|
uppy={this.uppy}
|
|
plugins={['GoogleDrive']}
|
|
metaFields={[
|
|
{ id: 'name', name: 'Name', placeholder: 'File name' }
|
|
]}
|
|
/>
|
|
)}
|
|
|
|
<h2>Modal Dashboard</h2>
|
|
<div>
|
|
<button onClick={this.handleModalClick}>
|
|
{this.state.open ? 'Close dashboard' : 'Open dashboard'}
|
|
</button>
|
|
<DashboardModal
|
|
uppy={this.uppy2}
|
|
open={this.state.open}
|
|
target={document.body}
|
|
onRequestClose={() => this.setState({ open: false })}
|
|
/>
|
|
</div>
|
|
|
|
<h2>Drag Drop Area</h2>
|
|
<DragDrop
|
|
uppy={this.uppy}
|
|
locale={{
|
|
strings: {
|
|
chooseFile: 'Boop a file',
|
|
orDragDrop: 'or yoink it here'
|
|
}
|
|
}}
|
|
/>
|
|
|
|
<h2>Progress Bar</h2>
|
|
<ProgressBar
|
|
uppy={this.uppy}
|
|
hideAfterFinish={false}
|
|
/>
|
|
</div>
|
|
)
|
|
}
|
|
}
|