Skip to content

Commit

Permalink
Merge pull request #41997 from cretadn22/update-logic-to-allow-disabl…
Browse files Browse the repository at this point in the history
…ing-or-deleting-rate

Filter out rate with pending action
  • Loading branch information
tgolen committed May 14, 2024
2 parents cba6916 + 8bcf840 commit 82ecbcd
Showing 1 changed file with 7 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,11 @@ function PolicyDistanceRateDetailsPage({policy, route}: PolicyDistanceRateDetail
const customUnit = customUnits[Object.keys(customUnits)[0]];
const rate = customUnit?.rates[rateID];
const currency = rate?.currency ?? CONST.CURRENCY.USD;
const canDeleteRate = Object.values(customUnit?.rates ?? {}).filter((distanceRate) => distanceRate?.enabled).length > 1 || !rate?.enabled;
const canDisableRate = Object.values(customUnit?.rates ?? {}).filter((distanceRate) => distanceRate?.enabled).length > 1;

// Rates can be disabled or deleted as long as in the remaining rates there is always at least one enabled rate and there are no pending delete action
const canDisableOrDeleteRate = Object.values(customUnit?.rates).some(
(distanceRate: Rate) => distanceRate?.enabled && rateID !== distanceRate?.customUnitRateID && distanceRate?.pendingAction !== CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE,
);
const errorFields = rate?.errorFields;

if (!rate) {
Expand All @@ -61,7 +64,7 @@ function PolicyDistanceRateDetailsPage({policy, route}: PolicyDistanceRateDetail
};

const toggleRate = () => {
if (!rate?.enabled || canDisableRate) {
if (!rate?.enabled || canDisableOrDeleteRate) {
Policy.setPolicyDistanceRatesEnabled(policyID, customUnit, [{...rate, enabled: !rate?.enabled}]);
} else {
setIsWarningModalVisible(true);
Expand All @@ -82,7 +85,7 @@ function PolicyDistanceRateDetailsPage({policy, route}: PolicyDistanceRateDetail
icon: Expensicons.Trashcan,
text: translate('workspace.distanceRates.deleteDistanceRate'),
onSelected: () => {
if (canDeleteRate) {
if (canDisableOrDeleteRate) {
setIsDeleteModalVisible(true);
return;
}
Expand Down

0 comments on commit 82ecbcd

Please sign in to comment.