Skip to content

Commit 53f1c9c

Browse files
committed
feat(wallet-admin): view payout details/response from provider
* allow editing paid payments Signed-off-by: Rakib Ansary <rakibansary@topcoder.com>
1 parent 56d2a72 commit 53f1c9c

File tree

2 files changed

+32
-20
lines changed

2 files changed

+32
-20
lines changed

src/apps/wallet-admin/src/lib/components/payment-edit/PaymentEdit.tsx

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
/* eslint-disable max-len */
33
/* eslint-disable react/jsx-no-bind */
44
import { min } from 'date-fns'
5-
import React, { useEffect, useMemo, useState } from 'react'
5+
import React, { useCallback, useEffect, useMemo, useState } from 'react'
66

77
import { TOPCODER_URL } from '~/config/environments/default.env'
88
import { InputDatePicker, InputSelect, InputText } from '~/libs/ui'
@@ -40,8 +40,6 @@ const PaymentEdit: React.FC<PaymentEditFormProps> = (props: PaymentEditFormProps
4040
releaseDate: props.payment.releaseDateObj,
4141
}), [props.payment])
4242

43-
console.log('Payment status', paymentStatus)
44-
4543
const validateNetAmount = (value: number): boolean => {
4644
if (Number.isNaN(value)) {
4745
setNetAmountErrorString('A valid number is required')
@@ -160,6 +158,22 @@ const PaymentEdit: React.FC<PaymentEditFormProps> = (props: PaymentEditFormProps
160158

161159
const getLink = (externalId: string): string => `${TOPCODER_URL}/challenges/${externalId}`
162160

161+
const options = useCallback(() => {
162+
if (props.payment.status.toUpperCase() !== 'PAID') {
163+
return [
164+
{ label: 'Owed', value: 'Owed' },
165+
{ label: 'On Hold', value: 'On Hold' },
166+
{ label: 'Cancel', value: 'Cancel' },
167+
]
168+
}
169+
170+
return [
171+
{ label: 'Paid', value: 'Paid' },
172+
{ label: 'Owed', value: 'Owed' },
173+
]
174+
175+
}, [props.payment.status])
176+
163177
return (
164178
<div className={styles.formContainer}>
165179
<div className={styles.inputGroup}>
@@ -201,28 +215,26 @@ const PaymentEdit: React.FC<PaymentEditFormProps> = (props: PaymentEditFormProps
201215
dirty
202216
name='paymentStatus'
203217
label='Payment Status'
204-
options={[
205-
{ label: 'Owed', value: 'Owed' },
206-
{ label: 'On Hold', value: 'On Hold' },
207-
{ label: 'Cancel', value: 'Cancel' },
208-
]}
218+
options={options()}
209219
value={paymentStatus}
210220
onChange={e => {
211221
setDisableEdits(e.target.value === 'Cancel')
212222
handleInputChange('paymentStatus', e.target.value)
213223
}}
214224
/>
215-
<InputDatePicker
216-
tabIndex={-2}
217-
disabled={disableEdits}
218-
error='Something wrong'
219-
label='Release Date'
220-
minDate={min([new Date(), new Date(props.payment.releaseDateObj)])}
221-
date={releaseDate}
222-
maxDate={new Date(new Date()
223-
.getTime() + 15 * 24 * 60 * 60 * 1000)}
224-
onChange={date => { if (date != null) handleInputChange('releaseDate', date) }}
225-
/>
225+
{props.payment.status.toUpperCase() !== 'PAID' && (
226+
<InputDatePicker
227+
tabIndex={-2}
228+
disabled={disableEdits}
229+
error='Something wrong'
230+
label='Release Date'
231+
minDate={min([new Date(), new Date(props.payment.releaseDateObj)])}
232+
date={releaseDate}
233+
maxDate={new Date(new Date()
234+
.getTime() + 15 * 24 * 60 * 60 * 1000)}
235+
onChange={date => { if (date != null) handleInputChange('releaseDate', date) }}
236+
/>
237+
)}
226238
<InputText
227239
tabIndex={-3}
228240
type='text'

src/apps/wallet-admin/src/lib/components/payments-table/PaymentTable.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ const PaymentsTable: React.FC<PaymentTableProps> = (props: PaymentTableProps) =>
6060
<td>{payment.releaseDate}</td>
6161
<td>{payment.datePaid}</td>
6262
<td className={styles.actionButtons}>
63-
{props.canEdit && payment.status.toUpperCase() !== 'PAID' && payment.status.toUpperCase() !== 'CANCELLED' && (
63+
{props.canEdit && payment.status.toUpperCase() !== 'CANCELLED' && (
6464
<Button
6565
icon={IconOutline.PencilIcon}
6666
size='sm'

0 commit comments

Comments
 (0)