Skip to content

Commit 5c4278b

Browse files
authored
Merge pull request #961 from topcoder-platform/CORE-330
fix: show time left to release a payment when release date <= 24 hours
2 parents 99cbe32 + 67496b3 commit 5c4278b

File tree

1 file changed

+31
-14
lines changed

1 file changed

+31
-14
lines changed

src/apps/wallet/src/home/tabs/winnings/WinningsTab.tsx

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -82,20 +82,37 @@ const ListView: FC<ListViewProps> = (props: ListViewProps) => {
8282
})
8383

8484
const convertToWinnings = useCallback(
85-
(payments: WinningDetail[]) => payments.map(payment => ({
86-
canBeReleased: new Date(payment.releaseDate) <= new Date() && payment.details[0].status === 'OWED',
87-
createDate: formatIOSDateString(payment.createdAt),
88-
currency: payment.details[0].currency,
89-
datePaid: payment.details[0].datePaid ? formatIOSDateString(payment.details[0].datePaid) : '-',
90-
description: payment.description,
91-
details: payment.details,
92-
id: payment.id,
93-
netPayment: formatCurrency(payment.details[0].totalAmount, payment.details[0].currency),
94-
releaseDate: formatIOSDateString(payment.releaseDate),
95-
status: formatStatus(payment.details[0].status),
96-
type: payment.category.replaceAll('_', ' ')
97-
.toLowerCase(),
98-
})),
85+
(payments: WinningDetail[]) => payments.map(payment => {
86+
const now = new Date()
87+
const releaseDate = new Date(payment.releaseDate)
88+
const diffMs = releaseDate.getTime() - now.getTime()
89+
const diffHours = diffMs / (1000 * 60 * 60)
90+
91+
let formattedReleaseDate
92+
if (diffHours > 0 && diffHours <= 24) {
93+
const diffMinutes = diffMs / (1000 * 60)
94+
const hours = Math.floor(diffHours)
95+
const minutes = Math.round(diffMinutes - hours * 60)
96+
formattedReleaseDate = `In ${hours} hours ${minutes} minutes`
97+
} else {
98+
formattedReleaseDate = formatIOSDateString(payment.releaseDate)
99+
}
100+
101+
return {
102+
canBeReleased: new Date(payment.releaseDate) <= new Date() && payment.details[0].status === 'OWED',
103+
createDate: formatIOSDateString(payment.createdAt),
104+
currency: payment.details[0].currency,
105+
datePaid: payment.details[0].datePaid ? formatIOSDateString(payment.details[0].datePaid) : '-',
106+
description: payment.description,
107+
details: payment.details,
108+
id: payment.id,
109+
netPayment: formatCurrency(payment.details[0].totalAmount, payment.details[0].currency),
110+
releaseDate: formattedReleaseDate,
111+
status: formatStatus(payment.details[0].status),
112+
type: payment.category.replaceAll('_', ' ')
113+
.toLowerCase(),
114+
}
115+
}),
99116
[],
100117
)
101118

0 commit comments

Comments
 (0)