Customize PayPal gateway options

This commit is contained in:
Hillel Coren 2023-12-03 10:44:09 +02:00
parent eeaae71283
commit fb38a8decf
3 changed files with 33 additions and 8 deletions

View File

@ -487,6 +487,7 @@ const String kGatewayStripe = 'd14dd26a37cecc30fdd65700bfb55b23';
const String kGatewayStripeConnect = 'd14dd26a47cecc30fdd65700bfb67b34';
const String kGatewayAuthorizeNet = '3b6621f970ab18887c4f6dca78d3f8bb';
const String kGatewayCheckoutCom = '3758e7f7c6f4cecf0f4f348b9a00f456';
const String kGatewayPayPalREST = '80af24a6a691230bbec33e930ab40665';
const String kGatewayPayPalExpress = '38f2c48af60c7dd69e04248cbb24c36e';
const String kGatewayPayPalPlatform = '80af24a6a691230bbec33e930ab40666';
const String kGatewayWePay = '8fdeed552015b3c7b44ed6c8ebd9e992';

View File

@ -1,5 +1,6 @@
// Package imports:
import 'package:built_collection/built_collection.dart';
import 'package:invoiceninja_flutter/constants.dart';
import 'package:memoize/memoize.dart';
// Project imports:
@ -127,13 +128,36 @@ List<String?> sizeList(BuiltMap<String, SizeEntity> sizeMap) {
return list;
}
var memoizedGatewayList = memo1(
(BuiltMap<String, GatewayEntity> gatewayMap) => gatewayList(gatewayMap));
var memoizedGatewayList = memo2(
(BuiltMap<String, GatewayEntity> gatewayMap, bool isHosted) =>
gatewayList(gatewayMap, isHosted));
List<String?> gatewayList(BuiltMap<String, GatewayEntity> gatewayMap) {
final list = gatewayMap.keys
.where((gatewayId) => gatewayMap[gatewayId]!.isVisible)
.toList();
List<String?> gatewayList(
BuiltMap<String, GatewayEntity> gatewayMap, bool isHosted) {
final list = gatewayMap.keys.where((gatewayId) {
final gateway = gatewayMap[gatewayId]!;
if (!gateway.isVisible) {
return false;
}
if (isHosted) {
if ([
kGatewayPayPalExpress,
kGatewayPayPalREST,
].contains(gateway.id)) {
return false;
}
} else {
if ([
kGatewayPayPalPlatform,
].contains(gateway.id)) {
return false;
}
}
return true;
}).toList();
list.sort((idA, idB) =>
gatewayMap[idA]!.sortOrder.compareTo(gatewayMap[idB]!.sortOrder));

View File

@ -152,8 +152,8 @@ class _CompanyGatewayEditState extends State<CompanyGatewayEdit>
EntityDropdown(
autofocus: true,
entityType: EntityType.gateway,
entityList:
memoizedGatewayList(state.staticState.gatewayMap),
entityList: memoizedGatewayList(
state.staticState.gatewayMap, state.isHosted),
labelText: localization.provider,
entityId: companyGateway.gatewayId,
onSelected: (SelectableEntity? gateway) {