Fix: Add prepend and money field group to customer & vendors

This commit is contained in:
elforjani3
2020-11-22 15:42:18 +02:00
parent bdb524a248
commit 229eeaf142
4 changed files with 69 additions and 38 deletions

View File

@@ -1,9 +1,15 @@
import React, { useCallback, useState } from 'react'; import React, { useCallback, useState } from 'react';
import classNames from 'classnames'; import classNames from 'classnames';
import { FormGroup, Position, Classes } from '@blueprintjs/core'; import { FormGroup, Position, Classes, ControlGroup } from '@blueprintjs/core';
import { DateInput } from '@blueprintjs/datetime'; import { DateInput } from '@blueprintjs/datetime';
import { FastField, ErrorMessage } from 'formik'; import { FastField, ErrorMessage } from 'formik';
import { MoneyInputGroup, CurrencySelectList, Row, Col } from 'components'; import {
MoneyInputGroup,
InputPrependText,
CurrencySelectList,
Row,
Col,
} from 'components';
import { FormattedMessage as T } from 'react-intl'; import { FormattedMessage as T } from 'react-intl';
import withCurrencies from 'containers/Currencies/withCurrencies'; import withCurrencies from 'containers/Currencies/withCurrencies';
@@ -21,20 +27,7 @@ function CustomerFinancialPanel({
customerId, customerId,
}) { }) {
const [selectedItems, setSelectedItems] = useState();
const onItemsSelect = useCallback(
(filedName) => {
return (filed) => {
setSelectedItems({
...selectedItems,
[filedName]: filed,
});
// setFieldValue(filedName, filed.currency_code);
};
},
[selectedItems],
);
return ( return (
<div className={'tab-panel--financial'}> <div className={'tab-panel--financial'}>
<Row> <Row>
@@ -52,7 +45,6 @@ function CustomerFinancialPanel({
<DateInput <DateInput
{...momentFormatter('YYYY/MM/DD')} {...momentFormatter('YYYY/MM/DD')}
value={tansformDateValue(value)} value={tansformDateValue(value)}
// onChange={}
popoverProps={{ position: Position.BOTTOM, minimal: true }} popoverProps={{ position: Position.BOTTOM, minimal: true }}
disabled={customerId} disabled={customerId}
/> />
@@ -62,7 +54,12 @@ function CustomerFinancialPanel({
{/*------------ Opening balance -----------*/} {/*------------ Opening balance -----------*/}
<FastField name={'opening_balance'}> <FastField name={'opening_balance'}>
{({ field, field: { value }, meta: { error, touched } }) => ( {({
form: { values },
field,
field: { value },
meta: { error, touched },
}) => (
<FormGroup <FormGroup
label={<T id={'opening_balance'} />} label={<T id={'opening_balance'} />}
className={classNames( className={classNames(
@@ -72,13 +69,15 @@ function CustomerFinancialPanel({
intent={inputIntent({ error, touched })} intent={inputIntent({ error, touched })}
inline={true} inline={true}
> >
<ControlGroup>
<InputPrependText text={values.currency_code} />
<MoneyInputGroup <MoneyInputGroup
value={value} value={value}
prefix={'$'}
inputGroupProps={{ fill: true }} inputGroupProps={{ fill: true }}
disabled={customerId} disabled={customerId}
{...field} {...field}
/> />
</ControlGroup>
</FormGroup> </FormGroup>
)} )}
</FastField> </FastField>
@@ -98,7 +97,9 @@ function CustomerFinancialPanel({
<CurrencySelectList <CurrencySelectList
currenciesList={currenciesList} currenciesList={currenciesList}
selectedCurrencyCode={value} selectedCurrencyCode={value}
onCurrencySelected={onItemsSelect('currency_code')} onCurrencySelected={(currency) => {
form.setFieldValue('currency_code', currency.currency_code);
}}
disabled={customerId} disabled={customerId}
/> />
</FormGroup> </FormGroup>

View File

@@ -20,6 +20,7 @@ import withCustomerDetail from 'containers/Customers/withCustomerDetail';
import withCustomersActions from 'containers/Customers/withCustomersActions'; import withCustomersActions from 'containers/Customers/withCustomersActions';
import withMediaActions from 'containers/Media/withMediaActions'; import withMediaActions from 'containers/Media/withMediaActions';
import withCustomers from 'containers/Customers//withCustomers'; import withCustomers from 'containers/Customers//withCustomers';
import withSettings from 'containers/Settings/withSettings';
import useMedia from 'hooks/useMedia'; import useMedia from 'hooks/useMedia';
import { compose, transformToForm } from 'utils'; import { compose, transformToForm } from 'utils';
@@ -73,6 +74,9 @@ function CustomerForm({
// #withCustomerDetail // #withCustomerDetail
customer, customer,
// #withSettings
baseCurrency,
// #withCustomersActions // #withCustomersActions
requestSubmitCustomer, requestSubmitCustomer,
requestEditCustomer, requestEditCustomer,
@@ -151,6 +155,7 @@ function CustomerForm({
const initialValues = useMemo( const initialValues = useMemo(
() => ({ () => ({
...defaultInitialValues, ...defaultInitialValues,
currency_code: baseCurrency,
...transformToForm(customer, defaultInitialValues), ...transformToForm(customer, defaultInitialValues),
}), }),
[customer, defaultInitialValues], [customer, defaultInitialValues],
@@ -271,6 +276,9 @@ export default compose(
withCustomers(({ customers }) => ({ withCustomers(({ customers }) => ({
customers, customers,
})), })),
withSettings(({ organizationSettings }) => ({
baseCurrency: organizationSettings?.baseCurrency,
})),
withDashboardActions, withDashboardActions,
withCustomersActions, withCustomersActions,
withMediaActions, withMediaActions,

View File

@@ -1,9 +1,15 @@
import React from 'react'; import React from 'react';
import classNames from 'classnames'; import classNames from 'classnames';
import { FormGroup, Position, Classes } from '@blueprintjs/core'; import { FormGroup, ControlGroup, Position, Classes } from '@blueprintjs/core';
import { DateInput } from '@blueprintjs/datetime'; import { DateInput } from '@blueprintjs/datetime';
import { FastField, ErrorMessage } from 'formik'; import { FastField, ErrorMessage } from 'formik';
import { MoneyInputGroup, CurrencySelectList, Row, Col } from 'components'; import {
MoneyInputGroup,
InputPrependText,
CurrencySelectList,
Row,
Col,
} from 'components';
import { FormattedMessage as T } from 'react-intl'; import { FormattedMessage as T } from 'react-intl';
import withCurrencies from 'containers/Currencies/withCurrencies'; import withCurrencies from 'containers/Currencies/withCurrencies';
@@ -50,7 +56,12 @@ function VendorFinanicalPanelTab({
</FastField> </FastField>
{/*------------ Opening balance -----------*/} {/*------------ Opening balance -----------*/}
<FastField name={'opening_balance'}> <FastField name={'opening_balance'}>
{({ field, field: { value }, meta: { error, touched } }) => ( {({
form: { values },
field,
field: { value },
meta: { error, touched },
}) => (
<FormGroup <FormGroup
label={<T id={'opening_balance'} />} label={<T id={'opening_balance'} />}
className={classNames( className={classNames(
@@ -60,6 +71,8 @@ function VendorFinanicalPanelTab({
intent={inputIntent({ error, touched })} intent={inputIntent({ error, touched })}
inline={true} inline={true}
> >
<ControlGroup>
<InputPrependText text={values.currency_code } />
<MoneyInputGroup <MoneyInputGroup
value={value} value={value}
onChange={field.onChange} onChange={field.onChange}
@@ -70,6 +83,7 @@ function VendorFinanicalPanelTab({
}} }}
disabled={vendorId} disabled={vendorId}
/> />
</ControlGroup>
</FormGroup> </FormGroup>
)} )}
</FastField> </FastField>

View File

@@ -22,6 +22,7 @@ import VendorFloatingActions from './VendorFloatingActions';
import withDashboardActions from 'containers/Dashboard/withDashboardActions'; import withDashboardActions from 'containers/Dashboard/withDashboardActions';
import withVendorDetail from './withVendorDetail'; import withVendorDetail from './withVendorDetail';
import withVendorActions from './withVendorActions'; import withVendorActions from './withVendorActions';
import withSettings from 'containers/Settings/withSettings';
import { compose, transformToForm } from 'utils'; import { compose, transformToForm } from 'utils';
@@ -73,6 +74,9 @@ function VendorForm({
requestSubmitVendor, requestSubmitVendor,
requestEditVendor, requestEditVendor,
// #withSettings
baseCurrency,
// #OwnProps // #OwnProps
vendorId, vendorId,
}) { }) {
@@ -88,6 +92,7 @@ function VendorForm({
const initialValues = useMemo( const initialValues = useMemo(
() => ({ () => ({
...defaultInitialValues, ...defaultInitialValues,
currency_code: baseCurrency,
...transformToForm(vendor, defaultInitialValues), ...transformToForm(vendor, defaultInitialValues),
}), }),
[defaultInitialValues], [defaultInitialValues],
@@ -181,5 +186,8 @@ function VendorForm({
export default compose( export default compose(
withVendorDetail(), withVendorDetail(),
withDashboardActions, withDashboardActions,
withSettings(({ organizationSettings }) => ({
baseCurrency: organizationSettings?.baseCurrency,
})),
withVendorActions, withVendorActions,
)(VendorForm); )(VendorForm);