feat(photos): camera-or-gallery picker + swipeable full-screen viewer

- Adding a photo (quick-add and detail) now offers a Camera / Gallery chooser
  (shared pickPhoto helper); camera errors on desktop degrade gracefully.
- Full-screen viewer: pinch-to-zoom pans only while zoomed, so a plain
  horizontal swipe pages between photos again.

54 tests green; Linux runs.
This commit is contained in:
vjrj 2026-07-08 14:15:13 +02:00
parent 4b209d6752
commit c789cd1027
8 changed files with 136 additions and 40 deletions

View file

@ -43,6 +43,7 @@ class Translations with BaseTranslations<AppLocale, Translations> {
late final Translations$app$en app = Translations$app$en.internal(_root);
late final Translations$common$en common = Translations$common$en.internal(_root);
late final Translations$home$en home = Translations$home$en.internal(_root);
late final Translations$photo$en photo = Translations$photo$en.internal(_root);
late final Translations$menu$en menu = Translations$menu$en.internal(_root);
late final Translations$settings$en settings = Translations$settings$en.internal(_root);
late final Translations$inventory$en inventory = Translations$inventory$en.internal(_root);
@ -110,6 +111,21 @@ class Translations$home$en {
String get yourInventory => 'Your inventory';
}
// Path: photo
class Translations$photo$en {
Translations$photo$en.internal(this._root);
final Translations _root; // ignore: unused_field
// Translations
/// en: 'Take a photo'
String get camera => 'Take a photo';
/// en: 'Choose from gallery'
String get gallery => 'Choose from gallery';
}
// Path: menu
class Translations$menu$en {
Translations$menu$en.internal(this._root);
@ -773,6 +789,8 @@ extension on Translations {
'common.comingSoon' => 'Coming soon',
'home.openMarket' => 'Open market',
'home.yourInventory' => 'Your inventory',
'photo.camera' => 'Take a photo',
'photo.gallery' => 'Choose from gallery',
'menu.inventory' => 'Inventory',
'menu.market' => 'Market',
'menu.profile' => 'Your profile',