feat(plantare): usable UI — commitments screen, add sheet, entry points

The reproduction-commitment (Plantare) UI, local-first and plain-spoken:
- A Plantares screen (drawer entry, /plantares) listing your commitments,
  grouped Open / Done, with a big 'mark returned', a menu (let it go / reopen
  / remove) and an empty-state that explains what a Plantare is.
- An add sheet (scrollable): a two-choice 'who reproduces & returns' (I return
  / owed to me), an optional 'with whom', an optional 'what comes back' in the
  grower's own words, and a note. No sale, no currency — a promise.
- Reachable from a seed too: an 'Add a commitment' action on the variety
  detail, pre-attached to that variety.
- i18n en/es/pt/ast (human words: 'Plantare' + a plain explanation).

Added the Plantares screen to the small-phone overflow guard (18 cases green).
This commit is contained in:
vjrj 2026-07-11 02:11:57 +02:00
parent 81094f25a8
commit de6938d5d7
15 changed files with 730 additions and 2 deletions

View file

@ -37,6 +37,7 @@
"chat": "Conversas",
"wishlist": "Lista de desejos",
"following": "A seguir",
"plantares": "Plantares",
"settings": "Definições"
},
"settings": {
@ -551,5 +552,29 @@
},
"notifications": {
"newMessageFrom": "Nova mensagem de {name}"
},
"plantare": {
"title": "Plantares",
"help": "Um Plantare é o compromisso de reproduzir uma semente e devolver uma parte — assim uma variedade continua a viajar de mão em mão. Não é uma venda.",
"add": "Adicionar compromisso",
"empty": "Ainda não há compromissos. Quando partilhares ou receberes semente com o compromisso de a reproduzir e devolver algo, anota-o aqui.",
"iReturn": "Reproduzo e devolvo eu",
"owedToMe": "Devolvem-me a mim",
"direction": "Quem reproduz e devolve",
"counterparty": "Com quem?",
"counterpartyHint": "Uma pessoa ou um coletivo (opcional)",
"owed": "O que é devolvido?",
"owedHint": "p. ex. um punhado na próxima temporada (opcional)",
"note": "Nota (opcional)",
"save": "Guardar",
"markReturned": "Marcar devolvido",
"markForgiven": "Dar por saldado",
"reopen": "Reabrir",
"delete": "Remover",
"statusReturned": "Devolvido",
"statusForgiven": "Saldado",
"openSection": "Pendentes",
"settledSection": "Feitos",
"removeConfirm": "Remover este compromisso?"
}
}