WIP / Feature Fix _bills

This commit is contained in:
elforjani3
2020-08-04 17:51:17 +02:00
parent 5d1b41da16
commit 1cb826163b
25 changed files with 1703 additions and 5 deletions

View File

@@ -0,0 +1,35 @@
import React, { useCallback } from 'react';
import PaymentReceiveListField from 'components/PaymentReceiveListField';
import classNames from 'classnames';
import { FormGroup, Classes, Intent } from '@blueprintjs/core';
function PaymentReceiveListFieldCell({
column: { id },
row: { index },
cell: { value: initialValue },
payload: { invoices, updateData, errors },
}) {
const handleInvoicesSelected = useCallback(
(_item) => {
updateData(index, id, _item.id);
},
[updateData, index, id],
);
const error = errors?.[index]?.[id];
return (
<FormGroup
intent={error ? Intent.DANGER : null}
className={classNames('form-group--selcet-list', Classes.FILL)}
>
<PaymentReceiveListField
invoices={invoices}
onInvoiceSelected={handleInvoicesSelected}
selectedInvoiceId={initialValue}
/>
</FormGroup>
);
}
export default PaymentReceiveListFieldCell;

View File

@@ -0,0 +1,38 @@
import React, { useCallback } from 'react';
import { MenuItem } from '@blueprintjs/core';
import ListSelect from 'components/ListSelect';
import { FormattedMessage as T } from 'react-intl';
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="No results." />}
itemRenderer={handleInvoiceRenderer}
popoverProps={{ minimal: true }}
onItemSelect={onInvoiceSelect}
selectedItem={`${selectedInvoiceId}`}
selectedItemProp={'id'}
labelProp={'name'}
defaultText={defaultSelectText}
/>
);
}
export default PaymentReceiveListField;