diff --git a/src/pages/transfer/transferfee/blocks/AddDialog.tsx b/src/pages/transfer/transferfee/blocks/AddDialog.tsx
index 0860010..6b73eed 100644
--- a/src/pages/transfer/transferfee/blocks/AddDialog.tsx
+++ b/src/pages/transfer/transferfee/blocks/AddDialog.tsx
@@ -70,6 +70,8 @@ const AddFeeDialog = () => {
selectedTransferFee,
transactionTypeId
} = useManageTransferFeeContext();
+ const [customerSearchTerm, setCustomerSearchTerm] = useState('');
+ const [open, setOpen] = useState(false);
const [alert, setAlert] = useState({
show: false,
@@ -111,6 +113,7 @@ const AddFeeDialog = () => {
credit_destination_account: ''
};
+
const [formField, setFormField] = useState(initialState);
const resetForm = () => {
@@ -151,6 +154,13 @@ const AddFeeDialog = () => {
}
}, [showAddFeeDialog, transactionTypeId, GetData]);
+ useEffect(() => {
+ if (!showAddFeeDialog) {
+ setCustomerSearchTerm('');
+ setOpen(false);
+ }
+ }, [showAddFeeDialog]);
+
useEffect(() => {
const created_time = new Date();
const formattedTime = created_time.toISOString().slice(0, 19).replace('T', ' ');
@@ -619,13 +629,72 @@ const AddFeeDialog = () => {
- {renderSelectWithLoading(
- formField.credit_destination,
- (value) => setFormField({ ...formField, credit_destination: value }),
- customersWithNames,
- 'Select Customer',
- isLoadingCustomers
- )}
+
+
setOpen(!open)}
+ >
+
+ {customers.find(
+ (customer) => customer.id === formField.credit_destination
+ )?.username || 'Search customer...'}
+
+
+
+
+ {open && (
+
+
+ setCustomerSearchTerm(e.target.value)}
+ autoComplete="off"
+ onClick={(e) => e.stopPropagation()}
+ autoFocus
+ />
+
+
+ {customers
+ .filter(
+ (customer) =>
+ customer.username
+ .toLowerCase()
+ .includes(customerSearchTerm.toLowerCase()) ||
+ customer.msisdn.includes(customerSearchTerm)
+ )
+ .map((customer) => (
+
{
+ setFormField({
+ ...formField,
+ credit_destination: customer.id
+ });
+ setOpen(false);
+ }}
+ >
+ {customer.username}
+
+ ))}
+ {customers.filter(
+ (customer) =>
+ customer.username
+ .toLowerCase()
+ .includes(customerSearchTerm.toLowerCase()) ||
+ customer.msisdn.includes(customerSearchTerm)
+ ).length === 0 && (
+
+ No customer found
+
+ )}
+
+
+ )}
+
)}
diff --git a/src/pages/transfer/transferfee/blocks/EditDialog.tsx b/src/pages/transfer/transferfee/blocks/EditDialog.tsx
index b8077b5..3d6b0ce 100644
--- a/src/pages/transfer/transferfee/blocks/EditDialog.tsx
+++ b/src/pages/transfer/transferfee/blocks/EditDialog.tsx
@@ -72,7 +72,6 @@ const EditFeeDialog = () => {
message: ''
});
- // Loading states
const [isLoadingTransferFee, setIsLoadingTransferFee] = useState(false);
const [isLoadingTransactionType, setIsLoadingTransactionType] = useState(false);
const [isLoadingWallets, setIsLoadingWallets] = useState(false);
@@ -687,9 +686,7 @@ const EditFeeDialog = () => {
{customers.find(customer => customer.id === formField.credit_destination)?.username || 'Search customer...'}
-
{open && (
@@ -702,9 +699,7 @@ const EditFeeDialog = () => {
value={customerSearchTerm}
onChange={(e) => setCustomerSearchTerm(e.target.value)}
autoComplete="off"
- // Prevent clicks from closing the dropdown
onClick={(e) => e.stopPropagation()}
- // Auto focus the input when opened
autoFocus
/>