@@ -82,20 +82,37 @@ const ListView: FC<ListViewProps> = (props: ListViewProps) => {
82
82
} )
83
83
84
84
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
+ } ) ,
99
116
[ ] ,
100
117
)
101
118
0 commit comments