feat(inventory): external links on the variety detail
Add Wikipedia/forum-style URLs to a variety: - Repository: addExternalLink/removeExternalLink (soft delete); watchVariety loads links and re-emits on external_links changes; ExternalLinkItem model (title preferred over URL for display). - Cubit: addExternalLink/removeExternalLink. - Detail: a "Links" section with tappable link chips (open via url_launcher, http(s):// prepended if missing), delete per chip, and an "Add link" dialog (URL + optional title). Tests: repo add/remove + widget add/remove. 52 green; Linux runs.
This commit is contained in:
parent
02a9d5bf39
commit
b23f4f1c77
14 changed files with 315 additions and 2 deletions
|
|
@ -45,6 +45,10 @@
|
|||
"noLots": "No lots yet.",
|
||||
"names": "Also known as",
|
||||
"addName": "Add name",
|
||||
"links": "Links",
|
||||
"addLink": "Add link",
|
||||
"linkUrl": "URL",
|
||||
"linkTitle": "Title (optional)",
|
||||
"notes": "Notes",
|
||||
"addLot": "Add lot",
|
||||
"editLot": "Edit lot",
|
||||
|
|
|
|||
|
|
@ -45,6 +45,10 @@
|
|||
"noLots": "Aún no hay lotes.",
|
||||
"names": "También conocida como",
|
||||
"addName": "Añadir nombre",
|
||||
"links": "Enlaces",
|
||||
"addLink": "Añadir enlace",
|
||||
"linkUrl": "URL",
|
||||
"linkTitle": "Título (opcional)",
|
||||
"notes": "Notas",
|
||||
"addLot": "Añadir lote",
|
||||
"editLot": "Editar lote",
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@
|
|||
/// To regenerate, run: `dart run slang`
|
||||
///
|
||||
/// Locales: 2
|
||||
/// Strings: 236 (118 per locale)
|
||||
/// Strings: 244 (122 per locale)
|
||||
///
|
||||
/// Built on 2026-07-08 at 10:18 UTC
|
||||
/// Built on 2026-07-08 at 10:27 UTC
|
||||
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
|
|
|||
|
|
@ -216,6 +216,18 @@ class Translations$detail$en {
|
|||
/// en: 'Add name'
|
||||
String get addName => 'Add name';
|
||||
|
||||
/// en: 'Links'
|
||||
String get links => 'Links';
|
||||
|
||||
/// en: 'Add link'
|
||||
String get addLink => 'Add link';
|
||||
|
||||
/// en: 'URL'
|
||||
String get linkUrl => 'URL';
|
||||
|
||||
/// en: 'Title (optional)'
|
||||
String get linkTitle => 'Title (optional)';
|
||||
|
||||
/// en: 'Notes'
|
||||
String get notes => 'Notes';
|
||||
|
||||
|
|
@ -757,6 +769,10 @@ extension on Translations {
|
|||
'detail.noLots' => 'No lots yet.',
|
||||
'detail.names' => 'Also known as',
|
||||
'detail.addName' => 'Add name',
|
||||
'detail.links' => 'Links',
|
||||
'detail.addLink' => 'Add link',
|
||||
'detail.linkUrl' => 'URL',
|
||||
'detail.linkTitle' => 'Title (optional)',
|
||||
'detail.notes' => 'Notes',
|
||||
'detail.addLot' => 'Add lot',
|
||||
'detail.editLot' => 'Edit lot',
|
||||
|
|
|
|||
|
|
@ -148,6 +148,10 @@ class _Translations$detail$es extends Translations$detail$en {
|
|||
@override String get noLots => 'Aún no hay lotes.';
|
||||
@override String get names => 'También conocida como';
|
||||
@override String get addName => 'Añadir nombre';
|
||||
@override String get links => 'Enlaces';
|
||||
@override String get addLink => 'Añadir enlace';
|
||||
@override String get linkUrl => 'URL';
|
||||
@override String get linkTitle => 'Título (opcional)';
|
||||
@override String get notes => 'Notas';
|
||||
@override String get addLot => 'Añadir lote';
|
||||
@override String get editLot => 'Editar lote';
|
||||
|
|
@ -542,6 +546,10 @@ extension on TranslationsEs {
|
|||
'detail.noLots' => 'Aún no hay lotes.',
|
||||
'detail.names' => 'También conocida como',
|
||||
'detail.addName' => 'Añadir nombre',
|
||||
'detail.links' => 'Enlaces',
|
||||
'detail.addLink' => 'Añadir enlace',
|
||||
'detail.linkUrl' => 'URL',
|
||||
'detail.linkTitle' => 'Título (opcional)',
|
||||
'detail.notes' => 'Notas',
|
||||
'detail.addLot' => 'Añadir lote',
|
||||
'detail.editLot' => 'Editar lote',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue