diff --git a/packages/app-store/stripepayment/lib/currencyConversions.ts b/packages/app-store/_utils/payments/currencyConversions.ts similarity index 90% rename from packages/app-store/stripepayment/lib/currencyConversions.ts rename to packages/app-store/_utils/payments/currencyConversions.ts index 72fe54ff86..408bc50629 100644 --- a/packages/app-store/stripepayment/lib/currencyConversions.ts +++ b/packages/app-store/_utils/payments/currencyConversions.ts @@ -1,6 +1,3 @@ -/** - * Docs: https://stripe.com/docs/currencies#zero-decimal - * */ const zeroDecimalCurrencies = [ "BIF", "CLP", diff --git a/packages/app-store/paypal/components/EventTypeAppSettingsInterface.tsx b/packages/app-store/paypal/components/EventTypeAppSettingsInterface.tsx index 10a25c221b..7ff408aeb9 100644 --- a/packages/app-store/paypal/components/EventTypeAppSettingsInterface.tsx +++ b/packages/app-store/paypal/components/EventTypeAppSettingsInterface.tsx @@ -9,6 +9,10 @@ import type { EventTypeAppSettingsComponent } from "@calcom/app-store/types"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { Alert, Select, TextField } from "@calcom/ui"; +import { + convertToSmallestCurrencyUnit, + convertFromSmallestToPresentableCurrencyUnit, +} from "../../_utils/payments/currencyConversions"; import { PaypalPaymentOptions as paymentOptions } from "../zod"; type Option = { value: string; label: string }; @@ -20,7 +24,7 @@ const EventTypeAppSettingsInterface: EventTypeAppSettingsComponent = ({ }) => { const price = getAppData("price"); - const currency = getAppData("currency"); + const currency = getAppData("currency") || currencyOptions[0].value; const [selectedCurrency, setSelectedCurrency] = useState(currencyOptions.find((c) => c.value === currency)); const [currencySymbol, setCurrencySymbol] = useState( isAcceptedCurrencyCode(currency) ? currencySymbols[currency] : "" @@ -71,12 +75,12 @@ const EventTypeAppSettingsInterface: EventTypeAppSettingsComponent = ({ placeholder="Price" data-testid="paypal-price-input" onChange={(e) => { - setAppData("price", Number(e.target.value) * 100); + setAppData("price", convertToSmallestCurrencyUnit(Number(e.target.value), currency)); if (selectedCurrency) { setAppData("currency", selectedCurrency.value); } }} - value={price > 0 ? price / 100 : undefined} + value={price > 0 ? convertFromSmallestToPresentableCurrencyUnit(price, currency) : undefined} />
diff --git a/packages/app-store/stripepayment/components/EventTypeAppSettingsInterface.tsx b/packages/app-store/stripepayment/components/EventTypeAppSettingsInterface.tsx index 056770765a..b7750140c7 100644 --- a/packages/app-store/stripepayment/components/EventTypeAppSettingsInterface.tsx +++ b/packages/app-store/stripepayment/components/EventTypeAppSettingsInterface.tsx @@ -4,11 +4,11 @@ import type { EventTypeAppSettingsComponent } from "@calcom/app-store/types"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { Alert, Select, TextField } from "@calcom/ui"; -import { paymentOptions } from "../lib/constants"; import { convertToSmallestCurrencyUnit, convertFromSmallestToPresentableCurrencyUnit, -} from "../lib/currencyConversions"; +} from "../../_utils/payments/currencyConversions"; +import { paymentOptions } from "../lib/constants"; import { currencyOptions } from "../lib/currencyOptions"; type Option = { value: string; label: string }; diff --git a/packages/lib/price.ts b/packages/lib/price.ts index 3fcc184924..4a6e92128f 100644 --- a/packages/lib/price.ts +++ b/packages/lib/price.ts @@ -1,4 +1,4 @@ -import { convertFromSmallestToPresentableCurrencyUnit } from "@calcom/app-store/stripepayment/lib/currencyConversions"; +import { convertFromSmallestToPresentableCurrencyUnit } from "@calcom/app-store/_utils/payments/currencyConversions"; export const formatPrice = (price: number, currency: string | undefined, locale = "en") => { switch (currency) {