Files
bigcapital/packages/webapp/src/components/PaymentReceive/PaymentReceiveListField.tsx
2023-02-03 01:02:31 +02:00

37 lines
1005 B
TypeScript

// @ts-nocheck
import React, { useCallback } from 'react';
import { MenuItem } from '@blueprintjs/core';
import { ListSelect, FormattedMessage as T } from '@/components';
export function PaymentReceiveListField({
invoices,
selectedInvoiceId,
onInvoiceSelected,
defaultSelectText = <T id={'select_invoice'} />,
}) {
const onInvoiceSelect = useCallback((_invoice) => {
onInvoiceSelected && onInvoiceSelected(_invoice);
});
const handleInvoiceRenderer = useCallback(
(item, { handleClick }) => (
<MenuItem id={item.id} name={item.name} onClick={handleClick} />
),
[],
);
return (
<ListSelect
item={invoices}
noResults={<MenuItem disabled={true} text={<T id={'no_results'} />} />}
itemRenderer={handleInvoiceRenderer}
popoverProps={{ minimal: true }}
onItemSelect={onInvoiceSelect}
selectedItem={`${selectedInvoiceId}`}
selectedItemProp={'id'}
textProp={'name'}
defaultText={defaultSelectText}
/>
);
}