Merge branch 'master' into feat/tracking-payment

This commit is contained in:
Linus Flood
2025-01-10 11:37:22 +01:00
4 changed files with 51 additions and 29 deletions

View File

@@ -76,7 +76,7 @@ export default function PaymentClient({
(state) => state.actions.setIsSubmittingDisabled
)
const [confirmationNumber, setConfirmationNumber] = useState<string>("")
const [bookingNumber, setBookingNumber] = useState<string>("")
const [isPollingForBookingStatus, setIsPollingForBookingStatus] =
useState(false)
@@ -106,13 +106,17 @@ export default function PaymentClient({
const initiateBooking = trpc.booking.create.useMutation({
onSuccess: (result) => {
if (result?.confirmationNumber) {
setConfirmationNumber(result.confirmationNumber)
if (result) {
setBookingNumber(result.id)
if (result.metadata?.priceChangedMetadata) {
const priceChange = result.rooms.find(
(r) => r.priceChangedMetadata
)?.priceChangedMetadata
if (priceChange) {
setPriceChangeData({
oldPrice: roomPrice.publicPrice,
newPrice: result.metadata.priceChangedMetadata.totalPrice,
newPrice: priceChange.totalPrice,
})
} else {
setIsPollingForBookingStatus(true)
@@ -129,7 +133,7 @@ export default function PaymentClient({
const priceChange = trpc.booking.priceChange.useMutation({
onSuccess: (result) => {
if (result?.confirmationNumber) {
if (result?.id) {
setIsPollingForBookingStatus(true)
} else {
handlePaymentError("No confirmation number")
@@ -145,7 +149,7 @@ export default function PaymentClient({
})
const bookingStatus = useHandleBookingStatus({
confirmationNumber,
confirmationNumber: bookingNumber,
expectedStatus: BookingStatusEnum.BookingCompleted,
maxRetries,
retryInterval,
@@ -452,7 +456,9 @@ export default function PaymentClient({
: ""
router.push(`${selectRate(lang)}${allSearchParams}`)
}}
onAccept={() => priceChange.mutate({ confirmationNumber })}
onAccept={() =>
priceChange.mutate({ confirmationNumber: bookingNumber })
}
/>
) : null}
</>