From 053da1ec32ce9832ef1b1a2f94975528f4df181b Mon Sep 17 00:00:00 2001 From: alannnc Date: Wed, 16 Aug 2023 14:58:28 -0700 Subject: [PATCH] fix: currency for event types (#10792) Co-authored-by: Joe Au-Yeung --- apps/web/pages/booking/[uid].tsx | 20 ++++++++++++++++++- .../app-store/_utils/getEventTypeAppData.ts | 4 +++- packages/lib/getEventTypeById.ts | 2 +- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/apps/web/pages/booking/[uid].tsx b/apps/web/pages/booking/[uid].tsx index bfe6d748be..c651cc0685 100644 --- a/apps/web/pages/booking/[uid].tsx +++ b/apps/web/pages/booking/[uid].tsx @@ -93,7 +93,7 @@ const querySchema = z.object({ }); export default function Success(props: SuccessProps) { - const { t } = useLocale(); + const { t, i18n } = useLocale(); const router = useRouter(); const routerQuery = useRouterQuery(); const pathname = usePathname(); @@ -478,6 +478,21 @@ export default function Success(props: SuccessProps) { )} + {props.paymentStatus && ( + <> +
+ {props.paymentStatus.paymentOption === "HOLD" + ? t("complete_your_booking") + : t("payment")} +
+
+ {new Intl.NumberFormat(i18n.language, { + style: "currency", + currency: props.paymentStatus.currency, + }).format(props.paymentStatus.amount / 100.0)} +
+ + )} {bookingInfo?.description && ( <>
{t("additional_notes")}
@@ -1115,6 +1130,9 @@ export async function getServerSideProps(context: GetServerSidePropsContext) { select: { success: true, refunded: true, + currency: true, + amount: true, + paymentOption: true, }, }); diff --git a/packages/app-store/_utils/getEventTypeAppData.ts b/packages/app-store/_utils/getEventTypeAppData.ts index 9d387d7417..e556e1ac6c 100644 --- a/packages/app-store/_utils/getEventTypeAppData.ts +++ b/packages/app-store/_utils/getEventTypeAppData.ts @@ -18,12 +18,14 @@ export const getEventTypeAppData = ( return allowDataGet ? { ...appMetadata, + // We should favor eventType's price and currency over appMetadata's price and currency + price: eventType.price || appMetadata.price, + currency: eventType.currency || appMetadata.currency, // trackingId is legacy way to store value for TRACKING_ID. So, we need to support both. TRACKING_ID: appMetadata.TRACKING_ID || appMetadata.trackingId, } : null; } - // Backward compatibility for existing event types. // TODO: After the new AppStore EventType App flow is stable, write a migration to migrate metadata to new format which will let us remove this compatibility code // Migration isn't being done right now, to allow a revert if needed diff --git a/packages/lib/getEventTypeById.ts b/packages/lib/getEventTypeById.ts index 99e3ecb0e0..b9a232c410 100644 --- a/packages/lib/getEventTypeById.ts +++ b/packages/lib/getEventTypeById.ts @@ -227,7 +227,7 @@ export default async function getEventTypeById({ app: { enabled: true, categories: { - hasSome: [AppCategories.conferencing, AppCategories.video], + hasSome: [AppCategories.conferencing, AppCategories.video, AppCategories.payment], }, }, },