In 3.1.0 the default sources are:
DEFAULT_SOURCES = ["camera", "local", "microphone", "screen", "url"]
(@upupjs/core/dist/internal.cjs)
v1's default surface was effectively local + url. After migrating one of our apps (which never passed a sources prop because the v1 default was fine), the widget suddenly showed camera / microphone / screen-record buttons. Their output (webm) wasn't in the app's allowedFileTypes, so a user could record a clip and then hit a validation dead end.
We fixed it with sources={['local', 'url']}, but it shipped as a regression first and only got caught in review.
Two suggestions:
- call this out in the migration guide's gotchas — anyone relying on the v1 default gets three new capture sources silently
- longer term, consider hiding capture sources whose output can never pass the configured
allowedFileTypes — a mic button that always produces a rejected file is never what anyone wants
In 3.1.0 the default sources are:
(
@upupjs/core/dist/internal.cjs)v1's default surface was effectively local + url. After migrating one of our apps (which never passed a sources prop because the v1 default was fine), the widget suddenly showed camera / microphone / screen-record buttons. Their output (webm) wasn't in the app's
allowedFileTypes, so a user could record a clip and then hit a validation dead end.We fixed it with
sources={['local', 'url']}, but it shipped as a regression first and only got caught in review.Two suggestions:
allowedFileTypes— a mic button that always produces a rejected file is never what anyone wants