Introduction

Uppy provides React components for the included UI plugins.

Installation

All React components are provided through the @uppy/react package.

Install from NPM:

npm install @uppy/react

Usage

The components can be used with either React or API-compatible alternatives such as Preact.

Instead of adding a UI plugin to an Uppy instance with .use(), the Uppy instance can be passed into components as an uppy prop.
All other props are passed as options to the plugin.

const Uppy = require('@uppy/core')
const Tus = require('@uppy/tus')
const DragDrop = require('@uppy/drag-drop')

const uppy = Uppy({
  meta: { type: 'avatar' },
  restrictions: { maxNumberOfFiles: 1 },
  autoProceed: true
})

uppy.use(Tus, { endpoint: '/upload' })

uppy.on('complete', (result) => {
  const url = result.successful[0].uploadURL
  store.dispatch({
    type: SET_USER_AVATAR_URL,
    payload: { url: url }
  })
})

const AvatarPicker = ({ currentAvatar }) => {
  return (
    <div>
      <img src={currentAvatar} alt="Current Avatar" />
      <DragDrop
        uppy={uppy}
        locale={{
          strings: {
            chooseFile: 'Pick a new avatar'
          }
        }}
      />
    </div>
  )
}

The following plugins are available as React component wrappers: