mac desktop keyboard type crash fix

This commit is contained in:
julian 2022-12-30 11:36:00 -06:00
parent 46df689826
commit 1691ff8402
6 changed files with 44 additions and 28 deletions

View file

@ -409,8 +409,9 @@ class _GenerateUriQrCodeViewState extends State<GenerateUriQrCodeView> {
height: 1.8, height: 1.8,
) )
: STextStyles.field(context), : STextStyles.field(context),
keyboardType: keyboardType: Util.isDesktop
const TextInputType.numberWithOptions(decimal: true), ? null
: const TextInputType.numberWithOptions(decimal: true),
onChanged: (_) => setState(() {}), onChanged: (_) => setState(() {}),
decoration: standardInputDecoration( decoration: standardInputDecoration(
"Amount", "Amount",

View file

@ -1111,10 +1111,12 @@ class _SendViewState extends ConsumerState<SendView> {
const Key("amountInputFieldCryptoTextFieldKey"), const Key("amountInputFieldCryptoTextFieldKey"),
controller: cryptoAmountController, controller: cryptoAmountController,
focusNode: _cryptoFocus, focusNode: _cryptoFocus,
keyboardType: const TextInputType.numberWithOptions( keyboardType: Util.isDesktop
signed: false, ? null
decimal: true, : const TextInputType.numberWithOptions(
), signed: false,
decimal: true,
),
textAlign: TextAlign.right, textAlign: TextAlign.right,
inputFormatters: [ inputFormatters: [
// regex to validate a crypto amount with 8 decimal places // regex to validate a crypto amount with 8 decimal places
@ -1168,11 +1170,12 @@ class _SendViewState extends ConsumerState<SendView> {
const Key("amountInputFieldFiatTextFieldKey"), const Key("amountInputFieldFiatTextFieldKey"),
controller: baseAmountController, controller: baseAmountController,
focusNode: _baseFocus, focusNode: _baseFocus,
keyboardType: keyboardType: Util.isDesktop
const TextInputType.numberWithOptions( ? null
signed: false, : const TextInputType.numberWithOptions(
decimal: true, signed: false,
), decimal: true,
),
textAlign: TextAlign.right, textAlign: TextAlign.right,
inputFormatters: [ inputFormatters: [
// regex to validate a fiat amount with 2 decimal places // regex to validate a fiat amount with 2 decimal places

View file

@ -391,7 +391,8 @@ class _EpiBoxInfoFormState extends ConsumerState<EpicBoxInfoForm> {
enableSuggestions: Util.isDesktop ? false : true, enableSuggestions: Util.isDesktop ? false : true,
controller: portController, controller: portController,
decoration: const InputDecoration(hintText: "Port"), decoration: const InputDecoration(hintText: "Port"),
keyboardType: const TextInputType.numberWithOptions(), keyboardType:
Util.isDesktop ? null : const TextInputType.numberWithOptions(),
), ),
const SizedBox( const SizedBox(
height: 8, height: 8,

View file

@ -739,10 +739,12 @@ class _TransactionSearchViewState
controller: _amountTextEditingController, controller: _amountTextEditingController,
focusNode: amountTextFieldFocusNode, focusNode: amountTextFieldFocusNode,
onChanged: (_) => setState(() {}), onChanged: (_) => setState(() {}),
keyboardType: const TextInputType.numberWithOptions( keyboardType: Util.isDesktop
signed: false, ? null
decimal: true, : const TextInputType.numberWithOptions(
), signed: false,
decimal: true,
),
inputFormatters: [ inputFormatters: [
// regex to validate a crypto amount with 8 decimal places // regex to validate a crypto amount with 8 decimal places
TextInputFormatter.withFunction((oldValue, newValue) => TextInputFormatter.withFunction((oldValue, newValue) =>

View file

@ -1002,10 +1002,12 @@ class _DesktopSendState extends ConsumerState<DesktopSend> {
key: const Key("amountInputFieldCryptoTextFieldKey"), key: const Key("amountInputFieldCryptoTextFieldKey"),
controller: cryptoAmountController, controller: cryptoAmountController,
focusNode: _cryptoFocus, focusNode: _cryptoFocus,
keyboardType: const TextInputType.numberWithOptions( keyboardType: Util.isDesktop
signed: false, ? null
decimal: true, : const TextInputType.numberWithOptions(
), signed: false,
decimal: true,
),
textAlign: TextAlign.right, textAlign: TextAlign.right,
inputFormatters: [ inputFormatters: [
// regex to validate a crypto amount with 8 decimal places // regex to validate a crypto amount with 8 decimal places
@ -1056,10 +1058,12 @@ class _DesktopSendState extends ConsumerState<DesktopSend> {
key: const Key("amountInputFieldFiatTextFieldKey"), key: const Key("amountInputFieldFiatTextFieldKey"),
controller: baseAmountController, controller: baseAmountController,
focusNode: _baseFocus, focusNode: _baseFocus,
keyboardType: const TextInputType.numberWithOptions( keyboardType: Util.isDesktop
signed: false, ? null
decimal: true, : const TextInputType.numberWithOptions(
), signed: false,
decimal: true,
),
textAlign: TextAlign.right, textAlign: TextAlign.right,
inputFormatters: [ inputFormatters: [
// regex to validate a fiat amount with 2 decimal places // regex to validate a fiat amount with 2 decimal places

View file

@ -4,6 +4,7 @@ import 'package:flutter_svg/svg.dart';
import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/assets.dart';
import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/text_styles.dart';
import 'package:stackwallet/utilities/theme/stack_colors.dart'; import 'package:stackwallet/utilities/theme/stack_colors.dart';
import 'package:stackwallet/utilities/util.dart';
import 'package:stackwallet/widgets/loading_indicator.dart'; import 'package:stackwallet/widgets/loading_indicator.dart';
class ExchangeTextField extends StatefulWidget { class ExchangeTextField extends StatefulWidget {
@ -62,6 +63,8 @@ class _ExchangeTextFieldState extends State<ExchangeTextField> {
late final void Function(String)? onChanged; late final void Function(String)? onChanged;
late final void Function(String)? onSubmitted; late final void Function(String)? onSubmitted;
final isDesktop = Util.isDesktop;
@override @override
void initState() { void initState() {
borderRadius = widget.borderRadius; borderRadius = widget.borderRadius;
@ -100,10 +103,12 @@ class _ExchangeTextFieldState extends State<ExchangeTextField> {
enableSuggestions: false, enableSuggestions: false,
autocorrect: false, autocorrect: false,
readOnly: widget.readOnly, readOnly: widget.readOnly,
keyboardType: const TextInputType.numberWithOptions( keyboardType: isDesktop
signed: false, ? null
decimal: true, : const TextInputType.numberWithOptions(
), signed: false,
decimal: true,
),
decoration: InputDecoration( decoration: InputDecoration(
contentPadding: const EdgeInsets.only( contentPadding: const EdgeInsets.only(
top: 12, top: 12,