feat(shell): home menu + navigation drawer (mockups 02/03)
The app now opens on a main menu instead of straight into the list: - HomeScreen (mockup 02): sprout logo over a faint seed-glyph watermark, with big "Your inventory" (→ /inventory) and "Open market" (Block 2, "coming soon") destinations. - AppDrawer (mockup 03): Inventory is live; the social items (market, profile, chat, wishlist, following, settings) are shown disabled with a "coming soon" tag so the roadmap is visible. Drawer is available on home and inventory. - Routing: / → home, /inventory → list, /variety/:id → detail. Tests: home shows the menu + navigates; drawer opens + navigates. quick-add flow updated to go home → inventory. 50 green; Linux runs.
This commit is contained in:
parent
17073dd560
commit
02a9d5bf39
11 changed files with 472 additions and 8 deletions
|
|
@ -7,7 +7,21 @@
|
|||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"edit": "Edit",
|
||||
"type": "Type"
|
||||
"type": "Type",
|
||||
"comingSoon": "Coming soon"
|
||||
},
|
||||
"home": {
|
||||
"openMarket": "Open market",
|
||||
"yourInventory": "Your inventory"
|
||||
},
|
||||
"menu": {
|
||||
"inventory": "Inventory",
|
||||
"market": "Market",
|
||||
"profile": "Your profile",
|
||||
"chat": "Chat",
|
||||
"wishlist": "Wishlist",
|
||||
"following": "Following",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"inventory": {
|
||||
"title": "Inventory",
|
||||
|
|
|
|||
|
|
@ -7,7 +7,21 @@
|
|||
"cancel": "Cancelar",
|
||||
"delete": "Eliminar",
|
||||
"edit": "Editar",
|
||||
"type": "Tipo"
|
||||
"type": "Tipo",
|
||||
"comingSoon": "Pronto"
|
||||
},
|
||||
"home": {
|
||||
"openMarket": "Mercado abierto",
|
||||
"yourInventory": "Tu inventario"
|
||||
},
|
||||
"menu": {
|
||||
"inventory": "Inventario",
|
||||
"market": "Mercado",
|
||||
"profile": "Tu perfil",
|
||||
"chat": "Chat",
|
||||
"wishlist": "Lista de deseos",
|
||||
"following": "Siguiendo",
|
||||
"settings": "Ajustes"
|
||||
},
|
||||
"inventory": {
|
||||
"title": "Inventario",
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@
|
|||
/// To regenerate, run: `dart run slang`
|
||||
///
|
||||
/// Locales: 2
|
||||
/// Strings: 216 (108 per locale)
|
||||
/// Strings: 236 (118 per locale)
|
||||
///
|
||||
/// Built on 2026-07-08 at 10:02 UTC
|
||||
/// Built on 2026-07-08 at 10:18 UTC
|
||||
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
|
|
|||
|
|
@ -42,6 +42,8 @@ class Translations with BaseTranslations<AppLocale, Translations> {
|
|||
// 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$menu$en menu = Translations$menu$en.internal(_root);
|
||||
late final Translations$inventory$en inventory = Translations$inventory$en.internal(_root);
|
||||
late final Translations$quickAdd$en quickAdd = Translations$quickAdd$en.internal(_root);
|
||||
late final Translations$detail$en detail = Translations$detail$en.internal(_root);
|
||||
|
|
@ -87,6 +89,54 @@ class Translations$common$en {
|
|||
|
||||
/// en: 'Type'
|
||||
String get type => 'Type';
|
||||
|
||||
/// en: 'Coming soon'
|
||||
String get comingSoon => 'Coming soon';
|
||||
}
|
||||
|
||||
// Path: home
|
||||
class Translations$home$en {
|
||||
Translations$home$en.internal(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'Open market'
|
||||
String get openMarket => 'Open market';
|
||||
|
||||
/// en: 'Your inventory'
|
||||
String get yourInventory => 'Your inventory';
|
||||
}
|
||||
|
||||
// Path: menu
|
||||
class Translations$menu$en {
|
||||
Translations$menu$en.internal(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'Inventory'
|
||||
String get inventory => 'Inventory';
|
||||
|
||||
/// en: 'Market'
|
||||
String get market => 'Market';
|
||||
|
||||
/// en: 'Your profile'
|
||||
String get profile => 'Your profile';
|
||||
|
||||
/// en: 'Chat'
|
||||
String get chat => 'Chat';
|
||||
|
||||
/// en: 'Wishlist'
|
||||
String get wishlist => 'Wishlist';
|
||||
|
||||
/// en: 'Following'
|
||||
String get following => 'Following';
|
||||
|
||||
/// en: 'Settings'
|
||||
String get settings => 'Settings';
|
||||
}
|
||||
|
||||
// Path: inventory
|
||||
|
|
@ -680,6 +730,16 @@ extension on Translations {
|
|||
'common.delete' => 'Delete',
|
||||
'common.edit' => 'Edit',
|
||||
'common.type' => 'Type',
|
||||
'common.comingSoon' => 'Coming soon',
|
||||
'home.openMarket' => 'Open market',
|
||||
'home.yourInventory' => 'Your inventory',
|
||||
'menu.inventory' => 'Inventory',
|
||||
'menu.market' => 'Market',
|
||||
'menu.profile' => 'Your profile',
|
||||
'menu.chat' => 'Chat',
|
||||
'menu.wishlist' => 'Wishlist',
|
||||
'menu.following' => 'Following',
|
||||
'menu.settings' => 'Settings',
|
||||
'inventory.title' => 'Inventory',
|
||||
'inventory.searchHint' => 'Search seeds',
|
||||
'inventory.empty' => 'No seeds yet. Tap + to add your first.',
|
||||
|
|
|
|||
|
|
@ -41,6 +41,8 @@ class TranslationsEs extends Translations with BaseTranslations<AppLocale, Trans
|
|||
// Translations
|
||||
@override late final _Translations$app$es app = _Translations$app$es._(_root);
|
||||
@override late final _Translations$common$es common = _Translations$common$es._(_root);
|
||||
@override late final _Translations$home$es home = _Translations$home$es._(_root);
|
||||
@override late final _Translations$menu$es menu = _Translations$menu$es._(_root);
|
||||
@override late final _Translations$inventory$es inventory = _Translations$inventory$es._(_root);
|
||||
@override late final _Translations$quickAdd$es quickAdd = _Translations$quickAdd$es._(_root);
|
||||
@override late final _Translations$detail$es detail = _Translations$detail$es._(_root);
|
||||
|
|
@ -74,6 +76,34 @@ class _Translations$common$es extends Translations$common$en {
|
|||
@override String get delete => 'Eliminar';
|
||||
@override String get edit => 'Editar';
|
||||
@override String get type => 'Tipo';
|
||||
@override String get comingSoon => 'Pronto';
|
||||
}
|
||||
|
||||
// Path: home
|
||||
class _Translations$home$es extends Translations$home$en {
|
||||
_Translations$home$es._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get openMarket => 'Mercado abierto';
|
||||
@override String get yourInventory => 'Tu inventario';
|
||||
}
|
||||
|
||||
// Path: menu
|
||||
class _Translations$menu$es extends Translations$menu$en {
|
||||
_Translations$menu$es._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get inventory => 'Inventario';
|
||||
@override String get market => 'Mercado';
|
||||
@override String get profile => 'Tu perfil';
|
||||
@override String get chat => 'Chat';
|
||||
@override String get wishlist => 'Lista de deseos';
|
||||
@override String get following => 'Siguiendo';
|
||||
@override String get settings => 'Ajustes';
|
||||
}
|
||||
|
||||
// Path: inventory
|
||||
|
|
@ -485,6 +515,16 @@ extension on TranslationsEs {
|
|||
'common.delete' => 'Eliminar',
|
||||
'common.edit' => 'Editar',
|
||||
'common.type' => 'Tipo',
|
||||
'common.comingSoon' => 'Pronto',
|
||||
'home.openMarket' => 'Mercado abierto',
|
||||
'home.yourInventory' => 'Tu inventario',
|
||||
'menu.inventory' => 'Inventario',
|
||||
'menu.market' => 'Mercado',
|
||||
'menu.profile' => 'Tu perfil',
|
||||
'menu.chat' => 'Chat',
|
||||
'menu.wishlist' => 'Lista de deseos',
|
||||
'menu.following' => 'Siguiendo',
|
||||
'menu.settings' => 'Ajustes',
|
||||
'inventory.title' => 'Inventario',
|
||||
'inventory.searchHint' => 'Buscar semillas',
|
||||
'inventory.empty' => 'Aún no hay semillas. Toca + para añadir la primera.',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue