mirror of
https://github.com/transloadit/uppy.git
synced 2026-01-24 02:46:39 +00:00
* Dashboard: auto discover plugins no matter when they were installed * Remove target from RemoteSoruces, making it compatible with @uppy/react * Update packages/@uppy/dashboard/src/Dashboard.jsx Co-authored-by: Mikael Finstad <finstaden@gmail.com> * Removed comments, added comments * better comment * Change type — otherwise gets listed on Dashboard sources * Add RemoteSources to React test * Add RemoteSources to React example * Add tests * Refactor for less iteration for each plugin, rename functions * Prevent error when opts are undefined * remove console.logs * prettier --------- Co-authored-by: Mikael Finstad <finstaden@gmail.com>
114 lines
3 KiB
JavaScript
114 lines
3 KiB
JavaScript
/* eslint-disable */
|
|
import React from'react'
|
|
import Uppy from'@uppy/core'
|
|
import Tus from'@uppy/tus'
|
|
import GoogleDrive from '@uppy/google-drive'
|
|
import Webcam from '@uppy/webcam'
|
|
import RemoteSources from '@uppy/remote-sources'
|
|
import { Dashboard, DashboardModal, DragDrop, ProgressBar, FileInput } from'@uppy/react'
|
|
|
|
import '@uppy/core/dist/style.css'
|
|
import '@uppy/dashboard/dist/style.css'
|
|
import '@uppy/drag-drop/dist/style.css'
|
|
import '@uppy/file-input/dist/style.css'
|
|
import '@uppy/progress-bar/dist/style.css'
|
|
|
|
export default class App extends React.Component {
|
|
constructor (props) {
|
|
super(props)
|
|
|
|
this.state = {
|
|
showInlineDashboard: false,
|
|
open: false
|
|
}
|
|
|
|
this.uppy = new Uppy({ id: 'uppy1', autoProceed: true, debug: true })
|
|
.use(Tus, { endpoint: 'https://tusd.tusdemo.net/files/' })
|
|
.use(Webcam)
|
|
.use(RemoteSources, { companionUrl: 'https://companion.uppy.io', sources: ['GoogleDrive', 'Box', 'Dropbox', 'Facebook', 'Instagram', 'OneDrive', 'Unsplash', 'Zoom', 'Url'],
|
|
})
|
|
|
|
this.uppy2 = new Uppy({ id: 'uppy2', autoProceed: false, debug: true })
|
|
.use(Tus, { endpoint: 'https://tusd.tusdemo.net/files/' })
|
|
|
|
this.handleModalClick = this.handleModalClick.bind(this)
|
|
}
|
|
|
|
componentWillUnmount () {
|
|
this.uppy.close({ reason: 'unmount' })
|
|
this.uppy2.close({ reason: 'unmount' })
|
|
}
|
|
|
|
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}
|
|
/>
|
|
|
|
<h2>File Input</h2>
|
|
<FileInput
|
|
uppy={this.uppy}
|
|
/>
|
|
</div>
|
|
)
|
|
}
|
|
}
|