From d69b9f62a9fa3573dfef8a369097ce572eb009e4 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Mon, 18 Sep 2023 08:57:07 +0300 Subject: [PATCH] Add fallback for company logo URL change --- lib/ui/app/menu_drawer.dart | 25 ++++++++++++++++++------- lib/ui/settings/company_details.dart | 23 +++++++++++++++-------- 2 files changed, 33 insertions(+), 15 deletions(-) diff --git a/lib/ui/app/menu_drawer.dart b/lib/ui/app/menu_drawer.dart index c98319052..43a153745 100644 --- a/lib/ui/app/menu_drawer.dart +++ b/lib/ui/app/menu_drawer.dart @@ -81,11 +81,12 @@ class _MenuDrawerState extends State { return Container(); } - Widget _companyLogo(CompanyEntity company) => company - .settings.companyLogo != - null && - company.settings.companyLogo.isNotEmpty - ? CachedImage( + Widget _companyLogo(CompanyEntity company) { + if (company.settings.companyLogo != null && + company.settings.companyLogo.isNotEmpty) { + if (state.isHosted && kIsWeb) { + // Fix for CORS error using 'object' subdomain + return CachedImage( width: MenuDrawer.LOGO_WIDTH, url: state.credentials.url + '/companies/' + company.id + '/logo', apiToken: state.userCompanyStates @@ -93,8 +94,18 @@ class _MenuDrawerState extends State { userCompanyState.company.id == company.id) .token .token, - ) - : Image.asset('assets/images/icon.png', width: MenuDrawer.LOGO_WIDTH); + ); + } else { + return CachedImage( + width: MenuDrawer.LOGO_WIDTH, + url: company.settings.companyLogo, + ); + } + } else { + return Image.asset('assets/images/icon.png', + width: MenuDrawer.LOGO_WIDTH); + } + } Widget _companyListItem( CompanyEntity company, { diff --git a/lib/ui/settings/company_details.dart b/lib/ui/settings/company_details.dart index 92bcafad0..e950aeeec 100644 --- a/lib/ui/settings/company_details.dart +++ b/lib/ui/settings/company_details.dart @@ -1,4 +1,5 @@ // Flutter imports: +import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_redux/flutter_redux.dart'; import 'package:invoiceninja_flutter/constants.dart'; @@ -572,14 +573,20 @@ class _CompanyDetailsState extends State if ('${settings.companyLogo ?? ''}'.isNotEmpty) Padding( padding: const EdgeInsets.symmetric(vertical: 20), - child: CachedImage( - width: double.infinity, - url: state.credentials.url + - '/companies/' + - company.id + - '/logo', - apiToken: state.userCompany.token.token, - )), + // Fix for CORS error using 'object' subdomain + child: (state.isHosted && kIsWeb) + ? CachedImage( + width: double.infinity, + url: state.credentials.url + + '/companies/' + + company.id + + '/logo', + apiToken: state.userCompany.token.token, + ) + : CachedImage( + width: double.infinity, + url: company.settings.companyLogo, + )), ], ), ),