diff --git a/apps/mobile/packages/data_connect/lib/src/connectors/billing/data/repositories/billing_connector_repository_impl.dart b/apps/mobile/packages/data_connect/lib/src/connectors/billing/data/repositories/billing_connector_repository_impl.dart index 523b7f16..ceca37da 100644 --- a/apps/mobile/packages/data_connect/lib/src/connectors/billing/data/repositories/billing_connector_repository_impl.dart +++ b/apps/mobile/packages/data_connect/lib/src/connectors/billing/data/repositories/billing_connector_repository_impl.dart @@ -1,5 +1,4 @@ -// ignore_for_file: always_specify_types, depend_on_referenced_packages, dead_code, dead_null_aware_expression, unused_local_variable, unused_import, sort_constructors_first, prefer_final_fields, prefer_const_constructors, deprecated_member_use, implicit_call_tearoffs -import 'package:firebase_data_connect/src/core/ref.dart'; +import 'package:firebase_data_connect/firebase_data_connect.dart'; import 'package:krow_data_connect/krow_data_connect.dart' as dc; import 'package:krow_domain/krow_domain.dart'; import '../../domain/repositories/billing_connector_repository.dart'; @@ -131,7 +130,9 @@ class BillingConnectorRepositoryImpl implements BillingConnectorRepository { final List shiftRoles = result.data.shiftRoles; - if (shiftRoles.isEmpty) return []; + if (shiftRoles.isEmpty) { + return []; + } final Map summary = {}; for (final dc.ListShiftRolesByBusinessAndDatesSummaryShiftRoles role @@ -272,16 +273,17 @@ class BillingConnectorRepositoryImpl implements BillingConnectorRepository { int breakMin = 0; final String? breakType = app.shiftRole?.breakType?.toString(); if (breakType != null) { - if (breakType.contains('10')) + if (breakType.contains('10')) { breakMin = 10; - else if (breakType.contains('15')) + } else if (breakType.contains('15')) { breakMin = 15; - else if (breakType.contains('30')) + } else if (breakType.contains('30')) { breakMin = 30; - else if (breakType.contains('45')) + } else if (breakType.contains('45')) { breakMin = 45; - else if (breakType.contains('60')) + } else if (breakType.contains('60')) { breakMin = 60; + } } return InvoiceWorker( @@ -324,9 +326,11 @@ class BillingConnectorRepositoryImpl implements BillingConnectorRepository { } double _calculateTotalHours(List roles) { - return roles.fold(0.0, (sum, role) { - final hours = role['hours'] ?? role['workHours'] ?? role['totalHours']; - if (hours is num) return sum + hours.toDouble(); + return roles.fold(0.0, (double sum, dynamic role) { + final dynamic hours = role['hours'] ?? role['workHours'] ?? role['totalHours']; + if (hours is num) { + return sum + hours.toDouble(); + } return sum; }); } diff --git a/apps/mobile/packages/features/staff/authentication/lib/src/presentation/widgets/phone_verification_page/otp_verification/otp_input_field.dart b/apps/mobile/packages/features/staff/authentication/lib/src/presentation/widgets/phone_verification_page/otp_verification/otp_input_field.dart index 4bbf3cc1..d6f85fe5 100644 --- a/apps/mobile/packages/features/staff/authentication/lib/src/presentation/widgets/phone_verification_page/otp_verification/otp_input_field.dart +++ b/apps/mobile/packages/features/staff/authentication/lib/src/presentation/widgets/phone_verification_page/otp_verification/otp_input_field.dart @@ -1,4 +1,3 @@ -// ignore_for_file: always_specify_types, depend_on_referenced_packages, dead_code, dead_null_aware_expression, unused_local_variable, unused_import, sort_constructors_first, prefer_final_fields, prefer_const_constructors, deprecated_member_use, implicit_call_tearoffs, implementation_imports import 'package:design_system/design_system.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -30,27 +29,24 @@ class OtpInputField extends StatefulWidget { } class _OtpInputFieldState extends State { - final List _controllers = List.generate( + final List _controllers = List.generate( 6, - (_) => TextEditingController(), + (int _) => TextEditingController(), ); - final List _focusNodes = List.generate(6, (_) => FocusNode()); + final List _focusNodes = List.generate(6, (int _) => FocusNode()); /// Hidden field for E2E: Maestro inputText sends full OTP in one call; /// the 6 visible boxes have maxLength:1 and would truncate. - late final TextEditingController _hiddenController; late final FocusNode _hiddenFocusNode; @override void initState() { super.initState(); - _hiddenController = TextEditingController(); _hiddenFocusNode = FocusNode(); } @override void dispose() { - _hiddenController.dispose(); _hiddenFocusNode.dispose(); for (final TextEditingController controller in _controllers) { controller.dispose(); @@ -111,7 +107,7 @@ class _OtpInputFieldState extends State { children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: List.generate(6, (int index) { + children: List.generate(6, (int index) { final TextField field = TextField( controller: _controllers[index], focusNode: _focusNodes[index], @@ -157,7 +153,6 @@ class _OtpInputFieldState extends State { child: Opacity( opacity: 0.01, child: TextField( - controller: _hiddenController, focusNode: _hiddenFocusNode, keyboardType: TextInputType.number, inputFormatters: [