import React, { useMemo, useCallback } from 'react'; import FinancialStatementHeader from 'containers/FinancialStatements/FinancialStatementHeader'; import { Row, Col } from 'react-grid-system'; import { Button, FormGroup, MenuItem, } from "@blueprintjs/core"; import SelectList from 'components/SelectList'; import moment from 'moment'; import Icon from 'components/Icon'; import { useFormik } from 'formik'; import * as Yup from 'yup'; import FinancialStatementDateRange from 'containers/FinancialStatements/FinancialStatementDateRange'; import SelectDisplayColumnsBy from '../SelectDisplayColumnsBy'; import RadiosAccountingBasis from '../RadiosAccountingBasis'; import { FormattedMessage as T, useIntl } from 'react-intl'; export default function BalanceSheetHeader({ onSubmitFilter, pageFilter, }) { const { formatMessage } = useIntl(); const formik = useFormik({ enableReinitialize: true, initialValues: { ...pageFilter, basis: 'cash', from_date: moment(pageFilter.from_date).toDate(), to_date: moment(pageFilter.to_date).toDate(), }, validationSchema: Yup.object().shape({ from_date: Yup.date().required().label(formatMessage({id:'from_data'})), to_date: Yup.date().min(Yup.ref('from_date')).required().label(formatMessage({id:'to_date'})), }), onSubmit: (values, actions) => { onSubmitFilter(values); actions.setSubmitting(false); }, }); // Handle item select of `display columns by` field. const onItemSelectDisplayColumns = useCallback((item) => { formik.setFieldValue('display_columns_type', item.type); formik.setFieldValue('display_columns_by', item.by); }, []); // Handle submit filter submit button. const handleSubmitClick = useCallback(() => { formik.submitForm(); }, [formik]); const filterAccountsOptions = useMemo(() => [ { key: '', name: formatMessage({ id: 'accounts_with_zero_balance' }) }, { key: 'all-trans', name: formatMessage({ id: 'all_transactions' }) }, ], []); const filterAccountRenderer = useCallback((item, { handleClick, modifiers, query }) => { return (); }, []); const infoIcon = useMemo(() => (), []); const handleAccountingBasisChange = useCallback((value) => { formik.setFieldValue('basis', value); }, [formik]); return ( } className="form-group--select-list bp3-fill" inline={false}> ) }