123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- const React = require('react')
- const PropTypes = require('prop-types')
- const StatusBarPlugin = require('@uppy/status-bar')
- const uppyPropType = require('./propTypes').uppy
- const h = React.createElement
- /**
- * React component that renders a status bar containing upload progress and speed,
- * processing progress and pause/resume/cancel controls.
- */
- class StatusBar extends React.Component {
- componentDidMount () {
- this.installPlugin()
- }
- componentDidUpdate (prevProps) {
- if (prevProps.uppy !== this.props.uppy) {
- this.uninstallPlugin(prevProps)
- this.installPlugin()
- }
- }
- componentWillUnmount () {
- this.uninstallPlugin()
- }
- installPlugin () {
- const uppy = this.props.uppy
- const options = Object.assign(
- { id: 'react:StatusBar' },
- this.props,
- { target: this.container }
- )
- delete options.uppy
- uppy.use(StatusBarPlugin, options)
- this.plugin = uppy.getPlugin(options.id)
- }
- uninstallPlugin (props = this.props) {
- const uppy = props.uppy
- uppy.removePlugin(this.plugin)
- }
- render () {
- return h('div', {
- ref: (container) => {
- this.container = container
- }
- })
- }
- }
- StatusBar.propTypes = {
- uppy: uppyPropType,
- hideAfterFinish: PropTypes.bool,
- showProgressDetails: PropTypes.bool
- }
- StatusBar.defaultProps = {
- }
- module.exports = StatusBar
|