Uppy 1.27: Drop Target plugin, Vue 3 support, Dashboard dynamic meta fields, “Shared with me” in Google Drive
In Uppy 1.27 we’ve added a new @uppy/drop-target plugin, enabled support for
Vue 3, introduced dynamic metaFields option for Dashboard, Google Drive now
lists documents that have been shared with you.
Drop Target
With @uppy/drop-target it is now possible to turn your whole app / page (or
any other element, like <textarea>, for instance) into a drag-and-drop area:

uppy.use(DropTarget, {
target: document.body,
});
Google Drive “Shared with me”
If you connect Uppy to Google Drive, you’ll now see a new virtual folder called “Shared with me” — there you’ll find (hard to guess, I know), documents that have been shared with you.

Dashboard Dynamic metaFields
Sometimes you may want to show specific meta fields for certain type of files. For instance, you may want to show location and alt attribute for images. Now, instead of setting a fixed array of fields, you can pass a function that will be called for each file, returning an array of fields from it:
.use(Dashboard, {
trigger: '#pick-files',
metaFields: (file) => {
const fields = [{ id: 'name', name: 'File name' }]
if (file.type.startsWith('image/')) {
fields.push({ id: 'location', name: 'Photo Location' })
fields.push({ id: 'alt', name: 'Alt text' })
}
return fields
},
})
See Dashboard metaFields docs
for details.
Vue 3
@uppy/vue integration now supports Vue 3! This is done by checking the
arguments of the render function and determining whether it is using Vue 2 or
3, and then returning the appropriate rendering method.
Companion CORS and Better Testing
In Companion, we’ve improved unit testing DX
(#2827) and switched to using
the cors module instead of custom cors logic
(#2823).
@coreprocess submited a fix that allows Companion to serve on a subpath (#2797), and added Redis pubsub scope setting (#2804)!
npm 7
We’ve finally upgraded our monorepo to npm 7 and
Workspaces. If you are a
contributor, please upgrade npm install npm -g, as npm 7 is now required for
the Uppy repo.
New Linter Rules
Quite a few new rules have been added to our eslint-config, which is now mostly
eslint-config-transloadit with some custom uppy-specific overrides.
Misc
- @uppy/xhr-upload: Set headers just before the upload in case options changed (#2781 / @rart)
- @uppy/aws-s3-multipart: Aws-s3-multipart sends outdated file info to upload-success event (#2828 / @goto-bus-stop)
- @uppy/aws-s3: removeUploader triggered on uninstall (#2824 / @slawexxx44)
- @uppy/webcam: Fix issue where the modes:
['audio-only']option was ignored when getting tracks from the media stream (#2810 / @dominiceden) - website: Website improvements (#2803 / @nqst)
See changelog for details.
Download
Or include from CDN. Note that it’s highly
recommended to pick and choose specific Uppy plugins that you need, and install
them with npm or yarn. This is because the bundle includes all Uppy plugins
at once.
