Skip to content

Commit

Permalink
fix: CreditsAmount Story + move getVintageCredits to utils
Browse files Browse the repository at this point in the history
  • Loading branch information
Ralph committed Sep 9, 2024
1 parent 6a585f8 commit 7e3d392
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,10 @@ CreditsAmountCard.args = {
paymentOption: PAYMENT_OPTIONS.CARD,
currency: CURRENCIES.usd,
setCurrency: () => {},
setSpendingCap: () => {},
creditsAvailable: 1000,
setCreditsAvailable: () => {},
creditVintages: [],
};

export const CreditsAmountCrypto: Story = {
Expand All @@ -59,4 +63,8 @@ CreditsAmountCrypto.args = {
paymentOption: PAYMENT_OPTIONS.CRYPTO,
currency: CURRENCIES.usd,
setCurrency: () => {},
setSpendingCap: () => {},
creditsAvailable: 1000,
setCreditsAvailable: () => {},
creditVintages: [],
};
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import { CreditsAmountProps } from './CreditsAmount.types';
import {
getCreditsAvailablePerCurrency,
getCurrencyPrice,
getVintageCredits,
} from './CreditsAmount.utils';
import { CreditsInput } from './CreditsInput';
import { CurrencyInput } from './CurrencyInput';
Expand All @@ -45,15 +46,9 @@ export const CreditsAmount = ({

useEffect(() => {
if (creditVintageOptions && creditVintageOptions.length > 0) {
const getVintageCredits = (creditVintageOptions: string[]) => {
return creditVintageOptions.reduce((sum: number, option: string) => {
const credits =
creditVintages.find(vintage => vintage.batchDenom === option)
?.credits || '0';
return sum + +credits;
}, 0);
};
setCreditsAvailable(getVintageCredits(creditVintageOptions));
setCreditsAvailable(
getVintageCredits(creditVintageOptions, creditVintages),
);
setSpendingCap(creditsAvailable);
} else {
setCreditsAvailable(
Expand All @@ -78,13 +73,7 @@ export const CreditsAmount = ({
const newPrice = getCurrencyPrice(currency, creditDetails);
setPricePerCredit(newPrice);
setCurrency(currency);
}, [
creditDetails,
currency,
paymentOption,
setCreditsAvailable,
setCurrency,
]);
}, [creditDetails, currency, setCreditsAvailable, setCurrency]);

// Max credits set
useEffect(() => {
Expand All @@ -93,13 +82,7 @@ export const CreditsAmount = ({
setValue(CURRENCY_AMOUNT, creditsAvailable * pricePerCredit);
setMaxCreditsSelected(false);
}
}, [
creditsAvailable,
pricePerCredit,
maxCreditsSelected,
setMaxCreditsSelected,
setValue,
]);
}, [creditsAvailable, maxCreditsSelected, pricePerCredit, setValue]);

// Credits amount change
const handleCreditsAmountChange = useCallback(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import { CreditDetails } from 'web-marketplace/src/components/organisms/ChooseCreditsForm/ChooseCreditsForm.types';
import {
CreditDetails,
CreditsVintages,
} from 'web-marketplace/src/components/organisms/ChooseCreditsForm/ChooseCreditsForm.types';

import { Currency } from 'web-components/src/components/DenomIconWithCurrency/DenomIconWithCurrency.constants';

Expand All @@ -20,3 +23,15 @@ export const getCreditsAvailablePerCurrency = (
?.availableCredits || 0
);
};

export const getVintageCredits = (
creditVintageOptions: string[],
creditVintages: CreditsVintages[],
) => {
return creditVintageOptions.reduce((sum: number, option: string) => {
const credits =
creditVintages.find(vintage => vintage.batchDenom === option)?.credits ||
'0';
return sum + +credits;
}, 0);
};

0 comments on commit 7e3d392

Please sign in to comment.