diff --git a/lib/data/models/company_model.dart b/lib/data/models/company_model.dart index 228d909f8..73011ce49 100644 --- a/lib/data/models/company_model.dart +++ b/lib/data/models/company_model.dart @@ -269,7 +269,6 @@ abstract class CompanyEntity @BuiltValueField(wireName: 'has_custom_design3') bool get hasCustomDesign3; - //@BuiltValueField(wireName: 'custom_messages') //@BuiltValueField(wireName: 'invoice_labels') @@ -341,7 +340,8 @@ abstract class CompanyEntity companyCurrencyId > 0 ? companyCurrencyId : kDefaultCurrencyId; // Handle bug in earlier version of API - int get firstMonthOfYear => financialYearStart == 2000 ? 1 : financialYearStart; + int get firstMonthOfYear => + financialYearStart == 2000 ? 1 : financialYearStart; static Serializer get serializer => _$companyEntitySerializer; } diff --git a/lib/data/models/invoice_model.dart b/lib/data/models/invoice_model.dart index 34ae4fdd8..b930e4dc8 100644 --- a/lib/data/models/invoice_model.dart +++ b/lib/data/models/invoice_model.dart @@ -441,7 +441,6 @@ abstract class InvoiceEntity extends Object } InvoiceEntity applyTax(TaxRateEntity taxRate, {bool isSecond = false}) { - InvoiceEntity invoice; if (isSecond) { diff --git a/lib/data/models/mixins/invoice_mixin.dart b/lib/data/models/mixins/invoice_mixin.dart index 49d4f0386..0baac8259 100644 --- a/lib/data/models/mixins/invoice_mixin.dart +++ b/lib/data/models/mixins/invoice_mixin.dart @@ -15,7 +15,8 @@ abstract class CalculateInvoiceTotal { bool get customTaxes2; BuiltList get invoiceItems; - double _calculateTaxAmount(double amount, double rate, bool useInclusiveTaxes) { + double _calculateTaxAmount( + double amount, double rate, bool useInclusiveTaxes) { double taxAmount; if (useInclusiveTaxes) { taxAmount = amount - (amount / (1 + (rate / 100))); @@ -57,11 +58,13 @@ abstract class CalculateInvoiceTotal { if (taxRate1 != 0) { taxAmount = _calculateTaxAmount(lineTotal, taxRate1, useInclusiveTaxes); - map.update(item.taxName1, (value) => value + taxAmount, ifAbsent: () => taxAmount); + map.update(item.taxName1, (value) => value + taxAmount, + ifAbsent: () => taxAmount); } if (taxRate2 != 0) { taxAmount = _calculateTaxAmount(lineTotal, taxRate2, useInclusiveTaxes); - map.update(item.taxName2, (value) => value + taxAmount, ifAbsent: () => taxAmount); + map.update(item.taxName2, (value) => value + taxAmount, + ifAbsent: () => taxAmount); } }); @@ -81,15 +84,16 @@ abstract class CalculateInvoiceTotal { total += round(customValue2, 2); } - if (taxRate1 != 0) { taxAmount = _calculateTaxAmount(total, taxRate1, useInclusiveTaxes); - map.update(taxName1, (value) => value + taxAmount, ifAbsent: () => taxAmount); + map.update(taxName1, (value) => value + taxAmount, + ifAbsent: () => taxAmount); } if (taxRate2 != 0) { taxAmount = _calculateTaxAmount(total, taxRate2, useInclusiveTaxes); - map.update(taxName2, (value) => value + taxAmount, ifAbsent: () => taxAmount); + map.update(taxName2, (value) => value + taxAmount, + ifAbsent: () => taxAmount); } return map; @@ -147,18 +151,18 @@ abstract class CalculateInvoiceTotal { total += round(customValue2, 2); } - if (! useInclusiveTaxes) { + if (!useInclusiveTaxes) { final double taxAmount1 = round(total * taxRate1 / 100, 2); final double taxAmount2 = round(total * taxRate2 / 100, 2); total += itemTax + taxAmount1 + taxAmount2; } - if (customValue1 != 0.0 && ! customTaxes1) { + if (customValue1 != 0.0 && !customTaxes1) { total += round(customValue1, 2); } - if (customValue2 != 0.0 && ! customTaxes2) { + if (customValue2 != 0.0 && !customTaxes2) { total += round(customValue2, 2); } @@ -189,4 +193,3 @@ abstract class CalculateInvoiceTotal { return total; } } - diff --git a/lib/data/models/models.dart b/lib/data/models/models.dart index 617286404..7cfeee592 100644 --- a/lib/data/models/models.dart +++ b/lib/data/models/models.dart @@ -30,7 +30,6 @@ export 'package:invoiceninja_flutter/data/models/static/frequency_model.dart'; part 'models.g.dart'; class EntityAction extends EnumClass { - const EntityAction._(String name) : super(name); static Serializer get serializer => _$entityActionSerializer; @@ -59,4 +58,3 @@ class EntityAction extends EnumClass { static BuiltSet get values => _$values; static EntityAction valueOf(String name) => _$valueOf(name); } - diff --git a/lib/data/models/product_model.dart b/lib/data/models/product_model.dart index f6dc3ba5b..c197c474c 100644 --- a/lib/data/models/product_model.dart +++ b/lib/data/models/product_model.dart @@ -180,7 +180,8 @@ abstract class ProductEntity extends Object return null; } - List getEntityActions({UserEntity user, bool includeEdit = false}) { + List getEntityActions( + {UserEntity user, bool includeEdit = false}) { final actions = []; if (includeEdit && user.canEditEntity(this)) { diff --git a/lib/data/models/serializers.dart b/lib/data/models/serializers.dart index dd4a48ceb..07a5a901e 100644 --- a/lib/data/models/serializers.dart +++ b/lib/data/models/serializers.dart @@ -78,7 +78,7 @@ part 'serializers.g.dart'; TimezoneItemResponse, TimezoneListResponse, // STARTER: serializers - do not remove comment -VendorEntity, + VendorEntity, TaskEntity, ProjectEntity, diff --git a/lib/data/models/static/country_model.dart b/lib/data/models/static/country_model.dart index 0a2ee6898..eecd0bbcd 100644 --- a/lib/data/models/static/country_model.dart +++ b/lib/data/models/static/country_model.dart @@ -5,24 +5,28 @@ import 'package:invoiceninja_flutter/data/models/entities.dart'; part 'country_model.g.dart'; -abstract class CountryListResponse implements Built { - - factory CountryListResponse([void updates(CountryListResponseBuilder b)]) = _$CountryListResponse; +abstract class CountryListResponse + implements Built { + factory CountryListResponse([void updates(CountryListResponseBuilder b)]) = + _$CountryListResponse; CountryListResponse._(); BuiltList get data; - static Serializer get serializer => _$countryListResponseSerializer; + static Serializer get serializer => + _$countryListResponseSerializer; } -abstract class CountryItemResponse implements Built { - - factory CountryItemResponse([void updates(CountryItemResponseBuilder b)]) = _$CountryItemResponse; +abstract class CountryItemResponse + implements Built { + factory CountryItemResponse([void updates(CountryItemResponseBuilder b)]) = + _$CountryItemResponse; CountryItemResponse._(); CountryEntity get data; - static Serializer get serializer => _$countryItemResponseSerializer; + static Serializer get serializer => + _$countryItemResponseSerializer; } class CountryFields { @@ -46,9 +50,9 @@ class CountryFields { */ } - -abstract class CountryEntity extends Object with SelectableEntity implements Built { - +abstract class CountryEntity extends Object + with SelectableEntity + implements Built { factory CountryEntity() { return _$CountryEntity._( id: 0, @@ -87,7 +91,6 @@ abstract class CountryEntity extends Object with SelectableEntity implements Bui @BuiltValueField(wireName: 'iso_3166_3') String get iso3; - /* factory CountryEntity() { return _$CountryEntity._( @@ -186,4 +189,3 @@ abstract class CountryEntity extends Object with SelectableEntity implements Bui static Serializer get serializer => _$countryEntitySerializer; } - diff --git a/lib/data/models/static/currency_model.dart b/lib/data/models/static/currency_model.dart index 99620a283..a0e40500f 100644 --- a/lib/data/models/static/currency_model.dart +++ b/lib/data/models/static/currency_model.dart @@ -5,24 +5,28 @@ import 'package:invoiceninja_flutter/data/models/entities.dart'; part 'currency_model.g.dart'; -abstract class CurrencyListResponse implements Built { - - factory CurrencyListResponse([void updates(CurrencyListResponseBuilder b)]) = _$CurrencyListResponse; +abstract class CurrencyListResponse + implements Built { + factory CurrencyListResponse([void updates(CurrencyListResponseBuilder b)]) = + _$CurrencyListResponse; CurrencyListResponse._(); BuiltList get data; - static Serializer get serializer => _$currencyListResponseSerializer; + static Serializer get serializer => + _$currencyListResponseSerializer; } -abstract class CurrencyItemResponse implements Built { - - factory CurrencyItemResponse([void updates(CurrencyItemResponseBuilder b)]) = _$CurrencyItemResponse; +abstract class CurrencyItemResponse + implements Built { + factory CurrencyItemResponse([void updates(CurrencyItemResponseBuilder b)]) = + _$CurrencyItemResponse; CurrencyItemResponse._(); CurrencyEntity get data; - static Serializer get serializer => _$currencyItemResponseSerializer; + static Serializer get serializer => + _$currencyItemResponseSerializer; } class CurrencyFields { @@ -36,8 +40,9 @@ class CurrencyFields { static const String exchangeRate = 'exchangeRate'; } -abstract class CurrencyEntity extends Object with SelectableEntity implements Built { - +abstract class CurrencyEntity extends Object + with SelectableEntity + implements Built { factory CurrencyEntity() { return _$CurrencyEntity._( id: 0, @@ -115,5 +120,6 @@ abstract class CurrencyEntity extends Object with SelectableEntity implements Bu @override double get listDisplayAmount => null; - static Serializer get serializer => _$currencyEntitySerializer; -} \ No newline at end of file + static Serializer get serializer => + _$currencyEntitySerializer; +} diff --git a/lib/data/models/static/date_format_model.dart b/lib/data/models/static/date_format_model.dart index 444236892..5aadb5281 100644 --- a/lib/data/models/static/date_format_model.dart +++ b/lib/data/models/static/date_format_model.dart @@ -4,24 +4,30 @@ import 'package:built_value/serializer.dart'; part 'date_format_model.g.dart'; -abstract class DateFormatListResponse implements Built { - - factory DateFormatListResponse([void updates(DateFormatListResponseBuilder b)]) = _$DateFormatListResponse; +abstract class DateFormatListResponse + implements Built { + factory DateFormatListResponse( + [void updates(DateFormatListResponseBuilder b)]) = + _$DateFormatListResponse; DateFormatListResponse._(); BuiltList get data; - static Serializer get serializer => _$dateFormatListResponseSerializer; + static Serializer get serializer => + _$dateFormatListResponseSerializer; } -abstract class DateFormatItemResponse implements Built { - - factory DateFormatItemResponse([void updates(DateFormatItemResponseBuilder b)]) = _$DateFormatItemResponse; +abstract class DateFormatItemResponse + implements Built { + factory DateFormatItemResponse( + [void updates(DateFormatItemResponseBuilder b)]) = + _$DateFormatItemResponse; DateFormatItemResponse._(); DateFormatEntity get data; - static Serializer get serializer => _$dateFormatItemResponseSerializer; + static Serializer get serializer => + _$dateFormatItemResponseSerializer; } class DateFormatFields { @@ -30,8 +36,8 @@ class DateFormatFields { static const String formatMoment = 'formatMoment'; } -abstract class DateFormatEntity implements Built { - +abstract class DateFormatEntity + implements Built { factory DateFormatEntity() { return _$DateFormatEntity._( id: 0, @@ -45,5 +51,6 @@ abstract class DateFormatEntity implements Built get serializer => _$dateFormatEntitySerializer; -} \ No newline at end of file + static Serializer get serializer => + _$dateFormatEntitySerializer; +} diff --git a/lib/data/models/static/datetime_format_model.dart b/lib/data/models/static/datetime_format_model.dart index 373d249e4..b5e8209c6 100644 --- a/lib/data/models/static/datetime_format_model.dart +++ b/lib/data/models/static/datetime_format_model.dart @@ -4,24 +4,32 @@ import 'package:built_value/serializer.dart'; part 'datetime_format_model.g.dart'; -abstract class DatetimeFormatListResponse implements Built { - - factory DatetimeFormatListResponse([void updates(DatetimeFormatListResponseBuilder b)]) = _$DatetimeFormatListResponse; +abstract class DatetimeFormatListResponse + implements + Built { + factory DatetimeFormatListResponse( + [void updates(DatetimeFormatListResponseBuilder b)]) = + _$DatetimeFormatListResponse; DatetimeFormatListResponse._(); BuiltList get data; - static Serializer get serializer => _$datetimeFormatListResponseSerializer; + static Serializer get serializer => + _$datetimeFormatListResponseSerializer; } -abstract class DatetimeFormatItemResponse implements Built { - - factory DatetimeFormatItemResponse([void updates(DatetimeFormatItemResponseBuilder b)]) = _$DatetimeFormatItemResponse; +abstract class DatetimeFormatItemResponse + implements + Built { + factory DatetimeFormatItemResponse( + [void updates(DatetimeFormatItemResponseBuilder b)]) = + _$DatetimeFormatItemResponse; DatetimeFormatItemResponse._(); DatetimeFormatEntity get data; - static Serializer get serializer => _$datetimeFormatItemResponseSerializer; + static Serializer get serializer => + _$datetimeFormatItemResponseSerializer; } class DatetimeFormatFields { @@ -29,8 +37,8 @@ class DatetimeFormatFields { static const String formatMoment = 'formatMoment'; } -abstract class DatetimeFormatEntity implements Built { - +abstract class DatetimeFormatEntity + implements Built { factory DatetimeFormatEntity() { return _$DatetimeFormatEntity._( id: 0, @@ -44,5 +52,6 @@ abstract class DatetimeFormatEntity implements Built get serializer => _$datetimeFormatEntitySerializer; -} \ No newline at end of file + static Serializer get serializer => + _$datetimeFormatEntitySerializer; +} diff --git a/lib/data/models/static/frequency_model.dart b/lib/data/models/static/frequency_model.dart index aeb724f3d..38bbce865 100644 --- a/lib/data/models/static/frequency_model.dart +++ b/lib/data/models/static/frequency_model.dart @@ -4,35 +4,37 @@ import 'package:built_value/serializer.dart'; part 'frequency_model.g.dart'; -abstract class FrequencyListResponse implements Built { - - factory FrequencyListResponse([void updates(FrequencyListResponseBuilder b)]) = _$FrequencyListResponse; +abstract class FrequencyListResponse + implements Built { + factory FrequencyListResponse( + [void updates(FrequencyListResponseBuilder b)]) = _$FrequencyListResponse; FrequencyListResponse._(); BuiltList get data; - static Serializer get serializer => _$frequencyListResponseSerializer; + static Serializer get serializer => + _$frequencyListResponseSerializer; } -abstract class FrequencyItemResponse implements Built { - - factory FrequencyItemResponse([void updates(FrequencyItemResponseBuilder b)]) = _$FrequencyItemResponse; +abstract class FrequencyItemResponse + implements Built { + factory FrequencyItemResponse( + [void updates(FrequencyItemResponseBuilder b)]) = _$FrequencyItemResponse; FrequencyItemResponse._(); FrequencyEntity get data; - static Serializer get serializer => _$frequencyItemResponseSerializer; + static Serializer get serializer => + _$frequencyItemResponseSerializer; } class FrequencyFields { static const String name = 'name'; static const String dateInterval = 'dateInterval'; - } - -abstract class FrequencyEntity implements Built { - +abstract class FrequencyEntity + implements Built { factory FrequencyEntity() { return _$FrequencyEntity._( id: 0, @@ -47,6 +49,6 @@ abstract class FrequencyEntity implements Built get serializer => _$frequencyEntitySerializer; + static Serializer get serializer => + _$frequencyEntitySerializer; } - diff --git a/lib/data/models/static/industry_model.dart b/lib/data/models/static/industry_model.dart index 41251a68a..24f46f4cb 100644 --- a/lib/data/models/static/industry_model.dart +++ b/lib/data/models/static/industry_model.dart @@ -5,32 +5,37 @@ import 'package:invoiceninja_flutter/data/models/entities.dart'; part 'industry_model.g.dart'; -abstract class IndustryListResponse implements Built { - - factory IndustryListResponse([void updates(IndustryListResponseBuilder b)]) = _$IndustryListResponse; +abstract class IndustryListResponse + implements Built { + factory IndustryListResponse([void updates(IndustryListResponseBuilder b)]) = + _$IndustryListResponse; IndustryListResponse._(); BuiltList get data; - static Serializer get serializer => _$industryListResponseSerializer; + static Serializer get serializer => + _$industryListResponseSerializer; } -abstract class IndustryItemResponse implements Built { - - factory IndustryItemResponse([void updates(IndustryItemResponseBuilder b)]) = _$IndustryItemResponse; +abstract class IndustryItemResponse + implements Built { + factory IndustryItemResponse([void updates(IndustryItemResponseBuilder b)]) = + _$IndustryItemResponse; IndustryItemResponse._(); IndustryEntity get data; - static Serializer get serializer => _$industryItemResponseSerializer; + static Serializer get serializer => + _$industryItemResponseSerializer; } class IndustryFields { static const String name = 'name'; } -abstract class IndustryEntity extends Object with SelectableEntity implements Built { - +abstract class IndustryEntity extends Object + with SelectableEntity + implements Built { factory IndustryEntity() { return _$IndustryEntity._( id: 0, @@ -75,5 +80,6 @@ abstract class IndustryEntity extends Object with SelectableEntity implements Bu @override double get listDisplayAmount => null; - static Serializer get serializer => _$industryEntitySerializer; -} \ No newline at end of file + static Serializer get serializer => + _$industryEntitySerializer; +} diff --git a/lib/data/models/static/invoice_design_model.dart b/lib/data/models/static/invoice_design_model.dart index ccad61cf1..487e0a8f1 100644 --- a/lib/data/models/static/invoice_design_model.dart +++ b/lib/data/models/static/invoice_design_model.dart @@ -4,35 +4,42 @@ import 'package:built_value/serializer.dart'; part 'invoice_design_model.g.dart'; -abstract class InvoiceDesignListResponse implements Built { - - factory InvoiceDesignListResponse([void updates(InvoiceDesignListResponseBuilder b)]) = _$InvoiceDesignListResponse; +abstract class InvoiceDesignListResponse + implements + Built { + factory InvoiceDesignListResponse( + [void updates(InvoiceDesignListResponseBuilder b)]) = + _$InvoiceDesignListResponse; InvoiceDesignListResponse._(); BuiltList get data; - static Serializer get serializer => _$invoiceDesignListResponseSerializer; + static Serializer get serializer => + _$invoiceDesignListResponseSerializer; } -abstract class InvoiceDesignItemResponse implements Built { - - factory InvoiceDesignItemResponse([void updates(InvoiceDesignItemResponseBuilder b)]) = _$InvoiceDesignItemResponse; +abstract class InvoiceDesignItemResponse + implements + Built { + factory InvoiceDesignItemResponse( + [void updates(InvoiceDesignItemResponseBuilder b)]) = + _$InvoiceDesignItemResponse; InvoiceDesignItemResponse._(); InvoiceDesignEntity get data; - static Serializer get serializer => _$invoiceDesignItemResponseSerializer; + static Serializer get serializer => + _$invoiceDesignItemResponseSerializer; } class InvoiceDesignFields { static const String name = 'name'; static const String javascript = 'javascript'; static const String pdfmake = 'pdfmake'; - } -abstract class InvoiceDesignEntity implements Built { - +abstract class InvoiceDesignEntity + implements Built { factory InvoiceDesignEntity() { return _$InvoiceDesignEntity._( id: 0, @@ -43,12 +50,11 @@ abstract class InvoiceDesignEntity implements Built get serializer => _$invoiceDesignEntitySerializer; -} + static Serializer get serializer => + _$invoiceDesignEntitySerializer; +} diff --git a/lib/data/models/static/invoice_status_model.dart b/lib/data/models/static/invoice_status_model.dart index 5fa255c4e..7b4a470d0 100644 --- a/lib/data/models/static/invoice_status_model.dart +++ b/lib/data/models/static/invoice_status_model.dart @@ -5,35 +5,41 @@ import 'package:invoiceninja_flutter/data/models/entities.dart'; part 'invoice_status_model.g.dart'; -abstract class InvoiceStatusListResponse implements Built { - - factory InvoiceStatusListResponse([void updates(InvoiceStatusListResponseBuilder b)]) = _$InvoiceStatusListResponse; +abstract class InvoiceStatusListResponse + implements + Built { + factory InvoiceStatusListResponse( + [void updates(InvoiceStatusListResponseBuilder b)]) = + _$InvoiceStatusListResponse; InvoiceStatusListResponse._(); BuiltList get data; - static Serializer get serializer => _$invoiceStatusListResponseSerializer; + static Serializer get serializer => + _$invoiceStatusListResponseSerializer; } -abstract class InvoiceStatusItemResponse implements Built { - - factory InvoiceStatusItemResponse([void updates(InvoiceStatusItemResponseBuilder b)]) = _$InvoiceStatusItemResponse; +abstract class InvoiceStatusItemResponse + implements + Built { + factory InvoiceStatusItemResponse( + [void updates(InvoiceStatusItemResponseBuilder b)]) = + _$InvoiceStatusItemResponse; InvoiceStatusItemResponse._(); InvoiceStatusEntity get data; - static Serializer get serializer => _$invoiceStatusItemResponseSerializer; + static Serializer get serializer => + _$invoiceStatusItemResponseSerializer; } class InvoiceStatusFields { static const String name = 'name'; - } abstract class InvoiceStatusEntity extends Object with EntityStatus implements Built { - factory InvoiceStatusEntity() { return _$InvoiceStatusEntity._( id: 0, @@ -46,4 +52,3 @@ abstract class InvoiceStatusEntity extends Object static Serializer get serializer => _$invoiceStatusEntitySerializer; } - diff --git a/lib/data/models/static/language_model.dart b/lib/data/models/static/language_model.dart index 4e7f1b226..762abe883 100644 --- a/lib/data/models/static/language_model.dart +++ b/lib/data/models/static/language_model.dart @@ -5,34 +5,38 @@ import 'package:invoiceninja_flutter/data/models/entities.dart'; part 'language_model.g.dart'; -abstract class LanguageListResponse implements Built { - - factory LanguageListResponse([void updates(LanguageListResponseBuilder b)]) = _$LanguageListResponse; +abstract class LanguageListResponse + implements Built { + factory LanguageListResponse([void updates(LanguageListResponseBuilder b)]) = + _$LanguageListResponse; LanguageListResponse._(); BuiltList get data; - static Serializer get serializer => _$languageListResponseSerializer; + static Serializer get serializer => + _$languageListResponseSerializer; } -abstract class LanguageItemResponse implements Built { - - factory LanguageItemResponse([void updates(LanguageItemResponseBuilder b)]) = _$LanguageItemResponse; +abstract class LanguageItemResponse + implements Built { + factory LanguageItemResponse([void updates(LanguageItemResponseBuilder b)]) = + _$LanguageItemResponse; LanguageItemResponse._(); LanguageEntity get data; - static Serializer get serializer => _$languageItemResponseSerializer; + static Serializer get serializer => + _$languageItemResponseSerializer; } class LanguageFields { static const String name = 'name'; static const String locale = 'locale'; - } -abstract class LanguageEntity extends Object with SelectableEntity implements Built { - +abstract class LanguageEntity extends Object + with SelectableEntity + implements Built { factory LanguageEntity() { return _$LanguageEntity._( id: 0, @@ -83,6 +87,6 @@ abstract class LanguageEntity extends Object with SelectableEntity implements Bu @override double get listDisplayAmount => null; - static Serializer get serializer => _$languageEntitySerializer; + static Serializer get serializer => + _$languageEntitySerializer; } - diff --git a/lib/data/models/static/payment_type_model.dart b/lib/data/models/static/payment_type_model.dart index 4ad33bd97..1ce98176f 100644 --- a/lib/data/models/static/payment_type_model.dart +++ b/lib/data/models/static/payment_type_model.dart @@ -5,34 +5,40 @@ import 'package:invoiceninja_flutter/data/models/entities.dart'; part 'payment_type_model.g.dart'; -abstract class PaymentTypeListResponse implements Built { - - factory PaymentTypeListResponse([void updates(PaymentTypeListResponseBuilder b)]) = _$PaymentTypeListResponse; +abstract class PaymentTypeListResponse + implements Built { + factory PaymentTypeListResponse( + [void updates(PaymentTypeListResponseBuilder b)]) = + _$PaymentTypeListResponse; PaymentTypeListResponse._(); BuiltList get data; - static Serializer get serializer => _$paymentTypeListResponseSerializer; + static Serializer get serializer => + _$paymentTypeListResponseSerializer; } -abstract class PaymentTypeItemResponse implements Built { - - factory PaymentTypeItemResponse([void updates(PaymentTypeItemResponseBuilder b)]) = _$PaymentTypeItemResponse; +abstract class PaymentTypeItemResponse + implements Built { + factory PaymentTypeItemResponse( + [void updates(PaymentTypeItemResponseBuilder b)]) = + _$PaymentTypeItemResponse; PaymentTypeItemResponse._(); PaymentTypeEntity get data; - static Serializer get serializer => _$paymentTypeItemResponseSerializer; + static Serializer get serializer => + _$paymentTypeItemResponseSerializer; } class PaymentTypeFields { static const String name = 'name'; static const String gatewayTypeId = 'gatewayTypeId'; - } -abstract class PaymentTypeEntity extends Object with SelectableEntity implements Built { - +abstract class PaymentTypeEntity extends Object + with SelectableEntity + implements Built { factory PaymentTypeEntity() { return _$PaymentTypeEntity._( id: 0, @@ -75,6 +81,6 @@ abstract class PaymentTypeEntity extends Object with SelectableEntity implements @override double get listDisplayAmount => null; - static Serializer get serializer => _$paymentTypeEntitySerializer; + static Serializer get serializer => + _$paymentTypeEntitySerializer; } - diff --git a/lib/data/models/static/size_model.dart b/lib/data/models/static/size_model.dart index 765ebe52d..17a3ac2c5 100644 --- a/lib/data/models/static/size_model.dart +++ b/lib/data/models/static/size_model.dart @@ -5,32 +5,37 @@ import 'package:invoiceninja_flutter/data/models/entities.dart'; part 'size_model.g.dart'; -abstract class SizeListResponse implements Built { - - factory SizeListResponse([void updates(SizeListResponseBuilder b)]) = _$SizeListResponse; +abstract class SizeListResponse + implements Built { + factory SizeListResponse([void updates(SizeListResponseBuilder b)]) = + _$SizeListResponse; SizeListResponse._(); BuiltList get data; - static Serializer get serializer => _$sizeListResponseSerializer; + static Serializer get serializer => + _$sizeListResponseSerializer; } -abstract class SizeItemResponse implements Built { - - factory SizeItemResponse([void updates(SizeItemResponseBuilder b)]) = _$SizeItemResponse; +abstract class SizeItemResponse + implements Built { + factory SizeItemResponse([void updates(SizeItemResponseBuilder b)]) = + _$SizeItemResponse; SizeItemResponse._(); SizeEntity get data; - static Serializer get serializer => _$sizeItemResponseSerializer; + static Serializer get serializer => + _$sizeItemResponseSerializer; } class SizeFields { static const String name = 'name'; } -abstract class SizeEntity extends Object with SelectableEntity implements Built { - +abstract class SizeEntity extends Object + with SelectableEntity + implements Built { factory SizeEntity() { return _$SizeEntity._( id: 0, @@ -76,4 +81,4 @@ abstract class SizeEntity extends Object with SelectableEntity implements Built< double get listDisplayAmount => null; static Serializer get serializer => _$sizeEntitySerializer; -} \ No newline at end of file +} diff --git a/lib/data/models/static/static_data_model.dart b/lib/data/models/static/static_data_model.dart index 75d83cdfd..c289619c7 100644 --- a/lib/data/models/static/static_data_model.dart +++ b/lib/data/models/static/static_data_model.dart @@ -17,24 +17,30 @@ import 'package:invoiceninja_flutter/data/models/static/frequency_model.dart'; part 'static_data_model.g.dart'; -abstract class StaticDataListResponse implements Built { - - factory StaticDataListResponse([void updates(StaticDataListResponseBuilder b)]) = _$StaticDataListResponse; +abstract class StaticDataListResponse + implements Built { + factory StaticDataListResponse( + [void updates(StaticDataListResponseBuilder b)]) = + _$StaticDataListResponse; StaticDataListResponse._(); BuiltList get data; - static Serializer get serializer => _$staticDataListResponseSerializer; + static Serializer get serializer => + _$staticDataListResponseSerializer; } -abstract class StaticDataItemResponse implements Built { - - factory StaticDataItemResponse([void updates(StaticDataItemResponseBuilder b)]) = _$StaticDataItemResponse; +abstract class StaticDataItemResponse + implements Built { + factory StaticDataItemResponse( + [void updates(StaticDataItemResponseBuilder b)]) = + _$StaticDataItemResponse; StaticDataItemResponse._(); StaticDataEntity get data; - static Serializer get serializer => _$staticDataItemResponseSerializer; + static Serializer get serializer => + _$staticDataItemResponseSerializer; } class StaticDataFields { @@ -56,8 +62,8 @@ class StaticDataFields { static const String banks = 'banks'; } -abstract class StaticDataEntity implements Built { - +abstract class StaticDataEntity + implements Built { factory StaticDataEntity() { return _$StaticDataEntity._( currencies: BuiltList(), @@ -100,6 +106,6 @@ abstract class StaticDataEntity implements Built get frequencies; - static Serializer get serializer => _$staticDataEntitySerializer; + static Serializer get serializer => + _$staticDataEntitySerializer; } - diff --git a/lib/data/models/static/timezone_model.dart b/lib/data/models/static/timezone_model.dart index 353ae8a3a..774b0df52 100644 --- a/lib/data/models/static/timezone_model.dart +++ b/lib/data/models/static/timezone_model.dart @@ -4,24 +4,28 @@ import 'package:built_value/serializer.dart'; part 'timezone_model.g.dart'; -abstract class TimezoneListResponse implements Built { - - factory TimezoneListResponse([void updates(TimezoneListResponseBuilder b)]) = _$TimezoneListResponse; +abstract class TimezoneListResponse + implements Built { + factory TimezoneListResponse([void updates(TimezoneListResponseBuilder b)]) = + _$TimezoneListResponse; TimezoneListResponse._(); BuiltList get data; - static Serializer get serializer => _$timezoneListResponseSerializer; + static Serializer get serializer => + _$timezoneListResponseSerializer; } -abstract class TimezoneItemResponse implements Built { - - factory TimezoneItemResponse([void updates(TimezoneItemResponseBuilder b)]) = _$TimezoneItemResponse; +abstract class TimezoneItemResponse + implements Built { + factory TimezoneItemResponse([void updates(TimezoneItemResponseBuilder b)]) = + _$TimezoneItemResponse; TimezoneItemResponse._(); TimezoneEntity get data; - static Serializer get serializer => _$timezoneItemResponseSerializer; + static Serializer get serializer => + _$timezoneItemResponseSerializer; } class TimezoneFields { @@ -29,8 +33,8 @@ class TimezoneFields { static const String location = 'location'; } -abstract class TimezoneEntity implements Built { - +abstract class TimezoneEntity + implements Built { factory TimezoneEntity() { return _$TimezoneEntity._( id: 0, @@ -45,6 +49,7 @@ abstract class TimezoneEntity implements Built get serializer => _$timezoneEntitySerializer; -} \ No newline at end of file + + static Serializer get serializer => + _$timezoneEntitySerializer; +} diff --git a/lib/data/models/task_model.dart b/lib/data/models/task_model.dart index b9e1aa1f5..68a4f6a6d 100644 --- a/lib/data/models/task_model.dart +++ b/lib/data/models/task_model.dart @@ -354,7 +354,6 @@ abstract class TaskEntity extends Object @BuiltValueField(wireName: 'task_status_sort_order') int get taskStatusSortOrder; - List getEntityActions( {UserEntity user, ClientEntity client, bool includeEdit = false}) { final actions = []; diff --git a/lib/data/repositories/auth_repository.dart b/lib/data/repositories/auth_repository.dart index a9bbffc7a..f8e681daf 100644 --- a/lib/data/repositories/auth_repository.dart +++ b/lib/data/repositories/auth_repository.dart @@ -60,7 +60,8 @@ class AuthRepository { Future sendRequest( {String url, dynamic data, String token}) async { - url += '?include=tax_rates,users,custom_payment_terms,task_statuses&include_static=true'; + url += + '?include=tax_rates,users,custom_payment_terms,task_statuses&include_static=true'; final dynamic response = await webClient.post(url, token ?? '', json.encode(data)); diff --git a/lib/data/repositories/project_repository.dart b/lib/data/repositories/project_repository.dart index 8e4918481..8fc56e07e 100644 --- a/lib/data/repositories/project_repository.dart +++ b/lib/data/repositories/project_repository.dart @@ -17,8 +17,8 @@ class ProjectRepository { Future loadItem( CompanyEntity company, AuthState auth, int entityId) async { - final dynamic response = await webClient.get( - '${auth.url}/projects/$entityId', company.token); + final dynamic response = + await webClient.get('${auth.url}/projects/$entityId', company.token); final ProjectItemResponse projectResponse = serializers.deserializeWith(ProjectItemResponse.serializer, response); @@ -41,7 +41,7 @@ class ProjectRepository { return projectResponse.data; } - + Future saveData( CompanyEntity company, AuthState auth, ProjectEntity project, [EntityAction action]) async { @@ -50,9 +50,7 @@ class ProjectRepository { if (project.isNew) { response = await webClient.post( - auth.url + '/projects', - company.token, - json.encode(data)); + auth.url + '/projects', company.token, json.encode(data)); } else { var url = auth.url + '/projects/' + project.id.toString(); if (action != null) { @@ -62,7 +60,7 @@ class ProjectRepository { } final ProjectItemResponse projectResponse = - serializers.deserializeWith(ProjectItemResponse.serializer, response); + serializers.deserializeWith(ProjectItemResponse.serializer, response); return projectResponse.data; } diff --git a/lib/data/repositories/task_repository.dart b/lib/data/repositories/task_repository.dart index d3bb93557..2e4485d4a 100644 --- a/lib/data/repositories/task_repository.dart +++ b/lib/data/repositories/task_repository.dart @@ -45,11 +45,9 @@ class TaskRepository { Future saveData( CompanyEntity company, AuthState auth, TaskEntity task, [EntityAction action]) async { - // Workaround for API issue if (task.isNew) { - task = task.rebuild((b) => b - ..id = null); + task = task.rebuild((b) => b..id = null); } final data = serializers.serializeWith(TaskEntity.serializer, task); diff --git a/lib/data/repositories/vendor_repository.dart b/lib/data/repositories/vendor_repository.dart index 4d234ff92..95660971c 100644 --- a/lib/data/repositories/vendor_repository.dart +++ b/lib/data/repositories/vendor_repository.dart @@ -9,7 +9,6 @@ import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:invoiceninja_flutter/data/web_client.dart'; class VendorRepository { - const VendorRepository({ this.webClient = const WebClient(), }); @@ -18,8 +17,8 @@ class VendorRepository { Future loadItem( CompanyEntity company, AuthState auth, int entityId) async { - final dynamic response = await webClient.get( - '${auth.url}/vendors/$entityId', company.token); + final dynamic response = + await webClient.get('${auth.url}/vendors/$entityId', company.token); final VendorItemResponse vendorResponse = serializers.deserializeWith(VendorItemResponse.serializer, response); @@ -42,7 +41,7 @@ class VendorRepository { return vendorResponse.data; } - + Future saveData( CompanyEntity company, AuthState auth, VendorEntity vendor, [EntityAction action]) async { @@ -51,9 +50,7 @@ class VendorRepository { if (vendor.isNew) { response = await webClient.post( - auth.url + '/vendors', - company.token, - json.encode(data)); + auth.url + '/vendors', company.token, json.encode(data)); } else { var url = auth.url + '/vendors/' + vendor.id.toString(); if (action != null) { @@ -63,7 +60,7 @@ class VendorRepository { } final VendorItemResponse vendorResponse = - serializers.deserializeWith(VendorItemResponse.serializer, response); + serializers.deserializeWith(VendorItemResponse.serializer, response); return vendorResponse.data; } diff --git a/lib/main.dart b/lib/main.dart index c1dd59b35..9108dc346 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -97,8 +97,7 @@ void main() async { ..addAll(createStoreInvoicesMiddleware()) ..addAll(createStorePersistenceMiddleware()) // STARTER: middleware - do not remove comment -..addAll(createStoreVendorsMiddleware()) - + ..addAll(createStoreVendorsMiddleware()) ..addAll(createStoreTasksMiddleware()) ..addAll(createStoreProjectsMiddleware()) ..addAll(createStorePaymentsMiddleware()) @@ -307,12 +306,12 @@ class InvoiceNinjaAppState extends State { InvoiceEditScreen.route: (context) => InvoiceEditScreen(), InvoiceEmailScreen.route: (context) => InvoiceEmailScreen(), // STARTER: routes - do not remove comment -VendorScreen.route: (context) { -widget.store.dispatch(LoadVendors()); -return VendorScreen(); -}, -VendorViewScreen.route: (context) => VendorViewScreen(), -VendorEditScreen.route: (context) => VendorEditScreen(), + VendorScreen.route: (context) { + widget.store.dispatch(LoadVendors()); + return VendorScreen(); + }, + VendorViewScreen.route: (context) => VendorViewScreen(), + VendorEditScreen.route: (context) => VendorEditScreen(), TaskScreen.route: (context) { widget.store.dispatch(LoadTasks()); diff --git a/lib/redux/app/app_middleware.dart b/lib/redux/app/app_middleware.dart index ed26798f1..621d9097b 100644 --- a/lib/redux/app/app_middleware.dart +++ b/lib/redux/app/app_middleware.dart @@ -352,7 +352,7 @@ Middleware _createDeleteState( final SharedPreferences prefs = await SharedPreferences.getInstance(); - for (int i=0; i<5; i++) { + for (int i = 0; i < 5; i++) { prefs.setString(getCompanyTokenKey(i), ''); } diff --git a/lib/redux/app/app_reducer.dart b/lib/redux/app/app_reducer.dart index 0c20d2187..54553d23e 100644 --- a/lib/redux/app/app_reducer.dart +++ b/lib/redux/app/app_reducer.dart @@ -10,13 +10,12 @@ import 'package:invoiceninja_flutter/redux/company/company_reducer.dart'; AppState appReducer(AppState state, dynamic action) { if (action is UserLogout) { return AppState().rebuild((b) => b - ..authState.replace(state.authState) - ..uiState.enableDarkMode = state.uiState.enableDarkMode); + ..authState.replace(state.authState) + ..uiState.enableDarkMode = state.uiState.enableDarkMode); } else if (action is LoadStateSuccess) { return action.state.rebuild((b) => b - ..isLoading = false - ..isSaving = false - ); + ..isLoading = false + ..isSaving = false); } return state.rebuild((b) => b @@ -25,15 +24,19 @@ AppState appReducer(AppState state, dynamic action) { ..authState.replace(authReducer(state.authState, action)) ..staticState.replace(staticReducer(state.staticState, action)) ..companyState1.replace(state.uiState.selectedCompanyIndex == 1 - ? companyReducer(state.companyState1, action) : state.companyState1) + ? companyReducer(state.companyState1, action) + : state.companyState1) ..companyState2.replace(state.uiState.selectedCompanyIndex == 2 - ? companyReducer(state.companyState2, action) : state.companyState2) + ? companyReducer(state.companyState2, action) + : state.companyState2) ..companyState3.replace(state.uiState.selectedCompanyIndex == 3 - ? companyReducer(state.companyState3, action) : state.companyState3) + ? companyReducer(state.companyState3, action) + : state.companyState3) ..companyState4.replace(state.uiState.selectedCompanyIndex == 4 - ? companyReducer(state.companyState4, action) : state.companyState4) + ? companyReducer(state.companyState4, action) + : state.companyState4) ..companyState5.replace(state.uiState.selectedCompanyIndex == 5 - ? companyReducer(state.companyState5, action) : state.companyState5) - ..uiState.replace(uiReducer(state.uiState, action)) - ); + ? companyReducer(state.companyState5, action) + : state.companyState5) + ..uiState.replace(uiReducer(state.uiState, action))); } diff --git a/lib/redux/app/app_state.dart b/lib/redux/app/app_state.dart index 4410abb88..2b2e23243 100644 --- a/lib/redux/app/app_state.dart +++ b/lib/redux/app/app_state.dart @@ -109,8 +109,8 @@ abstract class AppState implements Built { case EntityType.invoice: return invoiceUIState; // STARTER: states switch - do not remove comment -case EntityType.vendor: -return vendorUIState; + case EntityType.vendor: + return vendorUIState; case EntityType.task: return taskUIState; @@ -150,10 +150,9 @@ return vendorUIState; ListUIState get invoiceListState => uiState.invoiceUIState.listUIState; // STARTER: state getters - do not remove comment -VendorState get vendorState => selectedCompanyState.vendorState; -ListUIState get vendorListState => uiState.vendorUIState.listUIState; -VendorUIState get vendorUIState => uiState.vendorUIState; - + VendorState get vendorState => selectedCompanyState.vendorState; + ListUIState get vendorListState => uiState.vendorUIState.listUIState; + VendorUIState get vendorUIState => uiState.vendorUIState; TaskState get taskState => selectedCompanyState.taskState; diff --git a/lib/redux/app/loading_reducer.dart b/lib/redux/app/loading_reducer.dart index e2c17e2fb..1b215862c 100644 --- a/lib/redux/app/loading_reducer.dart +++ b/lib/redux/app/loading_reducer.dart @@ -14,7 +14,6 @@ bool _setLoaded(bool state, StopLoading action) { return false; } - final savingReducer = combineReducers([ TypedReducer(_setSaving), TypedReducer(_setSaved), diff --git a/lib/redux/auth/auth_middleware.dart b/lib/redux/auth/auth_middleware.dart index e2d9411f7..9547891da 100644 --- a/lib/redux/auth/auth_middleware.dart +++ b/lib/redux/auth/auth_middleware.dart @@ -39,10 +39,8 @@ void _saveAuthLocal(dynamic action) async { void _loadAuthLocal(Store store, dynamic action) async { final SharedPreferences prefs = await SharedPreferences.getInstance(); final String email = prefs.getString(kSharedPrefEmail) ?? ''; - final String url = - formatApiUrlMachine(prefs.getString(kSharedPrefUrl) ?? ''); - final String secret = - prefs.getString(kSharedPrefSecret) ?? ''; + final String url = formatApiUrlMachine(prefs.getString(kSharedPrefUrl) ?? ''); + final String secret = prefs.getString(kSharedPrefSecret) ?? ''; store.dispatch(UserLoginLoaded(email, url, secret)); final bool enableDarkMode = prefs.getBool(kSharedPrefEnableDarkMode) ?? false; @@ -135,8 +133,8 @@ Middleware _createRefreshRequest(AuthRepository repository) { _loadAuthLocal(store, action); final SharedPreferences prefs = await SharedPreferences.getInstance(); - final String url = formatApiUrlMachine( - prefs.getString(kSharedPrefUrl) ?? Config.TEST_URL); + final String url = + formatApiUrlMachine(prefs.getString(kSharedPrefUrl) ?? Config.TEST_URL); final String token = prefs.getString(getCompanyTokenKey()); repository diff --git a/lib/redux/auth/auth_reducer.dart b/lib/redux/auth/auth_reducer.dart index a9943f090..37805f322 100644 --- a/lib/redux/auth/auth_reducer.dart +++ b/lib/redux/auth/auth_reducer.dart @@ -12,8 +12,7 @@ Reducer authReducer = combineReducers([ TypedReducer(clearAuthErrorReducer), ]); -AuthState clearAuthErrorReducer( - AuthState authState, ClearAuthError action) { +AuthState clearAuthErrorReducer(AuthState authState, ClearAuthError action) { return authState.rebuild((b) => b..error = null); } diff --git a/lib/redux/auth/auth_state.dart b/lib/redux/auth/auth_state.dart index b8ecbe358..7c4a787b5 100644 --- a/lib/redux/auth/auth_state.dart +++ b/lib/redux/auth/auth_state.dart @@ -4,7 +4,6 @@ import 'package:built_value/serializer.dart'; part 'auth_state.g.dart'; abstract class AuthState implements Built { - factory AuthState() { return _$AuthState._( email: '', @@ -27,7 +26,6 @@ abstract class AuthState implements Built { @nullable String get error; - //factory AuthState([void updates(AuthStateBuilder b)]) = _$AuthState; static Serializer get serializer => _$authStateSerializer; } diff --git a/lib/redux/client/client_reducer.dart b/lib/redux/client/client_reducer.dart index 9a3aa7e42..a1100e429 100644 --- a/lib/redux/client/client_reducer.dart +++ b/lib/redux/client/client_reducer.dart @@ -200,7 +200,7 @@ ClientState _setLoadedClient( ClientState clientState, LoadClientSuccess action) { return clientState.rebuild((b) => b ..map[action.client.id] = action.client.rebuild((b) => - b..lastUpdatedActivities = DateTime.now().millisecondsSinceEpoch)); + b..lastUpdatedActivities = DateTime.now().millisecondsSinceEpoch)); } ClientState _setLoadedClients( diff --git a/lib/redux/client/client_state.dart b/lib/redux/client/client_state.dart index a3ba4b4c2..aaca8867b 100644 --- a/lib/redux/client/client_state.dart +++ b/lib/redux/client/client_state.dart @@ -9,7 +9,6 @@ import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart'; part 'client_state.g.dart'; abstract class ClientState implements Built { - factory ClientState() { return _$ClientState._( lastUpdated: 0, @@ -26,11 +25,12 @@ abstract class ClientState implements Built { BuiltList get list; bool get isStale { - if (! isLoaded) { + if (!isLoaded) { return true; } - return DateTime.now().millisecondsSinceEpoch - lastUpdated > kMillisecondsToRefreshData; + return DateTime.now().millisecondsSinceEpoch - lastUpdated > + kMillisecondsToRefreshData; } bool get isLoaded => lastUpdated != null && lastUpdated > 0; @@ -38,8 +38,9 @@ abstract class ClientState implements Built { static Serializer get serializer => _$clientStateSerializer; } -abstract class ClientUIState extends Object with EntityUIState implements Built { - +abstract class ClientUIState extends Object + with EntityUIState + implements Built { factory ClientUIState() { return _$ClientUIState._( listUIState: ListUIState(ClientFields.name), @@ -60,4 +61,4 @@ abstract class ClientUIState extends Object with EntityUIState implements Built< bool get isCreatingNew => editing.isNew; static Serializer get serializer => _$clientUIStateSerializer; -} \ No newline at end of file +} diff --git a/lib/redux/company/company_reducer.dart b/lib/redux/company/company_reducer.dart index f4485f0c9..426ae876a 100644 --- a/lib/redux/company/company_reducer.dart +++ b/lib/redux/company/company_reducer.dart @@ -31,8 +31,7 @@ CompanyState companyReducer(CompanyState state, dynamic action) { ..productState.replace(productsReducer(state.productState, action)) ..invoiceState.replace(invoicesReducer(state.invoiceState, action)) // STARTER: reducer - do not remove comment -..vendorState.replace(vendorsReducer(state.vendorState, action)) - + ..vendorState.replace(vendorsReducer(state.vendorState, action)) ..taskState.replace(tasksReducer(state.taskState, action)) ..projectState.replace(projectsReducer(state.projectState, action)) ..paymentState.replace(paymentsReducer(state.paymentState, action)) @@ -45,7 +44,6 @@ Reducer companyEntityReducer = combineReducers([ CompanyEntity loadCompanySuccessReducer( CompanyEntity company, LoadCompanySuccess action) { - if (action.company.taskStatuses == null) { return action.company; } else { @@ -54,8 +52,7 @@ CompanyEntity loadCompanySuccessReducer( action.company.taskStatuses, key: (dynamic item) => item.id, value: (dynamic item) => item, - )) - ); + ))); } /* diff --git a/lib/redux/company/company_state.dart b/lib/redux/company/company_state.dart index 6eba752fe..d42df6f15 100644 --- a/lib/redux/company/company_state.dart +++ b/lib/redux/company/company_state.dart @@ -29,7 +29,7 @@ abstract class CompanyState clientState: ClientState(), invoiceState: InvoiceState(), // STARTER: constructor - do not remove comment -vendorState: VendorState(), + vendorState: VendorState(), taskState: TaskState(), projectState: ProjectState(), @@ -52,7 +52,7 @@ vendorState: VendorState(), InvoiceState get invoiceState; // STARTER: fields - do not remove comment -VendorState get vendorState; + VendorState get vendorState; TaskState get taskState; diff --git a/lib/redux/dashboard/dashboard_middleware.dart b/lib/redux/dashboard/dashboard_middleware.dart index 35cfbdddb..8c64d0b90 100644 --- a/lib/redux/dashboard/dashboard_middleware.dart +++ b/lib/redux/dashboard/dashboard_middleware.dart @@ -19,7 +19,6 @@ List> createStoreDashboardMiddleware([ ]; } - Middleware _createViewDashboard() { return (Store store, dynamic action, NextDispatcher next) { store.dispatch(LoadDashboard()); diff --git a/lib/redux/dashboard/dashboard_state.dart b/lib/redux/dashboard/dashboard_state.dart index c1cec7faa..be3543263 100644 --- a/lib/redux/dashboard/dashboard_state.dart +++ b/lib/redux/dashboard/dashboard_state.dart @@ -83,7 +83,8 @@ abstract class DashboardUIState String startDate(CompanyEntity company) { final today = DateTime.now(); final firstDayOfMonth = DateTime.utc(today.year, today.month, 1); - final firstDayOfYear = DateTime.utc(today.year, company.firstMonthOfYear, 1); + final firstDayOfYear = + DateTime.utc(today.year, company.firstMonthOfYear, 1); switch (dateRange) { case DateRange.last7Days: final date = today.subtract(Duration(days: 7 * (1 + offset))); @@ -115,7 +116,8 @@ abstract class DashboardUIState String endDate(CompanyEntity company) { final today = DateTime.now(); final firstDayOfMonth = DateTime.utc(today.year, today.month, 1); - final firstDayOfYear = DateTime.utc(today.year, company.firstMonthOfYear, 1); + final firstDayOfYear = + DateTime.utc(today.year, company.firstMonthOfYear, 1); switch (dateRange) { case DateRange.last7Days: final date = today.subtract(Duration(days: 7 * offset)); diff --git a/lib/redux/invoice/invoice_middleware.dart b/lib/redux/invoice/invoice_middleware.dart index f4b4e651d..f57fded93 100644 --- a/lib/redux/invoice/invoice_middleware.dart +++ b/lib/redux/invoice/invoice_middleware.dart @@ -248,7 +248,6 @@ Middleware _loadInvoice(InvoiceRepository repository) { repository .loadItem(state.selectedCompany, state.authState, action.invoiceId) .then((invoice) { - store.dispatch(LoadInvoiceSuccess(invoice)); store.dispatch(LoadClient(clientId: invoice.clientId)); diff --git a/lib/redux/payment/payment_middleware.dart b/lib/redux/payment/payment_middleware.dart index c3bf41234..870a81e70 100644 --- a/lib/redux/payment/payment_middleware.dart +++ b/lib/redux/payment/payment_middleware.dart @@ -79,8 +79,9 @@ Middleware _archivePayment(PaymentRepository repository) { return (Store store, dynamic action, NextDispatcher next) { final origPayment = store.state.paymentState.map[action.paymentId]; repository - .saveData(store.state.selectedCompany, store.state.authState, - origPayment, action: EntityAction.archive) + .saveData( + store.state.selectedCompany, store.state.authState, origPayment, + action: EntityAction.archive) .then((PaymentEntity payment) { store.dispatch(ArchivePaymentSuccess(payment)); if (action.completer != null) { @@ -102,8 +103,9 @@ Middleware _deletePayment(PaymentRepository repository) { return (Store store, dynamic action, NextDispatcher next) { final origPayment = store.state.paymentState.map[action.paymentId]; repository - .saveData(store.state.selectedCompany, store.state.authState, - origPayment, action: EntityAction.delete) + .saveData( + store.state.selectedCompany, store.state.authState, origPayment, + action: EntityAction.delete) .then((PaymentEntity payment) { store.dispatch(DeletePaymentSuccess(payment)); store.dispatch(LoadInvoice(invoiceId: payment.invoiceId)); @@ -126,8 +128,9 @@ Middleware _restorePayment(PaymentRepository repository) { return (Store store, dynamic action, NextDispatcher next) { final origPayment = store.state.paymentState.map[action.paymentId]; repository - .saveData(store.state.selectedCompany, store.state.authState, - origPayment, action: EntityAction.restore) + .saveData( + store.state.selectedCompany, store.state.authState, origPayment, + action: EntityAction.restore) .then((PaymentEntity payment) { store.dispatch(RestorePaymentSuccess(payment)); store.dispatch(LoadInvoice(invoiceId: payment.invoiceId)); @@ -149,10 +152,12 @@ Middleware _restorePayment(PaymentRepository repository) { Middleware _savePayment(PaymentRepository repository) { return (Store store, dynamic action, NextDispatcher next) { final PaymentEntity payment = action.payment; - final bool sendEmail = payment.isNew ? store.state.uiState.emailPayment : false; + final bool sendEmail = + payment.isNew ? store.state.uiState.emailPayment : false; repository .saveData( - store.state.selectedCompany, store.state.authState, action.payment, sendEmail: sendEmail) + store.state.selectedCompany, store.state.authState, action.payment, + sendEmail: sendEmail) .then((PaymentEntity payment) { if (action.payment.isNew) { store.dispatch(AddPaymentSuccess(payment)); @@ -175,7 +180,8 @@ Middleware _emailPayment(PaymentRepository repository) { return (Store store, dynamic action, NextDispatcher next) { repository .saveData( - store.state.selectedCompany, store.state.authState, action.payment, sendEmail: true) + store.state.selectedCompany, store.state.authState, action.payment, + sendEmail: true) .then((PaymentEntity payment) { store.dispatch(SavePaymentSuccess(payment)); action.completer.complete(null); @@ -189,7 +195,6 @@ Middleware _emailPayment(PaymentRepository repository) { }; } - /* Middleware _loadPayment(PaymentRepository repository) { return (Store store, dynamic action, NextDispatcher next) { diff --git a/lib/redux/product/product_middleware.dart b/lib/redux/product/product_middleware.dart index fdd8b5d10..37e134a87 100644 --- a/lib/redux/product/product_middleware.dart +++ b/lib/redux/product/product_middleware.dart @@ -158,7 +158,9 @@ Middleware _loadProducts(ProductRepository repository) { final int updatedAt = (state.productState.lastUpdated / 1000).round(); store.dispatch(LoadProductsRequest()); - repository.loadList(state.selectedCompany, state.authState, updatedAt).then((data) { + repository + .loadList(state.selectedCompany, state.authState, updatedAt) + .then((data) { store.dispatch(LoadProductsSuccess(data)); if (action.completer != null) { action.completer.complete(null); diff --git a/lib/redux/product/product_selectors.dart b/lib/redux/product/product_selectors.dart index bb0a68aab..0843cc43c 100644 --- a/lib/redux/product/product_selectors.dart +++ b/lib/redux/product/product_selectors.dart @@ -4,7 +4,8 @@ import 'package:built_collection/built_collection.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart'; -InvoiceItemEntity convertProductToInvoiceItem({BuildContext context, ProductEntity product}) { +InvoiceItemEntity convertProductToInvoiceItem( + {BuildContext context, ProductEntity product}) { return InvoiceItemEntity().rebuild((b) => b ..productKey = product.productKey ..notes = product.notes diff --git a/lib/redux/product/product_state.dart b/lib/redux/product/product_state.dart index f4b6e581b..383d15128 100644 --- a/lib/redux/product/product_state.dart +++ b/lib/redux/product/product_state.dart @@ -8,8 +8,8 @@ import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart'; part 'product_state.g.dart'; -abstract class ProductState implements Built { - +abstract class ProductState + implements Built { factory ProductState() { return _$ProductState._( lastUpdated: 0, @@ -26,11 +26,12 @@ abstract class ProductState implements Built BuiltList get list; bool get isStale { - if (! isLoaded) { + if (!isLoaded) { return true; } - return DateTime.now().millisecondsSinceEpoch - lastUpdated > kMillisecondsToRefreshData; + return DateTime.now().millisecondsSinceEpoch - lastUpdated > + kMillisecondsToRefreshData; } bool get isLoaded => lastUpdated != null && lastUpdated > 0; @@ -38,8 +39,9 @@ abstract class ProductState implements Built static Serializer get serializer => _$productStateSerializer; } -abstract class ProductUIState extends Object with EntityUIState implements Built { - +abstract class ProductUIState extends Object + with EntityUIState + implements Built { factory ProductUIState() { return _$ProductUIState._( listUIState: ListUIState(ProductFields.productKey), @@ -55,5 +57,6 @@ abstract class ProductUIState extends Object with EntityUIState implements Built @override bool get isCreatingNew => editing.isNew; - static Serializer get serializer => _$productUIStateSerializer; -} \ No newline at end of file + static Serializer get serializer => + _$productUIStateSerializer; +} diff --git a/lib/redux/project/project_actions.dart b/lib/redux/project/project_actions.dart index 25cddd33f..9b66b3ca4 100644 --- a/lib/redux/project/project_actions.dart +++ b/lib/redux/project/project_actions.dart @@ -18,7 +18,8 @@ class ViewProject implements PersistUI { } class EditProject implements PersistUI { - EditProject({this.project, this.context, this.completer, this.trackRoute = true}); + EditProject( + {this.project, this.context, this.completer, this.trackRoute = true}); final ProjectEntity project; final BuildContext context; @@ -102,7 +103,6 @@ class LoadProjectsSuccess implements StopLoading, PersistData { } } - class SaveProjectRequest implements StartSaving { SaveProjectRequest({this.completer, this.project}); @@ -123,7 +123,7 @@ class AddProjectSuccess implements StopSaving, PersistData, PersistUI { } class SaveProjectFailure implements StopSaving { - SaveProjectFailure (this.error); + SaveProjectFailure(this.error); final Object error; } @@ -185,9 +185,6 @@ class RestoreProjectFailure implements StopSaving { final ProjectEntity project; } - - - class FilterProjects { FilterProjects(this.filter); diff --git a/lib/redux/project/project_middleware.dart b/lib/redux/project/project_middleware.dart index 3a373aa9e..f0f82adc7 100644 --- a/lib/redux/project/project_middleware.dart +++ b/lib/redux/project/project_middleware.dart @@ -70,7 +70,8 @@ Middleware _viewProjectList() { store.dispatch(UpdateCurrentRoute(ProjectScreen.route)); - Navigator.of(action.context).pushNamedAndRemoveUntil(ProjectScreen.route, (Route route) => false); + Navigator.of(action.context).pushNamedAndRemoveUntil( + ProjectScreen.route, (Route route) => false); }; } diff --git a/lib/redux/project/project_reducer.dart b/lib/redux/project/project_reducer.dart index 1bb7fff06..1ad37cf46 100644 --- a/lib/redux/project/project_reducer.dart +++ b/lib/redux/project/project_reducer.dart @@ -39,7 +39,6 @@ ProjectEntity _updateEditing(ProjectEntity project, dynamic action) { return action.project; } - final projectListReducer = combineReducers([ TypedReducer(_sortProjects), TypedReducer(_filterProjectsByState), @@ -52,8 +51,8 @@ final projectListReducer = combineReducers([ ListUIState _filterProjectsByClient( ListUIState projectListState, FilterProjectsByEntity action) { return projectListState.rebuild((b) => b - ..filterEntityId = action.entityId - ..filterEntityType = action.entityType); + ..filterEntityId = action.entityId + ..filterEntityType = action.entityType); } ListUIState _filterProjectsByCustom1( @@ -79,13 +78,15 @@ ListUIState _filterProjectsByCustom2( ListUIState _filterProjectsByState( ListUIState projectListState, FilterProjectsByState action) { if (projectListState.stateFilters.contains(action.state)) { - return projectListState.rebuild((b) => b..stateFilters.remove(action.state)); + return projectListState + .rebuild((b) => b..stateFilters.remove(action.state)); } else { return projectListState.rebuild((b) => b..stateFilters.add(action.state)); } } -ListUIState _filterProjects(ListUIState projectListState, FilterProjects action) { +ListUIState _filterProjects( + ListUIState projectListState, FilterProjects action) { return projectListState.rebuild((b) => b..filter = action.filter); } @@ -121,12 +122,14 @@ ProjectState _archiveProjectRequest( ProjectState _archiveProjectSuccess( ProjectState projectState, ArchiveProjectSuccess action) { - return projectState.rebuild((b) => b..map[action.project.id] = action.project); + return projectState + .rebuild((b) => b..map[action.project.id] = action.project); } ProjectState _archiveProjectFailure( ProjectState projectState, ArchiveProjectFailure action) { - return projectState.rebuild((b) => b..map[action.project.id] = action.project); + return projectState + .rebuild((b) => b..map[action.project.id] = action.project); } ProjectState _deleteProjectRequest( @@ -140,12 +143,14 @@ ProjectState _deleteProjectRequest( ProjectState _deleteProjectSuccess( ProjectState projectState, DeleteProjectSuccess action) { - return projectState.rebuild((b) => b..map[action.project.id] = action.project); + return projectState + .rebuild((b) => b..map[action.project.id] = action.project); } ProjectState _deleteProjectFailure( ProjectState projectState, DeleteProjectFailure action) { - return projectState.rebuild((b) => b..map[action.project.id] = action.project); + return projectState + .rebuild((b) => b..map[action.project.id] = action.project); } ProjectState _restoreProjectRequest( @@ -158,12 +163,14 @@ ProjectState _restoreProjectRequest( ProjectState _restoreProjectSuccess( ProjectState projectState, RestoreProjectSuccess action) { - return projectState.rebuild((b) => b..map[action.project.id] = action.project); + return projectState + .rebuild((b) => b..map[action.project.id] = action.project); } ProjectState _restoreProjectFailure( ProjectState projectState, RestoreProjectFailure action) { - return projectState.rebuild((b) => b..map[action.project.id] = action.project); + return projectState + .rebuild((b) => b..map[action.project.id] = action.project); } ProjectState _addProject(ProjectState projectState, AddProjectSuccess action) { @@ -172,15 +179,16 @@ ProjectState _addProject(ProjectState projectState, AddProjectSuccess action) { ..list.add(action.project.id)); } -ProjectState _updateProject(ProjectState projectState, SaveProjectSuccess action) { - return projectState.rebuild((b) => b - ..map[action.project.id] = action.project); +ProjectState _updateProject( + ProjectState projectState, SaveProjectSuccess action) { + return projectState + .rebuild((b) => b..map[action.project.id] = action.project); } ProjectState _setLoadedProject( ProjectState projectState, LoadProjectSuccess action) { - return projectState.rebuild((b) => b - ..map[action.project.id] = action.project); + return projectState + .rebuild((b) => b..map[action.project.id] = action.project); } ProjectState _setLoadedProjects( diff --git a/lib/redux/project/project_state.dart b/lib/redux/project/project_state.dart index 2598ca561..db8a912f4 100644 --- a/lib/redux/project/project_state.dart +++ b/lib/redux/project/project_state.dart @@ -8,8 +8,8 @@ import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart'; part 'project_state.g.dart'; -abstract class ProjectState implements Built { - +abstract class ProjectState + implements Built { factory ProjectState() { return _$ProjectState._( lastUpdated: 0, @@ -26,11 +26,12 @@ abstract class ProjectState implements Built BuiltList get list; bool get isStale { - if (! isLoaded) { + if (!isLoaded) { return true; } - return DateTime.now().millisecondsSinceEpoch - lastUpdated > kMillisecondsToRefreshData; + return DateTime.now().millisecondsSinceEpoch - lastUpdated > + kMillisecondsToRefreshData; } bool get isLoaded => lastUpdated != null && lastUpdated > 0; @@ -38,8 +39,9 @@ abstract class ProjectState implements Built static Serializer get serializer => _$projectStateSerializer; } -abstract class ProjectUIState extends Object with EntityUIState implements Built { - +abstract class ProjectUIState extends Object + with EntityUIState + implements Built { factory ProjectUIState() { return _$ProjectUIState._( listUIState: ListUIState(ProjectFields.name), @@ -55,5 +57,6 @@ abstract class ProjectUIState extends Object with EntityUIState implements Built @override bool get isCreatingNew => editing.isNew; - static Serializer get serializer => _$projectUIStateSerializer; -} \ No newline at end of file + static Serializer get serializer => + _$projectUIStateSerializer; +} diff --git a/lib/redux/quote/quote_middleware.dart b/lib/redux/quote/quote_middleware.dart index 50902fd9d..f2818c662 100644 --- a/lib/redux/quote/quote_middleware.dart +++ b/lib/redux/quote/quote_middleware.dart @@ -142,7 +142,7 @@ Middleware _restoreQuote(QuoteRepository repository) { final origQuote = store.state.quoteState.map[action.quoteId]; repository .saveData(store.state.selectedCompany, store.state.authState, origQuote, - EntityAction.restore) + EntityAction.restore) .then((InvoiceEntity quote) { store.dispatch(RestoreQuoteSuccess(quote)); if (action.completer != null) { @@ -165,7 +165,7 @@ Middleware _convertQuote(QuoteRepository repository) { final quote = store.state.quoteState.map[action.quoteId]; repository .saveData(store.state.selectedCompany, store.state.authState, quote, - EntityAction.convert) + EntityAction.convert) .then((InvoiceEntity invoice) { store.dispatch(ConvertQuoteSuccess(quote: quote, invoice: invoice)); action.completer.complete(invoice); @@ -207,7 +207,7 @@ Middleware _emailQuote(QuoteRepository repository) { final origQuote = store.state.quoteState.map[action.quoteId]; repository .emailQuote(store.state.selectedCompany, store.state.authState, - origQuote, action.template, action.subject, action.body) + origQuote, action.template, action.subject, action.body) .then((void _) { store.dispatch(EmailQuoteSuccess()); if (action.completer != null) { diff --git a/lib/redux/quote/quote_selectors.dart b/lib/redux/quote/quote_selectors.dart index 3f8b85237..c134a22fc 100644 --- a/lib/redux/quote/quote_selectors.dart +++ b/lib/redux/quote/quote_selectors.dart @@ -8,13 +8,11 @@ ClientEntity quoteClientSelector( return clientMap[quote.clientId]; } -var memoizedFilteredQuoteList = memo4( - (BuiltMap quoteMap, +var memoizedFilteredQuoteList = memo4((BuiltMap quoteMap, BuiltList quoteList, BuiltMap clientMap, ListUIState quoteListState) => - filteredQuotesSelector( - quoteMap, quoteList, clientMap, quoteListState)); + filteredQuotesSelector(quoteMap, quoteList, clientMap, quoteListState)); List filteredQuotesSelector( BuiltMap quoteMap, @@ -24,7 +22,7 @@ List filteredQuotesSelector( final list = quoteList.where((quoteId) { final quote = quoteMap[quoteId]; final client = clientMap[quote.clientId]; - if (client == null || ! client.isActive) { + if (client == null || !client.isActive) { return false; } if (!quote.matchesStates(quoteListState.stateFilters)) { @@ -61,16 +59,13 @@ List filteredQuotesSelector( } var memoizedQuoteStatsForClient = memo4((int clientId, - BuiltMap quoteMap, - String activeLabel, - String archivedLabel) => + BuiltMap quoteMap, + String activeLabel, + String archivedLabel) => quoteStatsForClient(clientId, quoteMap, activeLabel, archivedLabel)); -String quoteStatsForClient( - int clientId, - BuiltMap quoteMap, - String activeLabel, - String archivedLabel) { +String quoteStatsForClient(int clientId, BuiltMap quoteMap, + String activeLabel, String archivedLabel) { int countActive = 0; int countArchived = 0; quoteMap.forEach((quoteId, quote) { diff --git a/lib/redux/static/static_reducer.dart b/lib/redux/static/static_reducer.dart index c6bea35f1..20edd385e 100644 --- a/lib/redux/static/static_reducer.dart +++ b/lib/redux/static/static_reducer.dart @@ -11,7 +11,8 @@ StaticState refreshData(StaticState staticState, RefreshData action) { return StaticState(); } -StaticState staticLoadedReducer(StaticState staticState, LoadStaticSuccess action) { +StaticState staticLoadedReducer( + StaticState staticState, LoadStaticSuccess action) { return StaticState().rebuild((b) => b ..currencyMap.addAll(Map.fromIterable( action.data.currencies, @@ -67,7 +68,5 @@ StaticState staticLoadedReducer(StaticState staticState, LoadStaticSuccess actio action.data.frequencies, key: (dynamic item) => item.id, value: (dynamic item) => item, - )) - ); + ))); } - diff --git a/lib/redux/static/static_selectors.dart b/lib/redux/static/static_selectors.dart index c9a3a4e83..0961b5183 100644 --- a/lib/redux/static/static_selectors.dart +++ b/lib/redux/static/static_selectors.dart @@ -2,76 +2,78 @@ import 'package:built_collection/built_collection.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:memoize/memoize.dart'; -var memoizedCountryList = memo1((BuiltMap countryMap) => - countryList(countryMap)); +var memoizedCountryList = + memo1((BuiltMap countryMap) => countryList(countryMap)); List countryList(BuiltMap countryMap) { final list = countryMap.keys.toList(); - list.sort((idA, idB) => countryMap[idA].listDisplayName + list.sort((idA, idB) => countryMap[idA] + .listDisplayName .compareTo(countryMap[idB].listDisplayName)); return list; } -var memoizedLanguageList = memo1((BuiltMap languageMap) => - languageList(languageMap)); +var memoizedLanguageList = memo1( + (BuiltMap languageMap) => languageList(languageMap)); List languageList(BuiltMap languageMap) { final list = languageMap.keys.toList(); - list.sort((idA, idB) => languageMap[idA].listDisplayName + list.sort((idA, idB) => languageMap[idA] + .listDisplayName .compareTo(languageMap[idB].listDisplayName)); return list; } -var memoizedCurrencyList = memo1((BuiltMap currencyMap) => - currencyList(currencyMap)); +var memoizedCurrencyList = memo1( + (BuiltMap currencyMap) => currencyList(currencyMap)); List currencyList(BuiltMap currencyMap) { final list = currencyMap.keys.toList(); - list.sort((idA, idB) => currencyMap[idA].listDisplayName + list.sort((idA, idB) => currencyMap[idA] + .listDisplayName .compareTo(currencyMap[idB].listDisplayName)); return list; } -var memoizedIndustryList = memo1((BuiltMap industryMap) => - industryList(industryMap)); +var memoizedIndustryList = memo1( + (BuiltMap industryMap) => industryList(industryMap)); List industryList(BuiltMap industryMap) { final list = industryMap.keys.toList(); - list.sort((idA, idB) => industryMap[idA].listDisplayName + list.sort((idA, idB) => industryMap[idA] + .listDisplayName .compareTo(industryMap[idB].listDisplayName)); return list; } -var memoizedSizeList = memo1((BuiltMap sizeMap) => - sizeList(sizeMap)); +var memoizedSizeList = + memo1((BuiltMap sizeMap) => sizeList(sizeMap)); List sizeList(BuiltMap sizeMap) { final list = sizeMap.keys.toList(); - list.sort((idA, idB) => sizeMap[idA].id - .compareTo(sizeMap[idB].id)); + list.sort((idA, idB) => sizeMap[idA].id.compareTo(sizeMap[idB].id)); return list; } -var memoizedPaymentTypeList = memo1((BuiltMap paymentTypeMap) => - paymentTypeList(paymentTypeMap)); +var memoizedPaymentTypeList = memo1( + (BuiltMap paymentTypeMap) => + paymentTypeList(paymentTypeMap)); List paymentTypeList(BuiltMap paymentTypeMap) { final list = paymentTypeMap.keys.toList(); - list.sort((idA, idB) => paymentTypeMap[idA].id - .compareTo(paymentTypeMap[idB].id)); + list.sort( + (idA, idB) => paymentTypeMap[idA].id.compareTo(paymentTypeMap[idB].id)); return list; } - - diff --git a/lib/redux/static/static_state.dart b/lib/redux/static/static_state.dart index 45b646298..9815ea381 100644 --- a/lib/redux/static/static_state.dart +++ b/lib/redux/static/static_state.dart @@ -6,7 +6,6 @@ import 'package:invoiceninja_flutter/data/models/models.dart'; part 'static_state.g.dart'; abstract class StaticState implements Built { - factory StaticState() { return _$StaticState._( currencyMap: BuiltMap(), diff --git a/lib/redux/task/task_middleware.dart b/lib/redux/task/task_middleware.dart index 86a4b3e23..ad33efb35 100644 --- a/lib/redux/task/task_middleware.dart +++ b/lib/redux/task/task_middleware.dart @@ -66,7 +66,8 @@ Middleware _viewTaskList() { store.dispatch(UpdateCurrentRoute(TaskScreen.route)); - Navigator.of(action.context).pushNamedAndRemoveUntil(TaskScreen.route, (Route route) => false); + Navigator.of(action.context).pushNamedAndRemoveUntil( + TaskScreen.route, (Route route) => false); }; } @@ -74,8 +75,8 @@ Middleware _archiveTask(TaskRepository repository) { return (Store store, dynamic action, NextDispatcher next) { final origTask = store.state.taskState.map[action.taskId]; repository - .saveData(store.state.selectedCompany, store.state.authState, - origTask, EntityAction.archive) + .saveData(store.state.selectedCompany, store.state.authState, origTask, + EntityAction.archive) .then((TaskEntity task) { store.dispatch(ArchiveTaskSuccess(task)); if (action.completer != null) { @@ -97,8 +98,8 @@ Middleware _deleteTask(TaskRepository repository) { return (Store store, dynamic action, NextDispatcher next) { final origTask = store.state.taskState.map[action.taskId]; repository - .saveData(store.state.selectedCompany, store.state.authState, - origTask, EntityAction.delete) + .saveData(store.state.selectedCompany, store.state.authState, origTask, + EntityAction.delete) .then((TaskEntity task) { store.dispatch(DeleteTaskSuccess(task)); if (action.completer != null) { @@ -120,8 +121,8 @@ Middleware _restoreTask(TaskRepository repository) { return (Store store, dynamic action, NextDispatcher next) { final origTask = store.state.taskState.map[action.taskId]; repository - .saveData(store.state.selectedCompany, store.state.authState, - origTask, EntityAction.restore) + .saveData(store.state.selectedCompany, store.state.authState, origTask, + EntityAction.restore) .then((TaskEntity task) { store.dispatch(RestoreTaskSuccess(task)); if (action.completer != null) { diff --git a/lib/redux/task/task_reducer.dart b/lib/redux/task/task_reducer.dart index 94f785ddb..5d589c7bb 100644 --- a/lib/redux/task/task_reducer.dart +++ b/lib/redux/task/task_reducer.dart @@ -96,11 +96,10 @@ ListUIState _filterTasksByState( } } -ListUIState _filterTasksByStatus(ListUIState taskListState, - FilterTasksByStatus action) { +ListUIState _filterTasksByStatus( + ListUIState taskListState, FilterTasksByStatus action) { if (taskListState.statusFilters.contains(action.status)) { - return taskListState - .rebuild((b) => b..statusFilters.remove(action.status)); + return taskListState.rebuild((b) => b..statusFilters.remove(action.status)); } else { return taskListState.rebuild((b) => b..statusFilters.add(action.status)); } diff --git a/lib/redux/task/task_state.dart b/lib/redux/task/task_state.dart index c45594205..c336c4a16 100644 --- a/lib/redux/task/task_state.dart +++ b/lib/redux/task/task_state.dart @@ -9,7 +9,6 @@ import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart'; part 'task_state.g.dart'; abstract class TaskState implements Built { - factory TaskState() { return _$TaskState._( lastUpdated: 0, @@ -26,11 +25,12 @@ abstract class TaskState implements Built { BuiltList get list; bool get isStale { - if (! isLoaded) { + if (!isLoaded) { return true; } - return DateTime.now().millisecondsSinceEpoch - lastUpdated > kMillisecondsToRefreshData; + return DateTime.now().millisecondsSinceEpoch - lastUpdated > + kMillisecondsToRefreshData; } bool get isLoaded => lastUpdated != null && lastUpdated > 0; @@ -38,8 +38,9 @@ abstract class TaskState implements Built { static Serializer get serializer => _$taskStateSerializer; } -abstract class TaskUIState extends Object with EntityUIState implements Built { - +abstract class TaskUIState extends Object + with EntityUIState + implements Built { factory TaskUIState() { return _$TaskUIState._( listUIState: ListUIState(TaskFields.updatedAt, sortAscending: false), @@ -60,4 +61,4 @@ abstract class TaskUIState extends Object with EntityUIState implements Built editing.isNew; static Serializer get serializer => _$taskUIStateSerializer; -} \ No newline at end of file +} diff --git a/lib/redux/ui/entity_ui_state.dart b/lib/redux/ui/entity_ui_state.dart index fa2144bd3..8d7575110 100644 --- a/lib/redux/ui/entity_ui_state.dart +++ b/lib/redux/ui/entity_ui_state.dart @@ -1,8 +1,7 @@ import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart'; abstract class EntityUIState { - bool get isCreatingNew; int get selectedId; ListUIState get listUIState; -} \ No newline at end of file +} diff --git a/lib/redux/ui/list_ui_state.dart b/lib/redux/ui/list_ui_state.dart index a389385e8..a3bc3441d 100644 --- a/lib/redux/ui/list_ui_state.dart +++ b/lib/redux/ui/list_ui_state.dart @@ -6,7 +6,6 @@ import 'package:invoiceninja_flutter/data/models/models.dart'; part 'list_ui_state.g.dart'; abstract class ListUIState implements Built { - factory ListUIState(String sortField, {bool sortAscending = true}) { return _$ListUIState._( sortField: sortField, @@ -37,11 +36,12 @@ abstract class ListUIState implements Built { BuiltList get custom1Filters; BuiltList get custom2Filters; - bool get hasStateFilters => stateFilters.length != 1 || stateFilters.first != EntityState.active; + bool get hasStateFilters => + stateFilters.length != 1 || stateFilters.first != EntityState.active; bool get hasStatusFilters => statusFilters.isNotEmpty; bool get hasCustom1Filters => custom1Filters.isNotEmpty; bool get hasCustom2Filters => custom2Filters.isNotEmpty; //factory EntityUIState([void updates(EntityUIStateBuilder b)]) = _$listUIState; static Serializer get serializer => _$listUIStateSerializer; -} \ No newline at end of file +} diff --git a/lib/redux/ui/ui_reducer.dart b/lib/redux/ui/ui_reducer.dart index 1a459b75a..b8b1afb13 100644 --- a/lib/redux/ui/ui_reducer.dart +++ b/lib/redux/ui/ui_reducer.dart @@ -36,8 +36,7 @@ UIState uiReducer(UIState state, dynamic action) { ..dashboardUIState .replace(dashboardUIReducer(state.dashboardUIState, action)) // STARTER: reducer - do not remove comment -..vendorUIState.replace(vendorUIReducer(state.vendorUIState, action)) - + ..vendorUIState.replace(vendorUIReducer(state.vendorUIState, action)) ..taskUIState.replace(taskUIReducer(state.taskUIState, action)) ..projectUIState.replace(projectUIReducer(state.projectUIState, action)) ..paymentUIState.replace(paymentUIReducer(state.paymentUIState, action)) @@ -72,7 +71,8 @@ Reducer autoStartTasksReducer = combineReducers([ TypedReducer(updateAutoStartTasksReducer), ]); -bool updateAutoStartTasksReducer(bool autoStartTasks, UserSettingsChanged action) { +bool updateAutoStartTasksReducer( + bool autoStartTasks, UserSettingsChanged action) { return action.autoStartTasks ?? autoStartTasks; } diff --git a/lib/redux/ui/ui_state.dart b/lib/redux/ui/ui_state.dart index b5a1cdc27..bb65cb226 100644 --- a/lib/redux/ui/ui_state.dart +++ b/lib/redux/ui/ui_state.dart @@ -35,7 +35,7 @@ abstract class UIState implements Built { clientUIState: ClientUIState(), invoiceUIState: InvoiceUIState(), // STARTER: constructor - do not remove comment -vendorUIState: VendorUIState(), + vendorUIState: VendorUIState(), taskUIState: TaskUIState(), projectUIState: ProjectUIState(), @@ -70,7 +70,7 @@ vendorUIState: VendorUIState(), String get filter; // STARTER: properties - do not remove comment -VendorUIState get vendorUIState; + VendorUIState get vendorUIState; TaskUIState get taskUIState; diff --git a/lib/redux/vendor/vendor_actions.dart b/lib/redux/vendor/vendor_actions.dart index b49d498d6..0d5bfa76c 100644 --- a/lib/redux/vendor/vendor_actions.dart +++ b/lib/redux/vendor/vendor_actions.dart @@ -18,7 +18,8 @@ class ViewVendor implements PersistUI { } class EditVendor implements PersistUI { - EditVendor({this.vendor, this.context, this.completer, this.trackRoute = true}); + EditVendor( + {this.vendor, this.context, this.completer, this.trackRoute = true}); final VendorEntity vendor; final BuildContext context; @@ -102,7 +103,6 @@ class LoadVendorsSuccess implements StopLoading, PersistData { } } - class SaveVendorRequest implements StartSaving { SaveVendorRequest({this.completer, this.vendor}); @@ -123,7 +123,7 @@ class AddVendorSuccess implements StopSaving, PersistData, PersistUI { } class SaveVendorFailure implements StopSaving { - SaveVendorFailure (this.error); + SaveVendorFailure(this.error); final Object error; } @@ -185,9 +185,6 @@ class RestoreVendorFailure implements StopSaving { final VendorEntity vendor; } - - - class FilterVendors { FilterVendors(this.filter); diff --git a/lib/redux/vendor/vendor_middleware.dart b/lib/redux/vendor/vendor_middleware.dart index e71453525..d4047df23 100644 --- a/lib/redux/vendor/vendor_middleware.dart +++ b/lib/redux/vendor/vendor_middleware.dart @@ -65,7 +65,8 @@ Middleware _viewVendorList() { store.dispatch(UpdateCurrentRoute(VendorScreen.route)); - Navigator.of(action.context).pushNamedAndRemoveUntil(VendorScreen.route, (Route route) => false); + Navigator.of(action.context).pushNamedAndRemoveUntil( + VendorScreen.route, (Route route) => false); }; } diff --git a/lib/redux/vendor/vendor_reducer.dart b/lib/redux/vendor/vendor_reducer.dart index b856d5411..753f18c4a 100644 --- a/lib/redux/vendor/vendor_reducer.dart +++ b/lib/redux/vendor/vendor_reducer.dart @@ -39,7 +39,6 @@ VendorEntity _updateEditing(VendorEntity vendor, dynamic action) { return action.vendor; } - final vendorListReducer = combineReducers([ TypedReducer(_sortVendors), TypedReducer(_filterVendorsByState), @@ -52,8 +51,8 @@ final vendorListReducer = combineReducers([ ListUIState _filterVendorsByClient( ListUIState vendorListState, FilterVendorsByEntity action) { return vendorListState.rebuild((b) => b - ..filterEntityId = action.entityId - ..filterEntityType = action.entityType); + ..filterEntityId = action.entityId + ..filterEntityType = action.entityType); } ListUIState _filterVendorsByCustom1( @@ -173,14 +172,12 @@ VendorState _addVendor(VendorState vendorState, AddVendorSuccess action) { } VendorState _updateVendor(VendorState vendorState, SaveVendorSuccess action) { - return vendorState.rebuild((b) => b - ..map[action.vendor.id] = action.vendor); + return vendorState.rebuild((b) => b..map[action.vendor.id] = action.vendor); } VendorState _setLoadedVendor( VendorState vendorState, LoadVendorSuccess action) { - return vendorState.rebuild((b) => b - ..map[action.vendor.id] = action.vendor); + return vendorState.rebuild((b) => b..map[action.vendor.id] = action.vendor); } VendorState _setLoadedVendors( diff --git a/lib/redux/vendor/vendor_selectors.dart b/lib/redux/vendor/vendor_selectors.dart index 271313390..37f4a638d 100644 --- a/lib/redux/vendor/vendor_selectors.dart +++ b/lib/redux/vendor/vendor_selectors.dart @@ -3,10 +3,9 @@ import 'package:built_collection/built_collection.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart'; -var memoizedDropdownVendorList = memo3( - (BuiltMap vendorMap, BuiltList vendorList, - int clientId) => - dropdownVendorsSelector(vendorMap, vendorList, clientId)); +var memoizedDropdownVendorList = memo3((BuiltMap vendorMap, + BuiltList vendorList, int clientId) => + dropdownVendorsSelector(vendorMap, vendorList, clientId)); List dropdownVendorsSelector(BuiltMap vendorMap, BuiltList vendorList, int clientId) { diff --git a/lib/redux/vendor/vendor_state.dart b/lib/redux/vendor/vendor_state.dart index 1158d0d95..6e5752df8 100644 --- a/lib/redux/vendor/vendor_state.dart +++ b/lib/redux/vendor/vendor_state.dart @@ -9,7 +9,6 @@ import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart'; part 'vendor_state.g.dart'; abstract class VendorState implements Built { - factory VendorState() { return _$VendorState._( lastUpdated: 0, @@ -26,11 +25,12 @@ abstract class VendorState implements Built { BuiltList get list; bool get isStale { - if (! isLoaded) { + if (!isLoaded) { return true; } - return DateTime.now().millisecondsSinceEpoch - lastUpdated > kMillisecondsToRefreshData; + return DateTime.now().millisecondsSinceEpoch - lastUpdated > + kMillisecondsToRefreshData; } bool get isLoaded => lastUpdated != null && lastUpdated > 0; @@ -38,8 +38,9 @@ abstract class VendorState implements Built { static Serializer get serializer => _$vendorStateSerializer; } -abstract class VendorUIState extends Object with EntityUIState implements Built { - +abstract class VendorUIState extends Object + with EntityUIState + implements Built { factory VendorUIState() { return _$VendorUIState._( listUIState: ListUIState(VendorFields.name), @@ -56,4 +57,4 @@ abstract class VendorUIState extends Object with EntityUIState implements Built< bool get isCreatingNew => editing.isNew; static Serializer get serializer => _$vendorUIStateSerializer; -} \ No newline at end of file +} diff --git a/lib/ui/app/app_bottom_bar.dart b/lib/ui/app/app_bottom_bar.dart index 4f87adbff..f565c883c 100644 --- a/lib/ui/app/app_bottom_bar.dart +++ b/lib/ui/app/app_bottom_bar.dart @@ -8,7 +8,6 @@ import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:redux/redux.dart'; class AppBottomBar extends StatefulWidget { - const AppBottomBar({ this.sortFields, this.onSelectedSortField, @@ -46,7 +45,6 @@ class _AppBottomBarState extends State { @override Widget build(BuildContext context) { - final _showFilterStateSheet = () { if (_filterStateController != null) { _filterStateController.close(); @@ -184,33 +182,33 @@ class _AppBottomBarState extends State { _filterCustom1Controller = Scaffold.of(context).showBottomSheet((context) { - return StoreConnector>( - converter: (Store store) => + return StoreConnector>( + converter: (Store store) => store.state.getListState(widget.entityType).custom1Filters, - builder: (BuildContext context, customFilters) { - return Container( - color: Theme.of(context).backgroundColor, - child: Column(mainAxisSize: MainAxisSize.min, children: [ - Column( - children: widget.customValues1.map((customField) { - return CheckboxListTile( - key: Key(customField.toString()), - title: Text(customField), - controlAffinity: ListTileControlAffinity.leading, - value: customFilters.contains(customField), - activeColor: Theme.of(context).accentColor, - dense: true, - onChanged: (value) { - widget.onSelectedCustom1(customField); - }, - ); - }).toList(), - ), - ]), - ); - }, + builder: (BuildContext context, customFilters) { + return Container( + color: Theme.of(context).backgroundColor, + child: Column(mainAxisSize: MainAxisSize.min, children: [ + Column( + children: widget.customValues1.map((customField) { + return CheckboxListTile( + key: Key(customField.toString()), + title: Text(customField), + controlAffinity: ListTileControlAffinity.leading, + value: customFilters.contains(customField), + activeColor: Theme.of(context).accentColor, + dense: true, + onChanged: (value) { + widget.onSelectedCustom1(customField); + }, + ); + }).toList(), + ), + ]), ); - }); + }, + ); + }); _filterCustom1Controller.closed.whenComplete(() { _filterCustom1Controller = null; @@ -225,33 +223,33 @@ class _AppBottomBarState extends State { _filterCustom2Controller = Scaffold.of(context).showBottomSheet((context) { - return StoreConnector>( - converter: (Store store) => + return StoreConnector>( + converter: (Store store) => store.state.getListState(widget.entityType).custom2Filters, - builder: (BuildContext context, customFilters) { - return Container( - color: Theme.of(context).backgroundColor, - child: Column(mainAxisSize: MainAxisSize.min, children: [ - Column( - children: widget.customValues2.map((customField) { - return CheckboxListTile( - key: Key(customField.toString()), - title: Text(customField), - controlAffinity: ListTileControlAffinity.leading, - value: customFilters.contains(customField), - activeColor: Theme.of(context).accentColor, - dense: true, - onChanged: (value) { - widget.onSelectedCustom2(customField); - }, - ); - }).toList(), - ), - ]), - ); - }, + builder: (BuildContext context, customFilters) { + return Container( + color: Theme.of(context).backgroundColor, + child: Column(mainAxisSize: MainAxisSize.min, children: [ + Column( + children: widget.customValues2.map((customField) { + return CheckboxListTile( + key: Key(customField.toString()), + title: Text(customField), + controlAffinity: ListTileControlAffinity.leading, + value: customFilters.contains(customField), + activeColor: Theme.of(context).accentColor, + dense: true, + onChanged: (value) { + widget.onSelectedCustom2(customField); + }, + ); + }).toList(), + ), + ]), ); - }); + }, + ); + }); _filterCustom2Controller.closed.whenComplete(() { _filterCustom2Controller = null; @@ -272,42 +270,46 @@ class _AppBottomBarState extends State { tooltip: AppLocalization.of(context).filter, icon: Icon(Icons.filter_list), onPressed: _showFilterStateSheet, - color: store.state - .getListState(widget.entityType) - .hasStateFilters + color: store.state.getListState(widget.entityType).hasStateFilters ? Theme.of(context).accentColor : null, ), - widget.statuses.isNotEmpty ? IconButton( - tooltip: AppLocalization.of(context).filter, - icon: Icon(Icons.filter), - onPressed: _showFilterStatusSheet, - color: store.state - .getListState(widget.entityType) - .hasStatusFilters - ? Theme.of(context).accentColor - : null, - ) : SizedBox(width: 0.0), - widget.customValues1.isNotEmpty ? IconButton( - tooltip: AppLocalization.of(context).filter, - icon: Icon(Icons.looks_one), - onPressed: _showFilterCustom1Sheet, - color: store.state - .getListState(widget.entityType) - .hasCustom1Filters - ? Theme.of(context).accentColor - : null, - ) : SizedBox(width: 0.0), - widget.customValues2.isNotEmpty ? IconButton( - tooltip: AppLocalization.of(context).filter, - icon: Icon(Icons.looks_two), - onPressed: _showFilterCustom2Sheet, - color: store.state - .getListState(widget.entityType) - .hasCustom2Filters - ? Theme.of(context).accentColor - : null, - ) : SizedBox(width: 0.0), + widget.statuses.isNotEmpty + ? IconButton( + tooltip: AppLocalization.of(context).filter, + icon: Icon(Icons.filter), + onPressed: _showFilterStatusSheet, + color: store.state + .getListState(widget.entityType) + .hasStatusFilters + ? Theme.of(context).accentColor + : null, + ) + : SizedBox(width: 0.0), + widget.customValues1.isNotEmpty + ? IconButton( + tooltip: AppLocalization.of(context).filter, + icon: Icon(Icons.looks_one), + onPressed: _showFilterCustom1Sheet, + color: store.state + .getListState(widget.entityType) + .hasCustom1Filters + ? Theme.of(context).accentColor + : null, + ) + : SizedBox(width: 0.0), + widget.customValues2.isNotEmpty + ? IconButton( + tooltip: AppLocalization.of(context).filter, + icon: Icon(Icons.looks_two), + onPressed: _showFilterCustom2Sheet, + color: store.state + .getListState(widget.entityType) + .hasCustom2Filters + ? Theme.of(context).accentColor + : null, + ) + : SizedBox(width: 0.0), ], ), ); diff --git a/lib/ui/app/app_drawer_vm.dart b/lib/ui/app/app_drawer_vm.dart index 551e01ab5..23da7b914 100644 --- a/lib/ui/app/app_drawer_vm.dart +++ b/lib/ui/app/app_drawer_vm.dart @@ -49,7 +49,8 @@ class AppDrawerVM { user: state.user, selectedCompany: state.selectedCompany, selectedCompanyIndex: state.uiState.selectedCompanyIndex.toString(), - onCompanyChanged: (BuildContext context, String companyIndex, CompanyEntity company) { + onCompanyChanged: + (BuildContext context, String companyIndex, CompanyEntity company) { store.dispatch(SelectCompany(int.parse(companyIndex), company)); AppBuilder.of(context).rebuild(); }, diff --git a/lib/ui/app/entity_dropdown.dart b/lib/ui/app/entity_dropdown.dart index ed510fc36..38fe0a4b2 100644 --- a/lib/ui/app/entity_dropdown.dart +++ b/lib/ui/app/entity_dropdown.dart @@ -18,7 +18,7 @@ class EntityDropdown extends StatefulWidget { this.autoValidate = false, this.initialValue, this.onAddPressed, - }) : super(key: key); + }) : super(key: key); final EntityType entityType; final BuiltMap entityMap; diff --git a/lib/ui/app/form_card.dart b/lib/ui/app/form_card.dart index 36b14f2f5..5f8240635 100644 --- a/lib/ui/app/form_card.dart +++ b/lib/ui/app/form_card.dart @@ -21,7 +21,7 @@ class FormCard extends StatelessWidget { width: double.infinity, child: Column( mainAxisSize: MainAxisSize.max, - crossAxisAlignment:CrossAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, children: children, ), ), diff --git a/lib/ui/app/forms/custom_field.dart b/lib/ui/app/forms/custom_field.dart index b31a13810..b52a8d64b 100644 --- a/lib/ui/app/forms/custom_field.dart +++ b/lib/ui/app/forms/custom_field.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; class CustomField extends StatelessWidget { - const CustomField({ @required this.controller, @required this.labelText, @@ -31,10 +30,12 @@ class CustomField extends StatelessWidget { ), ); } else { - final menuItems = options.map((option) => PopupMenuItem( - value: option, - child: Text(option), - )).toList(); + final menuItems = options + .map((option) => PopupMenuItem( + value: option, + child: Text(option), + )) + .toList(); return PopupMenuButton( padding: EdgeInsets.zero, diff --git a/lib/ui/app/icon_message.dart b/lib/ui/app/icon_message.dart index 95219aed1..1b9622f47 100644 --- a/lib/ui/app/icon_message.dart +++ b/lib/ui/app/icon_message.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; class IconMessage extends StatelessWidget { - const IconMessage(this.text); final String text; diff --git a/lib/ui/app/icon_text.dart b/lib/ui/app/icon_text.dart index 97b1f24f2..a6ba4c27c 100644 --- a/lib/ui/app/icon_text.dart +++ b/lib/ui/app/icon_text.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; class IconText extends StatelessWidget { - const IconText({this.text, this.icon}); final String text; final IconData icon; diff --git a/lib/ui/app/invoice/invoice_item_view.dart b/lib/ui/app/invoice/invoice_item_view.dart index 8e53945c2..91de16b5c 100644 --- a/lib/ui/app/invoice/invoice_item_view.dart +++ b/lib/ui/app/invoice/invoice_item_view.dart @@ -37,12 +37,14 @@ class InvoiceItemListTile extends StatelessWidget { } if (invoiceItem.taxRate1 != 0) { - final taxRate1 = formatNumber(invoiceItem.taxRate1, context, formatNumberType: FormatNumberType.percent); + final taxRate1 = formatNumber(invoiceItem.taxRate1, context, + formatNumberType: FormatNumberType.percent); subtitle += ' • $taxRate1 ${invoiceItem.taxName1}'; } if (invoiceItem.taxRate2 != 0) { - final taxRate2 = formatNumber(invoiceItem.taxRate2, context, formatNumberType: FormatNumberType.percent); + final taxRate2 = formatNumber(invoiceItem.taxRate2, context, + formatNumberType: FormatNumberType.percent); subtitle += ' • $taxRate2 ${invoiceItem.taxName2}'; } @@ -67,21 +69,22 @@ class InvoiceItemListTile extends StatelessWidget { child: Column( children: [ ListTile( - onTap: onTap, - title: Row( - children: [ - Expanded(child: Text(invoiceItem.productKey)), - Text(formatNumber(invoiceItem.total, context, - clientId: invoice.clientId)), - ], - ), - subtitle: Text(subtitle), - trailing: onTap != null ? Icon(Icons.navigate_next) : null, + onTap: onTap, + title: Row( + children: [ + Expanded(child: Text(invoiceItem.productKey)), + Text(formatNumber(invoiceItem.total, context, + clientId: invoice.clientId)), + ], + ), + subtitle: Text(subtitle), + trailing: onTap != null ? Icon(Icons.navigate_next) : null, + ), + Divider( + height: 1.0, ), - Divider(height: 1.0,), ], ), - ) - ); + )); } } diff --git a/lib/ui/app/invoice/tax_rate_dropdown.dart b/lib/ui/app/invoice/tax_rate_dropdown.dart index 3532bc8f5..801910081 100644 --- a/lib/ui/app/invoice/tax_rate_dropdown.dart +++ b/lib/ui/app/invoice/tax_rate_dropdown.dart @@ -53,8 +53,7 @@ class _TaxRateDropdownState extends State { } String _formatTaxRate(TaxRateEntity taxRate) { - return '${formatNumber(taxRate.rate, context, - formatNumberType: FormatNumberType.percent)} ${taxRate.name}'; + return '${formatNumber(taxRate.rate, context, formatNumberType: FormatNumberType.percent)} ${taxRate.name}'; } @override diff --git a/lib/ui/app/list_filter.dart b/lib/ui/app/list_filter.dart index 86e209d32..5c752ff91 100644 --- a/lib/ui/app/list_filter.dart +++ b/lib/ui/app/list_filter.dart @@ -21,7 +21,6 @@ class ListFilter extends StatefulWidget { } class _ListFilterState extends State { - final _filterController = TextEditingController(); @override @@ -55,7 +54,8 @@ class _ListFilterState extends State { : state.uiState.filter; final bool enableDarkMode = state.uiState.enableDarkMode; return filter == null - ? Text(widget.title ?? localization.lookup(entityType.plural.toString())) + ? Text(widget.title ?? + localization.lookup(entityType.plural.toString())) : Container( padding: const EdgeInsets.only(left: 8.0), height: 38.0, diff --git a/lib/ui/app/live_text.dart b/lib/ui/app/live_text.dart index 01d8bb6a3..cf5cc471d 100644 --- a/lib/ui/app/live_text.dart +++ b/lib/ui/app/live_text.dart @@ -18,7 +18,7 @@ class _LiveTextState extends State { void initState() { super.initState(); _timer = Timer.periodic(Duration(seconds: 1), - (Timer timer) => mounted ? setState(() => false) : false); + (Timer timer) => mounted ? setState(() => false) : false); } @override diff --git a/lib/ui/app/one_value_header.dart b/lib/ui/app/one_value_header.dart index 67d1d921d..9c287cdfc 100644 --- a/lib/ui/app/one_value_header.dart +++ b/lib/ui/app/one_value_header.dart @@ -44,8 +44,8 @@ class OneValueHeader extends StatelessWidget { child: Card( elevation: 2.0, child: Padding( - padding: EdgeInsets.all(16.0), - child: _value1(), + padding: EdgeInsets.all(16.0), + child: _value1(), ), ), ), diff --git a/lib/ui/auth/login_view.dart b/lib/ui/auth/login_view.dart index de81eba2e..1b600bdd1 100644 --- a/lib/ui/auth/login_view.dart +++ b/lib/ui/auth/login_view.dart @@ -15,7 +15,6 @@ class LoginView extends StatefulWidget { final LoginVM viewModel; - @override _LoginState createState() => _LoginState(); } @@ -35,8 +34,7 @@ class _LoginState extends State { static final ValueKey _passwordKey = Key(LoginKeys.password); static final ValueKey _urlKey = Key(LoginKeys.url); static final ValueKey _secretKey = Key(LoginKeys.secret); - static final ValueKey _oneTimePasswordKey = - Key(LoginKeys.oneTimePassword); + static final ValueKey _oneTimePasswordKey = Key(LoginKeys.oneTimePassword); final FocusNode _focusNode1 = new FocusNode(); diff --git a/lib/ui/auth/login_vm.dart b/lib/ui/auth/login_vm.dart index 19bba3094..550ccd97e 100644 --- a/lib/ui/auth/login_vm.dart +++ b/lib/ui/auth/login_vm.dart @@ -103,7 +103,7 @@ class LoginVM { return; } - if (url.isNotEmpty && ! url.startsWith('http')) { + if (url.isNotEmpty && !url.startsWith('http')) { url = 'https://' + url; } diff --git a/lib/ui/client/client_list_vm.dart b/lib/ui/client/client_list_vm.dart index 6701056b9..cf6d81876 100644 --- a/lib/ui/client/client_list_vm.dart +++ b/lib/ui/client/client_list_vm.dart @@ -83,8 +83,7 @@ class ClientListVM { final localization = AppLocalization.of(context); switch (action) { case EntityAction.edit: - store.dispatch( - EditClient(context: context, client: client)); + store.dispatch(EditClient(context: context, client: client)); break; case EntityAction.newInvoice: store.dispatch(EditInvoice( diff --git a/lib/ui/client/edit/client_edit.dart b/lib/ui/client/edit/client_edit.dart index 82a656993..4ffc45e26 100644 --- a/lib/ui/client/edit/client_edit.dart +++ b/lib/ui/client/edit/client_edit.dart @@ -52,9 +52,8 @@ class _ClientEditState extends State }, child: Scaffold( appBar: AppBar( - title: Text(client.isNew - ? localization.newClient - : localization.editClient), + title: Text( + client.isNew ? localization.newClient : localization.editClient), actions: [ ActionIconButton( icon: Icons.cloud_upload, @@ -63,7 +62,7 @@ class _ClientEditState extends State isDirty: client.isNew || client != viewModel.origClient, isSaving: viewModel.isSaving, onPressed: () { - if (! _formKey.currentState.validate()) { + if (!_formKey.currentState.validate()) { return; } viewModel.onSavePressed(context); @@ -122,4 +121,4 @@ class _ClientEditState extends State ), ); } -} \ No newline at end of file +} diff --git a/lib/ui/client/edit/client_edit_details.dart b/lib/ui/client/edit/client_edit_details.dart index d55a20dbe..8c1c05c86 100644 --- a/lib/ui/client/edit/client_edit_details.dart +++ b/lib/ui/client/edit/client_edit_details.dart @@ -19,7 +19,6 @@ class ClientEditDetails extends StatefulWidget { } class ClientEditDetailsState extends State { - final _nameController = TextEditingController(); final _idNumberController = TextEditingController(); final _vatNumberController = TextEditingController(); @@ -42,7 +41,8 @@ class ClientEditDetailsState extends State { _custom2Controller, ]; - _controllers.forEach((dynamic controller) => controller.removeListener(_onChanged)); + _controllers + .forEach((dynamic controller) => controller.removeListener(_onChanged)); final client = widget.viewModel.client; _nameController.text = client.name; @@ -53,7 +53,8 @@ class ClientEditDetailsState extends State { _custom1Controller.text = client.customValue1; _custom2Controller.text = client.customValue2; - _controllers.forEach((dynamic controller) => controller.addListener(_onChanged)); + _controllers + .forEach((dynamic controller) => controller.addListener(_onChanged)); super.didChangeDependencies(); } @@ -71,14 +72,13 @@ class ClientEditDetailsState extends State { void _onChanged() { final viewModel = widget.viewModel; final client = viewModel.client.rebuild((b) => b - ..name = _nameController.text.trim() - ..idNumber = _idNumberController.text.trim() - ..vatNumber = _vatNumberController.text.trim() - ..website = _websiteController.text.trim() - ..workPhone = _phoneController.text.trim() - ..customValue1 = _custom1Controller.text.trim() - ..customValue2 = _custom2Controller.text.trim() - ); + ..name = _nameController.text.trim() + ..idNumber = _idNumberController.text.trim() + ..vatNumber = _vatNumberController.text.trim() + ..website = _websiteController.text.trim() + ..workPhone = _phoneController.text.trim() + ..customValue1 = _custom1Controller.text.trim() + ..customValue2 = _custom2Controller.text.trim()); if (client != viewModel.client) { viewModel.onChanged(client); } @@ -101,14 +101,15 @@ class ClientEditDetailsState extends State { decoration: InputDecoration( labelText: localization.name, ), - validator: (String val) => ! viewModel.client.hasNameSet + validator: (String val) => !viewModel.client.hasNameSet ? AppLocalization.of(context).pleaseEnterAClientOrContactName : null, ), TextFormField( autocorrect: false, controller: _idNumberController, - decoration: InputDecoration(labelText: localization.idNumber, + decoration: InputDecoration( + labelText: localization.idNumber, ), ), TextFormField( diff --git a/lib/ui/client/view/client_view.dart b/lib/ui/client/view/client_view.dart index d350e4f5b..64502791e 100644 --- a/lib/ui/client/view/client_view.dart +++ b/lib/ui/client/view/client_view.dart @@ -142,8 +142,8 @@ class _ClientViewState extends State Navigator.of(context).pop(); store.dispatch(EditTask( task: TaskEntity( - isRunning: - store.state.uiState.autoStartTasks) + isRunning: store + .state.uiState.autoStartTasks) .rebuild((b) => b.clientId = client.id), context: context)); }, diff --git a/lib/ui/client/view/client_view_activity.dart b/lib/ui/client/view/client_view_activity.dart index 94cba72c4..268592ccf 100644 --- a/lib/ui/client/view/client_view_activity.dart +++ b/lib/ui/client/view/client_view_activity.dart @@ -10,7 +10,6 @@ class ClientViewActivity extends StatelessWidget { @override Widget build(BuildContext context) { - final activities = client.activities; if (activities.isEmpty) { @@ -24,6 +23,5 @@ class ClientViewActivity extends StatelessWidget { return ActivityListTile(activity: activity); }, ); - } } diff --git a/lib/ui/client/view/client_view_details.dart b/lib/ui/client/view/client_view_details.dart index 8d4361c05..d26d587b9 100644 --- a/lib/ui/client/view/client_view_details.dart +++ b/lib/ui/client/view/client_view_details.dart @@ -157,11 +157,10 @@ class _ClientViewDetailsState extends State { })); } - listTiles - .add(Padding( - padding: const EdgeInsets.all(14.0), - child: FutureBuilder(future: _launched, builder: _launchStatus), - )); + listTiles.add(Padding( + padding: const EdgeInsets.all(14.0), + child: FutureBuilder(future: _launched, builder: _launchStatus), + )); return listTiles; } @@ -203,8 +202,7 @@ class AppListTile extends StatelessWidget { onLongPress: () { Clipboard.setData(ClipboardData(text: copyValue ?? title)); Scaffold.of(context).showSnackBar(SnackBar( - content: Text(AppLocalization - .of(context) + content: Text(AppLocalization.of(context) .copiedToClipboard .replaceFirst(':value', copyValue ?? title)))); }, diff --git a/lib/ui/dashboard/dashboard_activity.dart b/lib/ui/dashboard/dashboard_activity.dart index c4621d479..773bfe4e1 100644 --- a/lib/ui/dashboard/dashboard_activity.dart +++ b/lib/ui/dashboard/dashboard_activity.dart @@ -28,4 +28,3 @@ class DashboardActivity extends StatelessWidget { ); } } - diff --git a/lib/ui/dashboard/dashboard_chart.dart b/lib/ui/dashboard/dashboard_chart.dart index 9c90053e6..6515cf85b 100644 --- a/lib/ui/dashboard/dashboard_chart.dart +++ b/lib/ui/dashboard/dashboard_chart.dart @@ -139,7 +139,8 @@ class _DashboardChartState extends State { }, child: Container( color: isSelected ? Colors.blue : theme.cardColor, - padding: EdgeInsets.only(left: 16, top: 16, right: 32, bottom: 8), + padding: + EdgeInsets.only(left: 16, top: 16, right: 32, bottom: 8), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ @@ -189,13 +190,12 @@ class _DashboardChartState extends State { children: [ Expanded( child: Text( - localization.average + - ': ' + - formatNumber(series.average, context, - currencyId: widget.currencyId), - style: - theme.textTheme.subhead, - ), + localization.average + + ': ' + + formatNumber(series.average, context, + currencyId: widget.currencyId), + style: theme.textTheme.subhead, + ), ), _selected != null ? Text( diff --git a/lib/ui/dashboard/dashboard_overview.dart b/lib/ui/dashboard/dashboard_overview.dart index 618ebb326..2598b15f8 100644 --- a/lib/ui/dashboard/dashboard_overview.dart +++ b/lib/ui/dashboard/dashboard_overview.dart @@ -3,7 +3,6 @@ import 'package:invoiceninja_flutter/ui/app/loading_indicator.dart'; import 'package:invoiceninja_flutter/ui/dashboard/dashboard_vm.dart'; class DashboardOverview extends StatelessWidget { - const DashboardOverview({ Key key, @required this.viewModel, diff --git a/lib/ui/dashboard/dashboard_screen.dart b/lib/ui/dashboard/dashboard_screen.dart index cbf5aaabb..2511389ed 100644 --- a/lib/ui/dashboard/dashboard_screen.dart +++ b/lib/ui/dashboard/dashboard_screen.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:invoiceninja_flutter/ui/dashboard/dashboard_vm.dart'; class DashboardScreen extends StatelessWidget { - static const String route = '/dashboard'; @override diff --git a/lib/ui/invoice/edit/invoice_edit_details.dart b/lib/ui/invoice/edit/invoice_edit_details.dart index 860b0f049..4e1594bf0 100644 --- a/lib/ui/invoice/edit/invoice_edit_details.dart +++ b/lib/ui/invoice/edit/invoice_edit_details.dart @@ -221,7 +221,8 @@ class InvoiceEditDetailsState extends State { decoration: InputDecoration( labelText: localization.discount, ), - keyboardType: TextInputType.numberWithOptions(decimal: true), + keyboardType: + TextInputType.numberWithOptions(decimal: true), ), ), const SizedBox( @@ -274,7 +275,8 @@ class InvoiceEditDetailsState extends State { labelText: company .getCustomFieldLabel(CustomFieldType.surcharge1), ), - keyboardType: TextInputType.numberWithOptions(decimal: true), + keyboardType: + TextInputType.numberWithOptions(decimal: true), ) : Container(), company.getCustomFieldLabel(CustomFieldType.surcharge2).isNotEmpty @@ -284,7 +286,8 @@ class InvoiceEditDetailsState extends State { labelText: company .getCustomFieldLabel(CustomFieldType.surcharge2), ), - keyboardType: TextInputType.numberWithOptions(decimal: true), + keyboardType: + TextInputType.numberWithOptions(decimal: true), ) : Container(), company.enableInvoiceTaxes diff --git a/lib/ui/invoice/edit/invoice_edit_notes_vm.dart b/lib/ui/invoice/edit/invoice_edit_notes_vm.dart index 40e992e06..9040ce7f7 100644 --- a/lib/ui/invoice/edit/invoice_edit_notes_vm.dart +++ b/lib/ui/invoice/edit/invoice_edit_notes_vm.dart @@ -43,10 +43,10 @@ class InvoiceEditNotesVM extends EntityEditNotesVM { InvoiceEntity invoice, Function(InvoiceEntity) onChanged, }) : super( - company: company, - invoice: invoice, - onChanged: onChanged, - ); + company: company, + invoice: invoice, + onChanged: onChanged, + ); factory InvoiceEditNotesVM.fromStore(Store store) { final AppState state = store.state; diff --git a/lib/ui/invoice/invoice_list_vm.dart b/lib/ui/invoice/invoice_list_vm.dart index 58980bbf8..eed5604fc 100644 --- a/lib/ui/invoice/invoice_list_vm.dart +++ b/lib/ui/invoice/invoice_list_vm.dart @@ -140,8 +140,7 @@ class InvoiceListVM extends EntityListVM { final localization = AppLocalization.of(context); switch (action) { case EntityAction.edit: - store.dispatch( - EditInvoice(context: context, invoice: invoice)); + store.dispatch(EditInvoice(context: context, invoice: invoice)); break; case EntityAction.pdf: viewPdf(invoice, context); diff --git a/lib/ui/payment/edit/payment_edit.dart b/lib/ui/payment/edit/payment_edit.dart index 5bfb931af..cba406e58 100644 --- a/lib/ui/payment/edit/payment_edit.dart +++ b/lib/ui/payment/edit/payment_edit.dart @@ -178,7 +178,8 @@ class _PaymentEditState extends State { ? TextFormField( controller: _amountController, autocorrect: false, - keyboardType: TextInputType.numberWithOptions(decimal: true), + keyboardType: + TextInputType.numberWithOptions(decimal: true), decoration: InputDecoration( labelText: localization.amount, ), diff --git a/lib/ui/payment/payment_list_vm.dart b/lib/ui/payment/payment_list_vm.dart index 0c2df1abe..904ac93ca 100644 --- a/lib/ui/payment/payment_list_vm.dart +++ b/lib/ui/payment/payment_list_vm.dart @@ -83,8 +83,7 @@ class PaymentListVM { final localization = AppLocalization.of(context); switch (action) { case EntityAction.edit: - store.dispatch( - EditPayment(context: context, payment: payment)); + store.dispatch(EditPayment(context: context, payment: payment)); break; case EntityAction.sendEmail: store.dispatch(EmailPaymentRequest( diff --git a/lib/ui/product/edit/product_edit.dart b/lib/ui/product/edit/product_edit.dart index 99e6e7094..aefa901b7 100644 --- a/lib/ui/product/edit/product_edit.dart +++ b/lib/ui/product/edit/product_edit.dart @@ -184,7 +184,8 @@ class _ProductEditState extends State { TextFormField( key: Key(ProductKeys.cost), controller: _costController, - keyboardType: TextInputType.numberWithOptions(decimal: true), + keyboardType: + TextInputType.numberWithOptions(decimal: true), decoration: InputDecoration( labelText: localization.cost, ), diff --git a/lib/ui/product/edit/product_edit_vm.dart b/lib/ui/product/edit/product_edit_vm.dart index 50c845784..8e2654856 100644 --- a/lib/ui/product/edit/product_edit_vm.dart +++ b/lib/ui/product/edit/product_edit_vm.dart @@ -77,8 +77,8 @@ class ProductEditVM { final localization = AppLocalization.of(context); switch (action) { case EntityAction.newInvoice: - final item = - convertProductToInvoiceItem(context: context, product: product); + final item = convertProductToInvoiceItem( + context: context, product: product); store.dispatch(EditInvoice( context: context, invoice: InvoiceEntity(company: state.selectedCompany) diff --git a/lib/ui/product/product_list_item.dart b/lib/ui/product/product_list_item.dart index 0f1299cb4..5d3ddede3 100644 --- a/lib/ui/product/product_list_item.dart +++ b/lib/ui/product/product_list_item.dart @@ -31,12 +31,14 @@ class ProductListItem extends StatelessWidget { child: ListTile( onTap: onTap, onLongPress: onLongPress, - leading: onCheckboxChanged != null ? Checkbox( - //key: NinjaKeys.productItemCheckbox(task.id), - value: isChecked, - onChanged: (value) => onCheckboxChanged(value), - activeColor: Theme.of(context).accentColor, - ) : null, + leading: onCheckboxChanged != null + ? Checkbox( + //key: NinjaKeys.productItemCheckbox(task.id), + value: isChecked, + onChanged: (value) => onCheckboxChanged(value), + activeColor: Theme.of(context).accentColor, + ) + : null, title: Container( width: MediaQuery.of(context).size.width, child: Row( diff --git a/lib/ui/project/edit/project_edit.dart b/lib/ui/project/edit/project_edit.dart index b825853d2..0578121a7 100644 --- a/lib/ui/project/edit/project_edit.dart +++ b/lib/ui/project/edit/project_edit.dart @@ -186,14 +186,16 @@ class _ProjectEditState extends State { }, ), TextFormField( - keyboardType: TextInputType.numberWithOptions(decimal: true), + keyboardType: + TextInputType.numberWithOptions(decimal: true), controller: _hoursController, decoration: InputDecoration( labelText: localization.budgetedHours, ), ), TextFormField( - keyboardType: TextInputType.numberWithOptions(decimal: true), + keyboardType: + TextInputType.numberWithOptions(decimal: true), controller: _taskRateController, decoration: InputDecoration( labelText: localization.taskRate, diff --git a/lib/ui/project/project_list_item.dart b/lib/ui/project/project_list_item.dart index 1f8a16021..902140487 100644 --- a/lib/ui/project/project_list_item.dart +++ b/lib/ui/project/project_list_item.dart @@ -6,7 +6,6 @@ import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:invoiceninja_flutter/ui/app/dismissible_entity.dart'; class ProjectListItem extends StatelessWidget { - const ProjectListItem({ @required this.user, @required this.onEntityAction, @@ -72,12 +71,13 @@ class ProjectListItem extends StatelessWidget { subtitle: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - subtitle != null && subtitle.isNotEmpty ? - Text( - subtitle, - maxLines: 3, - overflow: TextOverflow.ellipsis, - ) : Container(), + subtitle != null && subtitle.isNotEmpty + ? Text( + subtitle, + maxLines: 3, + overflow: TextOverflow.ellipsis, + ) + : Container(), EntityStateLabel(project), ], ), diff --git a/lib/ui/project/project_list_vm.dart b/lib/ui/project/project_list_vm.dart index d8083fc8c..d596f45d7 100644 --- a/lib/ui/project/project_list_vm.dart +++ b/lib/ui/project/project_list_vm.dart @@ -87,8 +87,7 @@ class ProjectListVM { onEntityAction: (context, project, action) { switch (action) { case EntityAction.edit: - store.dispatch( - EditProject(context: context, project: project)); + store.dispatch(EditProject(context: context, project: project)); break; case EntityAction.newInvoice: final items = diff --git a/lib/ui/project/view/project_view.dart b/lib/ui/project/view/project_view.dart index be7118014..2f7382756 100644 --- a/lib/ui/project/view/project_view.dart +++ b/lib/ui/project/view/project_view.dart @@ -31,7 +31,6 @@ class ProjectView extends StatefulWidget { } class _ProjectViewState extends State { - Timer _timer; @override diff --git a/lib/ui/quote/edit/quote_edit_details_vm.dart b/lib/ui/quote/edit/quote_edit_details_vm.dart index 3393836de..6e07e61c0 100644 --- a/lib/ui/quote/edit/quote_edit_details_vm.dart +++ b/lib/ui/quote/edit/quote_edit_details_vm.dart @@ -34,7 +34,6 @@ class QuoteEditDetailsScreen extends StatelessWidget { } class QuoteEditDetailsVM extends EntityEditDetailsVM { - QuoteEditDetailsVM({ CompanyEntity company, InvoiceEntity invoice, @@ -42,39 +41,39 @@ class QuoteEditDetailsVM extends EntityEditDetailsVM { BuiltMap clientMap, BuiltList clientList, Function(BuildContext context, Completer completer) - onAddClientPressed, + onAddClientPressed, }) : super( - company: company, - invoice: invoice, - onChanged: onChanged, - clientMap: clientMap, - clientList: clientList, - onAddClientPressed: onAddClientPressed, - ); - + company: company, + invoice: invoice, + onChanged: onChanged, + clientMap: clientMap, + clientList: clientList, + onAddClientPressed: onAddClientPressed, + ); factory QuoteEditDetailsVM.fromStore(Store store) { final AppState state = store.state; final quote = state.quoteUIState.editing; return QuoteEditDetailsVM( - company: state.selectedCompany, - invoice: quote, - onChanged: (InvoiceEntity quote) => - store.dispatch(UpdateQuote(quote)), - clientMap: state.clientState.map, - clientList: state.clientState.list, - onAddClientPressed: (context, completer) { - store.dispatch( - EditClient(client: ClientEntity(), context: context, completer: completer, trackRoute: false)); - completer.future.then((SelectableEntity client) { - Scaffold.of(context).showSnackBar(SnackBar( - content: SnackBarRow( - message: AppLocalization.of(context).createdClient, - ) - )); - }); - }, + company: state.selectedCompany, + invoice: quote, + onChanged: (InvoiceEntity quote) => store.dispatch(UpdateQuote(quote)), + clientMap: state.clientState.map, + clientList: state.clientState.list, + onAddClientPressed: (context, completer) { + store.dispatch(EditClient( + client: ClientEntity(), + context: context, + completer: completer, + trackRoute: false)); + completer.future.then((SelectableEntity client) { + Scaffold.of(context).showSnackBar(SnackBar( + content: SnackBarRow( + message: AppLocalization.of(context).createdClient, + ))); + }); + }, ); } -} \ No newline at end of file +} diff --git a/lib/ui/quote/edit/quote_edit_items_vm.dart b/lib/ui/quote/edit/quote_edit_items_vm.dart index 40d29565a..808df3d34 100644 --- a/lib/ui/quote/edit/quote_edit_items_vm.dart +++ b/lib/ui/quote/edit/quote_edit_items_vm.dart @@ -27,7 +27,6 @@ class QuoteEditItemsScreen extends StatelessWidget { } class QuoteEditItemsVM extends EntityEditItemsVM { - QuoteEditItemsVM({ CompanyEntity company, InvoiceEntity invoice, @@ -36,13 +35,13 @@ class QuoteEditItemsVM extends EntityEditItemsVM { Function onDoneInvoiceItemPressed, Function(InvoiceItemEntity, int) onChangedInvoiceItem, }) : super( - company: company, - invoice: invoice, - invoiceItem: invoiceItem, - onRemoveInvoiceItemPressed: onRemoveInvoiceItemPressed, - onDoneInvoiceItemPressed: onDoneInvoiceItemPressed, - onChangedInvoiceItem: onChangedInvoiceItem, - ); + company: company, + invoice: invoice, + invoiceItem: invoiceItem, + onRemoveInvoiceItemPressed: onRemoveInvoiceItemPressed, + onDoneInvoiceItemPressed: onDoneInvoiceItemPressed, + onChangedInvoiceItem: onChangedInvoiceItem, + ); factory QuoteEditItemsVM.fromStore(Store store) { final AppState state = store.state; @@ -56,8 +55,7 @@ class QuoteEditItemsVM extends EntityEditItemsVM { store.dispatch(DeleteQuoteItem(index)), onDoneInvoiceItemPressed: () => store.dispatch(EditQuoteItem()), onChangedInvoiceItem: (quoteItem, index) { - store.dispatch( - UpdateQuoteItem(quoteItem: quoteItem, index: index)); + store.dispatch(UpdateQuoteItem(quoteItem: quoteItem, index: index)); }); } } diff --git a/lib/ui/quote/edit/quote_edit_notes_vm.dart b/lib/ui/quote/edit/quote_edit_notes_vm.dart index ce5d1355b..5f0315bc7 100644 --- a/lib/ui/quote/edit/quote_edit_notes_vm.dart +++ b/lib/ui/quote/edit/quote_edit_notes_vm.dart @@ -32,10 +32,10 @@ class QuoteEditNotesVM extends EntityEditNotesVM { InvoiceEntity invoice, Function(InvoiceEntity) onChanged, }) : super( - company: company, - invoice: invoice, - onChanged: onChanged, - ); + company: company, + invoice: invoice, + onChanged: onChanged, + ); factory QuoteEditNotesVM.fromStore(Store store) { final AppState state = store.state; @@ -44,8 +44,7 @@ class QuoteEditNotesVM extends EntityEditNotesVM { return QuoteEditNotesVM( company: state.selectedCompany, invoice: quote, - onChanged: (InvoiceEntity quote) => - store.dispatch(UpdateQuote(quote)), + onChanged: (InvoiceEntity quote) => store.dispatch(UpdateQuote(quote)), ); } } diff --git a/lib/ui/quote/quote_email_vm.dart b/lib/ui/quote/quote_email_vm.dart index 1e4559704..20f98cdfe 100644 --- a/lib/ui/quote/quote_email_vm.dart +++ b/lib/ui/quote/quote_email_vm.dart @@ -42,8 +42,7 @@ class QuoteEmailScreen extends StatelessWidget { } } -class EmailQuoteVM extends EmailEntityVM{ - +class EmailQuoteVM extends EmailEntityVM { EmailQuoteVM({ bool isLoading, bool isSaving, @@ -51,17 +50,16 @@ class EmailQuoteVM extends EmailEntityVM{ InvoiceEntity invoice, ClientEntity client, Function(BuildContext, EmailTemplate, String, String) onSendPressed, - }): super( - isLoading: isLoading, - isSaving: isSaving, - company: company, - invoice: invoice, - client: client, - onSendPressed: onSendPressed, - ); + }) : super( + isLoading: isLoading, + isSaving: isSaving, + company: company, + invoice: invoice, + client: client, + onSendPressed: onSendPressed, + ); - factory EmailQuoteVM.fromStore( - Store store, InvoiceEntity quote) { + factory EmailQuoteVM.fromStore(Store store, InvoiceEntity quote) { final state = store.state; return EmailQuoteVM( diff --git a/lib/ui/quote/quote_list_vm.dart b/lib/ui/quote/quote_list_vm.dart index 66797ddb3..a3ecce7ec 100644 --- a/lib/ui/quote/quote_list_vm.dart +++ b/lib/ui/quote/quote_list_vm.dart @@ -103,8 +103,7 @@ class QuoteListVM extends EntityListVM { final localization = AppLocalization.of(context); switch (action) { case EntityAction.edit: - store.dispatch( - EditQuote(context: context, quote: quote)); + store.dispatch(EditQuote(context: context, quote: quote)); break; case EntityAction.pdf: viewPdf(quote, context); diff --git a/lib/ui/quote/quote_screen.dart b/lib/ui/quote/quote_screen.dart index 4d46b21e8..6a0a3754e 100644 --- a/lib/ui/quote/quote_screen.dart +++ b/lib/ui/quote/quote_screen.dart @@ -105,8 +105,7 @@ class QuoteScreen extends StatelessWidget { quote: InvoiceEntity(company: company, isQuote: true) .rebuild((b) => b ..clientId = - store.state.quoteListState.filterEntityId ?? - 0), + store.state.quoteListState.filterEntityId ?? 0), context: context)); }, child: Icon( diff --git a/lib/ui/task/edit/task_edit.dart b/lib/ui/task/edit/task_edit.dart index d903a0c71..2c9667aa1 100644 --- a/lib/ui/task/edit/task_edit.dart +++ b/lib/ui/task/edit/task_edit.dart @@ -22,7 +22,6 @@ class TaskEdit extends StatefulWidget { class _TaskEditState extends State with SingleTickerProviderStateMixin { - Timer _timer; TabController _controller; @@ -127,14 +126,15 @@ class _TaskEditState extends State floatingActionButton: task.isInvoiced || task.isDeleted ? SizedBox() : FloatingActionButton( - backgroundColor: Theme.of(context).primaryColorDark, - onPressed: () => viewModel.onFabPressed(), - child: Icon( - task.isRunning ? Icons.stop : Icons.play_arrow, - color: Colors.white, - ), - tooltip: task.isRunning ? localization.stop : localization.start, - ), + backgroundColor: Theme.of(context).primaryColorDark, + onPressed: () => viewModel.onFabPressed(), + child: Icon( + task.isRunning ? Icons.stop : Icons.play_arrow, + color: Colors.white, + ), + tooltip: + task.isRunning ? localization.stop : localization.start, + ), ), ); } diff --git a/lib/ui/task/edit/task_edit_details.dart b/lib/ui/task/edit/task_edit_details.dart index ef90f2de6..d87d172ab 100644 --- a/lib/ui/task/edit/task_edit_details.dart +++ b/lib/ui/task/edit/task_edit_details.dart @@ -127,21 +127,23 @@ class _TaskEditDetailsState extends State { ) : SizedBox(), // TODO Remove isNotEmpty check in v2 - company.taskStatusMap.isNotEmpty ? EntityDropdown( - entityType: EntityType.taskStatus, - labelText: localization.status, - initialValue: (company.taskStatusMap[task.taskStatusId] ?? - TaskStatusEntity()) - .name, - entityMap: company.taskStatusMap, - entityList: company.taskStatusMap.keys.toList(), - onSelected: (selected) { - final taskStatus = selected as TaskStatusEntity; - viewModel.onChanged(task.rebuild((b) => b - ..taskStatusId = taskStatus.id - ..taskStatusSortOrder = 9999)); - }, - ) : SizedBox(), + company.taskStatusMap.isNotEmpty + ? EntityDropdown( + entityType: EntityType.taskStatus, + labelText: localization.status, + initialValue: (company.taskStatusMap[task.taskStatusId] ?? + TaskStatusEntity()) + .name, + entityMap: company.taskStatusMap, + entityList: company.taskStatusMap.keys.toList(), + onSelected: (selected) { + final taskStatus = selected as TaskStatusEntity; + viewModel.onChanged(task.rebuild((b) => b + ..taskStatusId = taskStatus.id + ..taskStatusSortOrder = 9999)); + }, + ) + : SizedBox(), TextFormField( maxLines: 4, controller: _descriptionController, diff --git a/lib/ui/task/task_list_item.dart b/lib/ui/task/task_list_item.dart index 73abfca88..4b36d31e9 100644 --- a/lib/ui/task/task_list_item.dart +++ b/lib/ui/task/task_list_item.dart @@ -112,9 +112,7 @@ class TaskListItem extends StatelessWidget { style: TextStyle( color: task.isInvoiced ? Colors.green - : task.isRunning - ? Colors.blue - : Colors.grey, + : task.isRunning ? Colors.blue : Colors.grey, )), ], ), diff --git a/lib/ui/task/task_list_vm.dart b/lib/ui/task/task_list_vm.dart index 80f06b10f..78b7a3ee3 100644 --- a/lib/ui/task/task_list_vm.dart +++ b/lib/ui/task/task_list_vm.dart @@ -102,8 +102,7 @@ class TaskListVM { onEntityAction: (context, task, action) { switch (action) { case EntityAction.edit: - store.dispatch( - EditTask(context: context, task: task)); + store.dispatch(EditTask(context: context, task: task)); break; case EntityAction.start: case EntityAction.stop: diff --git a/lib/ui/task/task_time_view.dart b/lib/ui/task/task_time_view.dart index f630ce5ee..13fd47157 100644 --- a/lib/ui/task/task_time_view.dart +++ b/lib/ui/task/task_time_view.dart @@ -23,16 +23,16 @@ class TaskTimeListTile extends StatelessWidget { final startDateString = formatDate( taskTime.startDate.toIso8601String(), context, showTime: true, showDate: false); - final endDateString = taskTime.endDate != null ? formatDate( - taskTime.endDate.toIso8601String(), context, - showTime: true, showDate: false) : AppLocalization.of(context).now; + final endDateString = taskTime.endDate != null + ? formatDate(taskTime.endDate.toIso8601String(), context, + showTime: true, showDate: false) + : AppLocalization.of(context).now; final state = StoreProvider.of(context).state; final title = DateFormat('EEE MMM d, yyy', localeSelector(state)) .format(taskTime.startDate); final subtitle = '$startDateString - $endDateString'; - final duration = - formatDuration(taskTime.duration); + final duration = formatDuration(taskTime.duration); return Material( color: Theme.of(context).canvasColor, diff --git a/lib/ui/vendor/edit/vendor_edit.dart b/lib/ui/vendor/edit/vendor_edit.dart index d43d490fa..5f250d019 100644 --- a/lib/ui/vendor/edit/vendor_edit.dart +++ b/lib/ui/vendor/edit/vendor_edit.dart @@ -21,56 +21,52 @@ class _VendorEditState extends State { static final GlobalKey _formKey = GlobalKey(); // STARTER: controllers - do not remove comment -final _nameController = TextEditingController(); + final _nameController = TextEditingController(); -final _address1Controller = TextEditingController(); + final _address1Controller = TextEditingController(); -final _address2Controller = TextEditingController(); + final _address2Controller = TextEditingController(); -final _cityController = TextEditingController(); + final _cityController = TextEditingController(); -final _stateController = TextEditingController(); - -final _postalCodeController = TextEditingController(); + final _stateController = TextEditingController(); + final _postalCodeController = TextEditingController(); List _controllers = []; @override void didChangeDependencies() { - _controllers = [ // STARTER: array - do not remove comment -_nameController, + _nameController, -_address1Controller, + _address1Controller, -_address2Controller, + _address2Controller, -_cityController, + _cityController, -_stateController, - -_postalCodeController, + _stateController, + _postalCodeController, ]; _controllers.forEach((controller) => controller.removeListener(_onChanged)); final vendor = widget.viewModel.vendor; // STARTER: read value - do not remove comment -_nameController.text = vendor.name; + _nameController.text = vendor.name; -_address1Controller.text = vendor.address1; + _address1Controller.text = vendor.address1; -_address2Controller.text = vendor.address2; + _address2Controller.text = vendor.address2; -_cityController.text = vendor.city; + _cityController.text = vendor.city; -_stateController.text = vendor.state; - -_postalCodeController.text = vendor.postalCode; + _stateController.text = vendor.state; + _postalCodeController.text = vendor.postalCode; _controllers.forEach((controller) => controller.addListener(_onChanged)); @@ -90,19 +86,12 @@ _postalCodeController.text = vendor.postalCode; void _onChanged() { final vendor = widget.viewModel.vendor.rebuild((b) => b // STARTER: set value - do not remove comment -..name = _nameController.text.trim() - -..address1 = _address1Controller.text.trim() - -..address2 = _address2Controller.text.trim() - -..city = _cityController.text.trim() - -..state = _stateController.text.trim() - -..postalCode = _postalCodeController.text.trim() - - ); + ..name = _nameController.text.trim() + ..address1 = _address1Controller.text.trim() + ..address2 = _address2Controller.text.trim() + ..city = _cityController.text.trim() + ..state = _stateController.text.trim() + ..postalCode = _postalCodeController.text.trim()); if (vendor != widget.viewModel.vendor) { widget.viewModel.onChanged(vendor); } @@ -125,19 +114,19 @@ _postalCodeController.text = vendor.postalCode; ? localization.newVendor : localization.editVendor), actions: [ - ActionIconButton( - icon: Icons.cloud_upload, - tooltip: localization.save, - isVisible: !vendor.isDeleted, - isDirty: vendor.isNew || vendor != viewModel.origVendor, - isSaving: viewModel.isSaving, - onPressed: () { - if (! _formKey.currentState.validate()) { - return; - } - viewModel.onSavePressed(context); - }, - ), + ActionIconButton( + icon: Icons.cloud_upload, + tooltip: localization.save, + isVisible: !vendor.isDeleted, + isDirty: vendor.isNew || vendor != viewModel.origVendor, + isSaving: viewModel.isSaving, + onPressed: () { + if (!_formKey.currentState.validate()) { + return; + } + viewModel.onSavePressed(context); + }, + ), ], ), body: Form( @@ -148,60 +137,58 @@ _postalCodeController.text = vendor.postalCode; FormCard( children: [ // STARTER: widgets - do not remove comment -TextFormField( -controller: _nameController, -autocorrect: false, -decoration: InputDecoration( -labelText: 'Name', -), -), + TextFormField( + controller: _nameController, + autocorrect: false, + decoration: InputDecoration( + labelText: 'Name', + ), + ), -TextFormField( -controller: _address1Controller, -autocorrect: false, -decoration: InputDecoration( -labelText: 'Address1', -), -), + TextFormField( + controller: _address1Controller, + autocorrect: false, + decoration: InputDecoration( + labelText: 'Address1', + ), + ), -TextFormField( -controller: _address2Controller, -autocorrect: false, -decoration: InputDecoration( -labelText: 'Address2', -), -), + TextFormField( + controller: _address2Controller, + autocorrect: false, + decoration: InputDecoration( + labelText: 'Address2', + ), + ), -TextFormField( -controller: _cityController, -autocorrect: false, -decoration: InputDecoration( -labelText: 'City', -), -), + TextFormField( + controller: _cityController, + autocorrect: false, + decoration: InputDecoration( + labelText: 'City', + ), + ), -TextFormField( -controller: _stateController, -autocorrect: false, -decoration: InputDecoration( -labelText: 'State', -), -), - -TextFormField( -controller: _postalCodeController, -autocorrect: false, -decoration: InputDecoration( -labelText: 'PostalCode', -), -), + TextFormField( + controller: _stateController, + autocorrect: false, + decoration: InputDecoration( + labelText: 'State', + ), + ), + TextFormField( + controller: _postalCodeController, + autocorrect: false, + decoration: InputDecoration( + labelText: 'PostalCode', + ), + ), ], ), ], ); - }) - ), + })), ), ); } diff --git a/lib/ui/vendor/edit/vendor_edit_vm.dart b/lib/ui/vendor/edit/vendor_edit_vm.dart index db1899b56..edda01760 100644 --- a/lib/ui/vendor/edit/vendor_edit_vm.dart +++ b/lib/ui/vendor/edit/vendor_edit_vm.dart @@ -61,27 +61,29 @@ class VendorEditVM { }, onBackPressed: () { if (state.uiState.currentRoute.contains(VendorScreen.route)) { - store.dispatch(UpdateCurrentRoute(vendor.isNew ? VendorScreen.route : VendorViewScreen.route)); + store.dispatch(UpdateCurrentRoute( + vendor.isNew ? VendorScreen.route : VendorViewScreen.route)); } }, onSavePressed: (BuildContext context) { final Completer completer = new Completer(); store.dispatch(SaveVendorRequest(completer: completer, vendor: vendor)); return completer.future.then((_) { - return completer.future.then((savedVendor) { - store.dispatch(UpdateCurrentRoute(VendorViewScreen.route)); - if (vendor.isNew) { - Navigator.of(context).pushReplacementNamed(VendorViewScreen.route); - } else { - Navigator.of(context).pop(savedVendor); - } - }).catchError((Object error) { - showDialog( - context: context, - builder: (BuildContext context) { - return ErrorDialog(error); - }); - }); + return completer.future.then((savedVendor) { + store.dispatch(UpdateCurrentRoute(VendorViewScreen.route)); + if (vendor.isNew) { + Navigator.of(context) + .pushReplacementNamed(VendorViewScreen.route); + } else { + Navigator.of(context).pop(savedVendor); + } + }).catchError((Object error) { + showDialog( + context: context, + builder: (BuildContext context) { + return ErrorDialog(error); + }); + }); }); }, ); diff --git a/lib/ui/vendor/vendor_list.dart b/lib/ui/vendor/vendor_list.dart index a4630f3d5..237f09302 100644 --- a/lib/ui/vendor/vendor_list.dart +++ b/lib/ui/vendor/vendor_list.dart @@ -16,8 +16,7 @@ class VendorList extends StatelessWidget { final VendorListVM viewModel; - void _showMenu( - BuildContext context, VendorEntity vendor) async { + void _showMenu(BuildContext context, VendorEntity vendor) async { if (vendor == null) { return; } @@ -64,60 +63,57 @@ class VendorList extends StatelessWidget { return Column( children: [ - - Expanded( - child: !viewModel.isLoaded - ? LoadingIndicator() - : RefreshIndicator( - onRefresh: () => viewModel.onRefreshed(context), - child: viewModel.vendorList.isEmpty - ? Opacity( - opacity: 0.5, - child: Center( - child: Text( - AppLocalization.of(context).noRecordsFound, - style: TextStyle( - fontSize: 18.0, - ), - ), - ), - ) - : ListView.builder( - shrinkWrap: true, - itemCount: viewModel.vendorList.length, - itemBuilder: (BuildContext context, index) { - final vendorId = viewModel.vendorList[index]; - final vendor = viewModel.vendorMap[vendorId]; - return Column( - children: [ - VendorListItem( - user: viewModel.user, - filter: viewModel.filter, - vendor: vendor, - onTap: () => - viewModel.onVendorTap(context, vendor), - onEntityAction: (EntityAction action) { - if (action == EntityAction.more) { - _showMenu(context, vendor); - } else { - viewModel.onEntityAction( - context, vendor, action); - } - }, - onLongPress: () => - _showMenu(context, vendor), - ), - Divider( - height: 1.0, - ), - ], - ); - }, + Expanded( + child: !viewModel.isLoaded + ? LoadingIndicator() + : RefreshIndicator( + onRefresh: () => viewModel.onRefreshed(context), + child: viewModel.vendorList.isEmpty + ? Opacity( + opacity: 0.5, + child: Center( + child: Text( + AppLocalization.of(context).noRecordsFound, + style: TextStyle( + fontSize: 18.0, ), - ), - ), + ), + ), + ) + : ListView.builder( + shrinkWrap: true, + itemCount: viewModel.vendorList.length, + itemBuilder: (BuildContext context, index) { + final vendorId = viewModel.vendorList[index]; + final vendor = viewModel.vendorMap[vendorId]; + return Column( + children: [ + VendorListItem( + user: viewModel.user, + filter: viewModel.filter, + vendor: vendor, + onTap: () => + viewModel.onVendorTap(context, vendor), + onEntityAction: (EntityAction action) { + if (action == EntityAction.more) { + _showMenu(context, vendor); + } else { + viewModel.onEntityAction( + context, vendor, action); + } + }, + onLongPress: () => _showMenu(context, vendor), + ), + Divider( + height: 1.0, + ), + ], + ); + }, + ), + ), + ), - /* filteredClient != null ? Material( diff --git a/lib/ui/vendor/vendor_list_item.dart b/lib/ui/vendor/vendor_list_item.dart index a06bc6859..20e675f04 100644 --- a/lib/ui/vendor/vendor_list_item.dart +++ b/lib/ui/vendor/vendor_list_item.dart @@ -6,7 +6,6 @@ import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:invoiceninja_flutter/ui/app/dismissible_entity.dart'; class VendorListItem extends StatelessWidget { - const VendorListItem({ @required this.user, @required this.onEntityAction, @@ -70,12 +69,13 @@ class VendorListItem extends StatelessWidget { subtitle: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - subtitle != null && subtitle.isNotEmpty ? - Text( - subtitle, - maxLines: 3, - overflow: TextOverflow.ellipsis, - ) : Container(), + subtitle != null && subtitle.isNotEmpty + ? Text( + subtitle, + maxLines: 3, + overflow: TextOverflow.ellipsis, + ) + : Container(), EntityStateLabel(vendor), ], ), diff --git a/lib/ui/vendor/vendor_list_vm.dart b/lib/ui/vendor/vendor_list_vm.dart index 1abbaa712..3cfc9f4a7 100644 --- a/lib/ui/vendor/vendor_list_vm.dart +++ b/lib/ui/vendor/vendor_list_vm.dart @@ -61,55 +61,52 @@ class VendorListVM { final state = store.state; return VendorListVM( - user: state.user, - listState: state.vendorListState, - vendorList: memoizedFilteredVendorList(state.vendorState.map, - state.vendorState.list, state.vendorListState), - vendorMap: state.vendorState.map, - isLoading: state.isLoading, - isLoaded: state.vendorState.isLoaded, - filter: state.vendorUIState.listUIState.filter, - onClearEntityFilterPressed: () => - store.dispatch(FilterVendorsByEntity()), - onViewEntityFilterPressed: (BuildContext context) => store.dispatch( - ViewClient( - clientId: state.vendorListState.filterEntityId, - context: context)), - onVendorTap: (context, vendor) { - store.dispatch(ViewVendor(vendorId: vendor.id, context: context)); - }, - onEntityAction: (context, vendor, action) { - switch (action) { + user: state.user, + listState: state.vendorListState, + vendorList: memoizedFilteredVendorList( + state.vendorState.map, state.vendorState.list, state.vendorListState), + vendorMap: state.vendorState.map, + isLoading: state.isLoading, + isLoaded: state.vendorState.isLoaded, + filter: state.vendorUIState.listUIState.filter, + onClearEntityFilterPressed: () => store.dispatch(FilterVendorsByEntity()), + onViewEntityFilterPressed: (BuildContext context) => store.dispatch( + ViewClient( + clientId: state.vendorListState.filterEntityId, + context: context)), + onVendorTap: (context, vendor) { + store.dispatch(ViewVendor(vendorId: vendor.id, context: context)); + }, + onEntityAction: (context, vendor, action) { + switch (action) { case EntityAction.edit: - store.dispatch( - EditVendor(context: context, vendor: vendor)); - break; - case EntityAction.clone: - Navigator.of(context).pop(); - store.dispatch( - EditVendor(context: context, vendor: vendor.clone)); - break; - case EntityAction.restore: - store.dispatch(RestoreVendorRequest( - snackBarCompleter( - context, AppLocalization.of(context).restoredVendor), - vendor.id)); - break; - case EntityAction.archive: - store.dispatch(ArchiveVendorRequest( - snackBarCompleter( - context, AppLocalization.of(context).archivedVendor), - vendor.id)); - break; - case EntityAction.delete: - store.dispatch(DeleteVendorRequest( - snackBarCompleter( - context, AppLocalization.of(context).deletedVendor), - vendor.id)); - break; - } - }, - onRefreshed: (context) => _handleRefresh(context), + store.dispatch(EditVendor(context: context, vendor: vendor)); + break; + case EntityAction.clone: + Navigator.of(context).pop(); + store.dispatch(EditVendor(context: context, vendor: vendor.clone)); + break; + case EntityAction.restore: + store.dispatch(RestoreVendorRequest( + snackBarCompleter( + context, AppLocalization.of(context).restoredVendor), + vendor.id)); + break; + case EntityAction.archive: + store.dispatch(ArchiveVendorRequest( + snackBarCompleter( + context, AppLocalization.of(context).archivedVendor), + vendor.id)); + break; + case EntityAction.delete: + store.dispatch(DeleteVendorRequest( + snackBarCompleter( + context, AppLocalization.of(context).deletedVendor), + vendor.id)); + break; + } + }, + onRefreshed: (context) => _handleRefresh(context), ); } @@ -125,5 +122,4 @@ class VendorListVM { final Function(BuildContext, VendorEntity, EntityAction) onEntityAction; final Function onClearEntityFilterPressed; final Function(BuildContext) onViewEntityFilterPressed; - } diff --git a/lib/ui/vendor/view/vendor_view_details.dart b/lib/ui/vendor/view/vendor_view_details.dart index ddde3bfa1..f7b5e12bb 100644 --- a/lib/ui/vendor/view/vendor_view_details.dart +++ b/lib/ui/vendor/view/vendor_view_details.dart @@ -157,11 +157,10 @@ class _VendorViewDetailsState extends State { })); } - listTiles - .add(Padding( - padding: const EdgeInsets.all(14.0), - child: FutureBuilder(future: _launched, builder: _launchStatus), - )); + listTiles.add(Padding( + padding: const EdgeInsets.all(14.0), + child: FutureBuilder(future: _launched, builder: _launchStatus), + )); return listTiles; } @@ -203,8 +202,7 @@ class AppListTile extends StatelessWidget { onLongPress: () { Clipboard.setData(ClipboardData(text: copyValue ?? title)); Scaffold.of(context).showSnackBar(SnackBar( - content: Text(AppLocalization - .of(context) + content: Text(AppLocalization.of(context) .copiedToClipboard .replaceFirst(':value', copyValue ?? title)))); }, diff --git a/lib/ui/vendor/view/vendor_view_vm.dart b/lib/ui/vendor/view/vendor_view_vm.dart index 854b558a3..fedb8a0e2 100644 --- a/lib/ui/vendor/view/vendor_view_vm.dart +++ b/lib/ui/vendor/view/vendor_view_vm.dart @@ -34,7 +34,6 @@ class VendorViewScreen extends StatelessWidget { } class VendorViewVM { - VendorViewVM({ @required this.state, @required this.vendor, @@ -73,8 +72,8 @@ class VendorViewVM { completer.future.then((client) { Scaffold.of(context).showSnackBar(SnackBar( content: SnackBarRow( - message: AppLocalization.of(context).updatedVendor, - ))); + message: AppLocalization.of(context).updatedVendor, + ))); }); }, onRefreshed: (context) => _handleRefresh(context), diff --git a/lib/utils/dates.dart b/lib/utils/dates.dart index b1a6de06f..d048b1eaa 100644 --- a/lib/utils/dates.dart +++ b/lib/utils/dates.dart @@ -48,4 +48,4 @@ DateTime addMonths(DateTime dateTime, int offset) { dateTime.millisecond, dateTime.microsecond); } -} \ No newline at end of file +} diff --git a/lib/utils/keys.dart b/lib/utils/keys.dart index 59037d318..874bcf96f 100644 --- a/lib/utils/keys.dart +++ b/lib/utils/keys.dart @@ -26,4 +26,4 @@ class ProductKeys { static const String productKey = 'productKey'; static const String notes = 'productNotes'; static const String cost = 'productCost'; -} \ No newline at end of file +} diff --git a/lib/utils/localization.dart b/lib/utils/localization.dart index 845b73e18..c7ce2e59c 100644 --- a/lib/utils/localization.dart +++ b/lib/utils/localization.dart @@ -11676,8 +11676,6 @@ class AppLocalization { String get products => _localizedValues[locale.toString()]['products']; - - String get newProduct => _localizedValues[locale.toString()]['new_product']; String get createdProduct => @@ -11695,7 +11693,6 @@ class AppLocalization { String get restoredProduct => _localizedValues[locale.toString()]['restored_product']; - String get newVendor => _localizedValues[locale.toString()]['new_vendor']; String get createdVendor => @@ -11713,8 +11710,6 @@ class AppLocalization { String get restoredVendor => _localizedValues[locale.toString()]['restored_vendor']; - - String get newExpense => _localizedValues[locale.toString()]['new_expense']; String get createdExpense => @@ -11732,8 +11727,6 @@ class AppLocalization { String get restoredExpense => _localizedValues[locale.toString()]['restored_expense']; - - String get productKey => _localizedValues[locale.toString()]['product_key']; String get notes => _localizedValues[locale.toString()]['notes']; diff --git a/lib/utils/pdf.dart b/lib/utils/pdf.dart index 49c72f189..0751f1b3a 100644 --- a/lib/utils/pdf.dart +++ b/lib/utils/pdf.dart @@ -6,7 +6,6 @@ import 'package:url_launcher/url_launcher.dart'; //import 'package:flutter_plugin_pdf_viewer/flutter_plugin_pdf_viewer.dart'; Future viewPdf(InvoiceEntity invoice, BuildContext context) async { - /* final navigator = Navigator.of(context); navigator.push( @@ -71,4 +70,4 @@ class _PDFScreenState extends State { ); } } -*/ \ No newline at end of file +*/