fix: placeholder text as default in setup

Also added currency symbol as prefix in the starting balance field, fixes #27
This commit is contained in:
Matyáš Caras 2024-01-29 18:47:01 +01:00
parent 329c06cb01
commit 432e752937
Signed by untrusted user who does not match committer: hernik
GPG key ID: 2A3175F98820C5C6
4 changed files with 19 additions and 4 deletions

View file

@ -7,7 +7,7 @@
"next": "Další", "next": "Další",
"back": "Zpět", "back": "Zpět",
"finish": "Dokončit", "finish": "Dokončit",
"errorEmptyName": "Název nemůže být prázdný!", "errorEmptyName": "Název peněženky nemůže být prázdný!",
"welcome": "Vítejte!", "welcome": "Vítejte!",
"welcomeAboutPrasule": "Prašule je správce výdajů navržený pro lidi, kteří nechtějí vyplňovat každý malý detail.", "welcomeAboutPrasule": "Prašule je správce výdajů navržený pro lidi, kteří nechtějí vyplňovat každý malý detail.",
"welcomeInstruction": "Na této obrazovce si nastavíte svoji 'peněženku', ve které budou zaznamenány vaše výdaje uspořádané do kategorií, které si nastavíte hned potom.", "welcomeInstruction": "Na této obrazovce si nastavíte svoji 'peněženku', ve které budou zaznamenány vaše výdaje uspořádané do kategorií, které si nastavíte hned potom.",

View file

@ -7,7 +7,7 @@
"next": "Next", "next": "Next",
"back": "Back", "back": "Back",
"finish": "Finish", "finish": "Finish",
"errorEmptyName": "Name cannot be empty", "errorEmptyName": "Wallet name cannot be empty",
"welcome": "Welcome!", "welcome": "Welcome!",
"welcomeAboutPrasule": "Prašule is an expense tracker tool designed for people, who don't want to spend too much time filling in all the little details.", "welcomeAboutPrasule": "Prašule is an expense tracker tool designed for people, who don't want to spend too much time filling in all the little details.",
"welcomeInstruction": "On this screen you will set up your 'wallet', in which you will track your expenses categorized under categories, which you can later set in the settings menu.", "welcomeInstruction": "On this screen you will set up your 'wallet', in which you will track your expenses categorized under categories, which you can later set in the settings menu.",

View file

@ -23,6 +23,8 @@ class PlatformField extends PlatformWidget<TextField, CupertinoTextField> {
this.maxLines = 1, this.maxLines = 1,
this.focusNode, this.focusNode,
this.inputBorder = const OutlineInputBorder(), this.inputBorder = const OutlineInputBorder(),
this.suffix,
this.prefix,
}); });
final TextEditingController? controller; final TextEditingController? controller;
final bool? enabled; final bool? enabled;
@ -38,6 +40,8 @@ class PlatformField extends PlatformWidget<TextField, CupertinoTextField> {
final int? maxLines; final int? maxLines;
final InputBorder inputBorder; final InputBorder inputBorder;
final FocusNode? focusNode; final FocusNode? focusNode;
final Widget? suffix;
final Widget? prefix;
@override @override
TextField createAndroidWidget(BuildContext context) => TextField( TextField createAndroidWidget(BuildContext context) => TextField(
@ -48,6 +52,8 @@ class PlatformField extends PlatformWidget<TextField, CupertinoTextField> {
decoration: InputDecoration( decoration: InputDecoration(
labelText: labelText, labelText: labelText,
border: inputBorder, border: inputBorder,
suffix: suffix,
prefix: prefix,
), ),
autocorrect: autocorrect, autocorrect: autocorrect,
keyboardType: keyboardType, keyboardType: keyboardType,
@ -74,5 +80,7 @@ class PlatformField extends PlatformWidget<TextField, CupertinoTextField> {
focusNode: focusNode, focusNode: focusNode,
maxLines: maxLines, maxLines: maxLines,
style: textStyle, style: textStyle,
prefix: prefix,
suffix: suffix,
); );
} }

View file

@ -215,8 +215,10 @@ class _SetupViewState extends State<SetupView> {
SizedBox( SizedBox(
width: MediaQuery.of(context).size.width * 0.7, width: MediaQuery.of(context).size.width * 0.7,
child: PlatformField( child: PlatformField(
labelText: controller: TextEditingController(
AppLocalizations.of(context).setupNamePlaceholder, text:
AppLocalizations.of(context).setupNamePlaceholder,
),
onChanged: (t) { onChanged: (t) {
name = t; name = t;
}, },
@ -249,11 +251,16 @@ class _SetupViewState extends State<SetupView> {
keyboardType: const TextInputType.numberWithOptions( keyboardType: const TextInputType.numberWithOptions(
decimal: true, decimal: true,
), ),
controller: TextEditingController(text: "0.0"),
inputFormatters: [ inputFormatters: [
FilteringTextInputFormatter.allow( FilteringTextInputFormatter.allow(
RegExp(r'\d+[\.,]{0,1}\d{0,}'), RegExp(r'\d+[\.,]{0,1}\d{0,}'),
), ),
], ],
prefix: Padding(
padding: const EdgeInsets.only(right: 4),
child: Text(_selectedCurrency.symbol),
),
onChanged: (t) { onChanged: (t) {
final b = double.tryParse(t); final b = double.tryParse(t);
if (b == null) return; if (b == null) return;