blocks icon indicating copy to clipboard operation
blocks copied to clipboard

Camera Selection in Uploadcare lacks user-friendly design

Open cmetodo opened this issue 2 years ago • 1 comments

Is your feature request related to a problem? Please describe. In the package, specifically within the camera selection feature, users face a significant UX issue. When prompted to select a camera, a list of 10 cameras appears (Iphone, some Android phones too), defaulting to the first one. The labels for these cameras are neither user-friendly nor localized, often displayed in English regardless of the system language. This design oversight severely impacts less experienced users, rendering the component challenging to use effectively.

Describe the solution you'd like A vital enhancement would be the ability to set the default camera mode to 'environment' without presenting users with the ten-camera selection option. If this functionality is currently unavailable or undocumented, I strongly suggest implementing a basic configuration option allowing developers to set the default camera mode to either 'user' or 'environment'. This feature is standard in basic packages like react-webcam, and its absence in a paid, UI/UX-focused product like Uploadcare is surprising.

Describe alternatives you've considered An alternative could be a more intuitive UI for camera selection, with localized, user-friendly labels. However, the ideal solution remains the ability to pre-set the camera mode without necessitating user selection.

Additional context https://github.com/uploadcare/blocks/blob/2beae7309654e3639a4e1af19d9212d49db62cfe/blocks/CameraSource/CameraSource.js#L111C1-L130C6

cmetodo avatar Nov 12 '23 16:11 cmetodo

I've noticed a significant issue with Uploadcare's approach to customization. Their documentation encourages building your own upload flow with customizable blocks, yet much of their code, like in the _capture method, is marked as private. This restricts our ability to extend or modify these blocks, which is quite frustrating given their promise of flexibility and customization.

For instance, the camera selection defaults to the first camera, usually the front-facing one, and without access to modify this, we're stuck with a less-than-ideal user experience. While I understand the need for some level of encapsulation, this goes against the grain of what's being advertised.

Frankly, I'm very disappointed. If a framework promotes itself as highly customizable, it should offer the necessary flexibility to its developers.

cmetodo avatar Nov 12 '23 18:11 cmetodo