diff --git a/lib/redux/app/app_state.dart b/lib/redux/app/app_state.dart index 781a4c449..c7312ba8a 100644 --- a/lib/redux/app/app_state.dart +++ b/lib/redux/app/app_state.dart @@ -389,7 +389,8 @@ abstract class AppState implements Built { //return 'Products: ' + productState.list.map((productId) => productState.map[productId].archivedAt).toList().join('-'); //return 'resetCounterFrequencyId: ${settingsUIState.settings.resetCounterFrequencyId}'; //return 'Fields: ${uiState.settingsUIState.company.customFields} - ${company.customFields}'; - return 'Custom: ${uiState.settingsUIState.company.settings.customValue1} - ${company.settings.customValue1}'; + //return 'Custom: ${uiState.settingsUIState.company.settings.customValue1} - ${company.settings.customValue1}'; + return 'Logo: ${company.settings.companyLogo}'; return 'Route: ${uiState.currentRoute} Prev: ${uiState.previousRoute}'; } } diff --git a/lib/ui/settings/company_details.dart b/lib/ui/settings/company_details.dart index fa2915fb0..7f1b9bf2c 100644 --- a/lib/ui/settings/company_details.dart +++ b/lib/ui/settings/company_details.dart @@ -333,7 +333,7 @@ class _CompanyDetailsState extends State label: localization.delete, icon: Icons.delete, onPressed: () { - viewModel.onUploadLogo(context, null); + viewModel.onDeleteLogo(context); }, ), ), diff --git a/lib/ui/settings/company_details_vm.dart b/lib/ui/settings/company_details_vm.dart index c14eecbc3..a83ea9f18 100644 --- a/lib/ui/settings/company_details_vm.dart +++ b/lib/ui/settings/company_details_vm.dart @@ -42,6 +42,7 @@ class CompanyDetailsVM { @required this.onSettingsChanged, @required this.onSavePressed, @required this.onUploadLogo, + @required this.onDeleteLogo, }); static CompanyDetailsVM fromStore(Store store) { @@ -55,6 +56,38 @@ class CompanyDetailsVM { store.dispatch(UpdateSettings(settings: settings)), onCompanyChanged: (company) => store.dispatch(UpdateCompany(company: company)), + onDeleteLogo: (context) { + final settingsUIState = state.uiState.settingsUIState; + switch (settingsUIState.entityType) { + case EntityType.company: + final completer = snackBarCompleter( + context, AppLocalization.of(context).deletedLogo); + store.dispatch(SaveCompanyRequest( + completer: completer, + company: settingsUIState.company + .rebuild((b) => b..settings.companyLogo = null), + )); + break; + case EntityType.group: + final completer = snackBarCompleter( + context, AppLocalization.of(context).deletedLogo); + store.dispatch(SaveGroupRequest( + completer: completer, + group: settingsUIState.group + .rebuild((b) => b..settings.companyLogo = null), + )); + break; + case EntityType.client: + final completer = snackBarCompleter( + context, AppLocalization.of(context).deletedLogo); + store.dispatch(SaveClientRequest( + completer: completer, + client: settingsUIState.client + .rebuild((b) => b..settings.companyLogo = null), + )); + break; + } + }, onSavePressed: (context) { final settingsUIState = state.uiState.settingsUIState; switch (settingsUIState.entityType) { @@ -95,4 +128,5 @@ class CompanyDetailsVM { final Function(CompanyEntity) onCompanyChanged; final Function(BuildContext) onSavePressed; final Function(BuildContext, String) onUploadLogo; + final Function(BuildContext) onDeleteLogo; } diff --git a/lib/utils/i18n.dart b/lib/utils/i18n.dart index ad72cc3a5..14845da9f 100644 --- a/lib/utils/i18n.dart +++ b/lib/utils/i18n.dart @@ -14,6 +14,7 @@ abstract class LocaleCodeAware { mixin LocalizationsProvider on LocaleCodeAware { static final Map> _localizedValues = { 'en': { + 'deleted_logo': 'Successfully deleted logo', 'yes': 'Yes', 'no': 'No', 'generate_number': 'Generate Number', @@ -15793,6 +15794,8 @@ mixin LocalizationsProvider on LocaleCodeAware { String get no => _localizedValues[localeCode]['no']; + String get deletedLogo => _localizedValues[localeCode]['deleted_logo']; + String lookup(String key) { final lookupKey = toSnakeCase(key); return _localizedValues[localeCode][lookupKey] ??