diff --git a/src/components/PaymentAssetManager.tsx b/src/components/PaymentAssetManager.tsx index cdf81460..b1476ad8 100644 --- a/src/components/PaymentAssetManager.tsx +++ b/src/components/PaymentAssetManager.tsx @@ -14,7 +14,6 @@ const PaymentAssetManager = (props: { type: FilesStorage; reload: () => void; paymentId: string; - canEdit: boolean; }) => { const {asset, permissions, type, paymentId} = props; @@ -122,14 +121,10 @@ const PaymentAssetManager = (props: { return ( <> - {props.canEdit && ( - <> - fileInputReplaceRef.current?.click()} /> - - {renderFileInput((e: Event) => handleFileChange(e, "patch"), fileInputReplaceRef)} - {renderFileInput((e: Event) => handleFileChange(e, "post"), fileInputRef)} - > - )} + fileInputReplaceRef.current?.click()} /> + + {renderFileInput((e: Event) => handleFileChange(e, "patch"), fileInputReplaceRef)} + {renderFileInput((e: Event) => handleFileChange(e, "post"), fileInputRef)} > ); } @@ -137,7 +132,7 @@ const PaymentAssetManager = (props: { return ; } - return props.canEdit ? ( + return permissions === "write" ? ( <> fileInputRef.current?.click()} /> {renderFileInput((e: Event) => handleFileChange(e, "post"), fileInputRef)} diff --git a/src/pages/payment-record.tsx b/src/pages/payment-record.tsx index 3a65b0a2..432dcb00 100644 --- a/src/pages/payment-record.tsx +++ b/src/pages/payment-record.tsx @@ -139,7 +139,7 @@ const PaymentCreator = ({onClose, reload, showComission = false}: {onClose: () = {}} type="number" value={price} defaultValue={0} className="col-span-3" disabled /> ({value: currency, label}))} defaultValue={{value: currency || "EUR", label: CURRENCIES.find((c) => c.currency === currency)?.label || "Euro"}} onChange={() => {}} @@ -346,6 +346,11 @@ export default function PaymentRecord() { ]); }, [corporateTransfer]); + useEffect(() => { + if (user && user.type === "corporate") return setCorporate(user); + if (user && user.type === "agent") return setAgent(user); + }, [user]); + const updatePayment = (payment: Payment, key: string, value: any) => { axios .patch(`api/payments/${payment.id}`, {...payment, [key]: value}) @@ -390,7 +395,6 @@ export default function PaymentRecord() { reload={reload} permissions={info.row.original.isPaid ? "read" : "write"} asset={info.row.original.corporateTransfer} - canEdit={!info.row.original.isPaid} paymentId={info.row.original.id} type="corporate" /> @@ -410,7 +414,6 @@ export default function PaymentRecord() { permissions="read" asset={info.row.original.commissionTransfer} paymentId={info.row.original.id} - canEdit={!info.row.original.isPaid} type="commission" /> @@ -429,7 +432,6 @@ export default function PaymentRecord() { permissions="read" asset={info.row.original.corporateTransfer} paymentId={info.row.original.id} - canEdit={!info.row.original.isPaid} type="corporate" /> @@ -445,7 +447,6 @@ export default function PaymentRecord() { permissions={info.row.original.isPaid ? "read" : "write"} asset={info.row.original.commissionTransfer} paymentId={info.row.original.id} - canEdit={!info.row.original.isPaid} type="commission" /> @@ -464,7 +465,6 @@ export default function PaymentRecord() { permissions="write" asset={info.row.original.corporateTransfer} paymentId={info.row.original.id} - canEdit={!info.row.original.isPaid} type="corporate" /> @@ -480,7 +480,6 @@ export default function PaymentRecord() { permissions="write" asset={info.row.original.commissionTransfer} paymentId={info.row.original.id} - canEdit={!info.row.original.isPaid} type="commission" /> @@ -635,7 +634,7 @@ export default function PaymentRecord() { { - if (user?.type === agent || value) return null; + if (user?.type === agent || user?.type === "corporate" || value) return null; if (!info.row.original.commissionTransfer || !info.row.original.corporateTransfer) return alert("All files need to be uploaded to consider it paid!"); if (!confirm(`Are you sure you want to consider this payment paid?`)) return null; @@ -798,17 +797,30 @@ export default function PaymentRecord() { )} - + Corporate account * u.type === "corporate") as CorporateUser[]).map((user) => ({ value: user.id, meta: user, label: `${user.corporateInformation.companyInformation.name || user.name} - ${user.email}`, }))} + defaultValue={ + user.type === "corporate" + ? { + value: user.id, + meta: user, + label: `${user.corporateInformation.companyInformation.name || user.name} - ${user.email}`, + } + : undefined + } + isDisabled={user.type === "corporate"} onChange={(value) => setCorporate((value as any)?.meta ?? undefined)} styles={{ control: (styles) => ({ @@ -828,40 +840,42 @@ export default function PaymentRecord() { }} /> - - Country manager * - u.type === "agent") as AgentUser[]).map((user) => ({ - value: user.id, - meta: user, - label: `${user.name} - ${user.email}`, - }))} - value={agent ? {value: agent?.id, label: `${agent.name} - ${agent.email}`} : undefined} - onChange={(value) => setAgent(value !== null ? (value as any).meta : undefined)} - styles={{ - control: (styles) => ({ - ...styles, - paddingLeft: "4px", - border: "none", - outline: "none", - ":focus": { + {user.type !== "corporate" && ( + + Country manager * + u.type === "agent") as AgentUser[]).map((user) => ({ + value: user.id, + meta: user, + label: `${user.name} - ${user.email}`, + }))} + value={agent ? {value: agent?.id, label: `${agent.name} - ${agent.email}`} : undefined} + onChange={(value) => setAgent(value !== null ? (value as any).meta : undefined)} + styles={{ + control: (styles) => ({ + ...styles, + paddingLeft: "4px", + border: "none", outline: "none", - }, - }), - option: (styles, state) => ({ - ...styles, - backgroundColor: state.isFocused ? "#D5D9F0" : state.isSelected ? "#7872BF" : "white", - color: state.isFocused ? "black" : styles.color, - }), - }} - /> - + ":focus": { + outline: "none", + }, + }), + option: (styles, state) => ({ + ...styles, + backgroundColor: state.isFocused ? "#D5D9F0" : state.isSelected ? "#7872BF" : "white", + color: state.isFocused ? "black" : styles.color, + }), + }} + /> + + )} Paid - - Commission transfer - e.value === commissionTransfer)} - onChange={(value) => { - if (value) return setCommissionTransfer(value.value); - setCommissionTransfer(null); - }} - styles={{ - control: (styles) => ({ - ...styles, - paddingLeft: "4px", - border: "none", - outline: "none", - ":focus": { + {user.type !== "corporate" && ( + + Commission transfer + e.value === commissionTransfer)} + onChange={(value) => { + if (value) return setCommissionTransfer(value.value); + setCommissionTransfer(null); + }} + styles={{ + control: (styles) => ({ + ...styles, + paddingLeft: "4px", + border: "none", outline: "none", - }, - }), - option: (styles, state) => ({ - ...styles, - backgroundColor: state.isFocused ? "#D5D9F0" : state.isSelected ? "#7872BF" : "white", - color: state.isFocused ? "black" : styles.color, - }), - }} - /> - + ":focus": { + outline: "none", + }, + }), + option: (styles, state) => ({ + ...styles, + backgroundColor: state.isFocused ? "#D5D9F0" : state.isSelected ? "#7872BF" : "white", + color: state.isFocused ? "black" : styles.color, + }), + }} + /> + + )} Corporate transfer