diff --git a/client/src/components/AccountsMultiSelect.js b/client/src/components/AccountsMultiSelect.js index 0e00a40e4..b32833f56 100644 --- a/client/src/components/AccountsMultiSelect.js +++ b/client/src/components/AccountsMultiSelect.js @@ -4,9 +4,8 @@ import { MenuItem, Button } from '@blueprintjs/core'; -// import {Select} from '@blueprintjs/select'; import MultiSelect from 'components/MultiSelect'; -import { FormattedMessage as T, useIntl } from 'react-intl'; +import { FormattedMessage as T } from 'react-intl'; export default function AccountsMultiSelect({ accounts, diff --git a/client/src/components/CurrenciesSelectList.js b/client/src/components/CurrenciesSelectList.js index 63e23cb4f..590cdefc8 100644 --- a/client/src/components/CurrenciesSelectList.js +++ b/client/src/components/CurrenciesSelectList.js @@ -10,7 +10,7 @@ import { Select } from '@blueprintjs/select'; -import { FormattedMessage as T, useIntl } from 'react-intl'; +import { FormattedMessage as T } from 'react-intl'; export default function CurrenciesSelectList(props) { const {formGroupProps, selectProps, onItemSelect} = props; diff --git a/client/src/components/Dashboard/DashboardBreadcrumbs.js b/client/src/components/Dashboard/DashboardBreadcrumbs.js index a6d0905b0..bf73a8916 100644 --- a/client/src/components/Dashboard/DashboardBreadcrumbs.js +++ b/client/src/components/Dashboard/DashboardBreadcrumbs.js @@ -5,7 +5,6 @@ import { Classes, Boundary, } from '@blueprintjs/core'; -import classNames from 'classnames'; import withBreadcrumbs from 'react-router-breadcrumbs-hoc'; import routes from 'routes/dashboard'; import { useHistory } from 'react-router-dom'; diff --git a/client/src/components/Dashboard/DashboardTopbar.js b/client/src/components/Dashboard/DashboardTopbar.js index 7cb5aabbf..0dbb29003 100644 --- a/client/src/components/Dashboard/DashboardTopbar.js +++ b/client/src/components/Dashboard/DashboardTopbar.js @@ -7,12 +7,15 @@ import { Button, Classes, } from '@blueprintjs/core'; -import DashboardBreadcrumbs from 'components/Dashboard/DashboardBreadcrumbs'; +import { FormattedMessage as T } from 'react-intl'; + import DashboardTopbarUser from 'components/Dashboard/TopbarUser'; -import Icon from 'components/Icon'; +import DashboardBreadcrumbs from 'components/Dashboard/DashboardBreadcrumbs'; import SearchConnect from 'connectors/Search.connect'; +import Icon from 'components/Icon'; + import { compose } from 'utils'; -import { FormattedMessage as T, useIntl } from 'react-intl'; + function DashboardTopbar({ pageTitle, diff --git a/client/src/components/Dashboard/TopbarUser.js b/client/src/components/Dashboard/TopbarUser.js index f51bbf111..0fae7f020 100644 --- a/client/src/components/Dashboard/TopbarUser.js +++ b/client/src/components/Dashboard/TopbarUser.js @@ -1,33 +1,48 @@ import React, { useMemo, useCallback } from 'react'; -import {connect} from 'react-redux'; -import {useHistory} from 'react-router-dom'; +import { connect } from 'react-redux'; +import { useHistory } from 'react-router-dom'; import { Menu, MenuItem, MenuDivider, Button, - Popover + Popover, } from '@blueprintjs/core'; -import t from 'store/types'; import { FormattedMessage as T } from 'react-intl'; +import t from 'store/types'; function DashboardTopbarUser({ logout }) { const history = useHistory(); - + const onClickLogout = useCallback(() => { logout(); }, [logout, history]); - const userAvatarDropMenu = useMemo(() => ( - - } /> - } /> - } shouldDismissPopover={false} /> - } disabled={true} /> - - } onClick={onClickLogout} /> - - ), [onClickLogout]); + const userAvatarDropMenu = useMemo( + () => ( + + } /> + } /> + } + shouldDismissPopover={false} + /> + } + disabled={true} + /> + + } + onClick={onClickLogout} + /> + + ), + [onClickLogout], + ); return ( @@ -35,11 +50,11 @@ function DashboardTopbarUser({ logout }) {
- ) + ); } const mapDispatchToProps = (dispatch) => ({ logout: () => dispatch({ type: t.LOGOUT }), }); -export default connect(null, mapDispatchToProps)(DashboardTopbarUser); \ No newline at end of file +export default connect(null, mapDispatchToProps)(DashboardTopbarUser); diff --git a/client/src/components/DataTable.js b/client/src/components/DataTable.js index f8c63d862..e41f4a5ca 100644 --- a/client/src/components/DataTable.js +++ b/client/src/components/DataTable.js @@ -51,21 +51,12 @@ export default function DataTable({ prepareRow, page, rows, - canPreviousPage, - canNextPage, - pageOptions, - pageCount, - gotoPage, - nextPage, - previousPage, - setPageSize, selectedFlatRows, - totalColumnsWidth, getToggleAllRowsExpandedProps, isAllRowsExpanded, // Get the state from the instance - state: { pageIndex, pageSize, sortBy, selectedRowIds, selectedRows }, + state: { pageIndex, pageSize, sortBy, selectedRowIds}, } = useTable( { columns, @@ -128,7 +119,7 @@ export default function DataTable({ } else { onFetchData && onFetchData({ pageIndex, pageSize, sortBy }) } - }, [pageIndex, pageSize, sortBy]); + }, [pageIndex, pageSize, sortBy,onFetchData]); useUpdateEffect(() => { onSelectedRowsChange && onSelectedRowsChange(selectedFlatRows); diff --git a/client/src/components/Dragzone.js b/client/src/components/Dragzone.js index d5331ef5f..fe627ac01 100644 --- a/client/src/components/Dragzone.js +++ b/client/src/components/Dragzone.js @@ -1,6 +1,5 @@ -import React, { useState, useMemo, useCallback, useEffect } from 'react' +import React, { useState, useCallback, useEffect } from 'react' import { useDropzone } from 'react-dropzone' -import { pullAt } from 'lodash'; import classNames from 'classnames'; import Icon from 'components/Icon'; diff --git a/client/src/components/Expenses/ExpensesActionsBar.js b/client/src/components/Expenses/ExpensesActionsBar.js index 9386dcfd7..c9b0d1a40 100644 --- a/client/src/components/Expenses/ExpensesActionsBar.js +++ b/client/src/components/Expenses/ExpensesActionsBar.js @@ -13,14 +13,13 @@ import { Intent, } from '@blueprintjs/core'; import { useRouteMatch } from 'react-router-dom' +import { FormattedMessage as T } from 'react-intl'; import classNames from 'classnames'; + import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar'; import Icon from 'components/Icon'; -import { FormattedMessage as T, useIntl } from 'react-intl'; -export default function ExpensesActionsBar({ - -}) { +export default function ExpensesActionsBar() { const {path} = useRouteMatch(); const onClickNewAccount = () => {}; const views = []; diff --git a/client/src/components/FilterDropdown.js b/client/src/components/FilterDropdown.js index 30397f06a..6009028c4 100644 --- a/client/src/components/FilterDropdown.js +++ b/client/src/components/FilterDropdown.js @@ -24,7 +24,7 @@ export default function FilterDropdown({ const conditionalsItems = useMemo(() => [ { value: 'and', label:formatMessage({id:'and'}) }, { value: 'or', label: formatMessage({id:'or'}) }, - ], []); + ], [formatMessage]); const resourceFields = useMemo(() => [ ...fields.map((field) => ({ value: field.key, label: field.label_name, })), @@ -36,7 +36,7 @@ export default function FilterDropdown({ {value: 'not_equal', label: formatMessage({id:'not_equal'})}, {value: 'contain', label: formatMessage({id:'contain'})}, {value: 'not_contain', label: formatMessage({id:'not_contain'})}, - ], []); + ], [formatMessage]); const defaultFilterCondition = useMemo(() => ({ condition: 'and', @@ -49,8 +49,6 @@ export default function FilterDropdown({ setFieldValue, getFieldProps, values, - errors, - touched, } = useFormik({ enableReinitialize: true, initialValues: { @@ -82,7 +80,7 @@ export default function FilterDropdown({ if (!isEqual(prevConditions, filteredFilterConditions) && prevConditions) { onFilterChangeThrottled.current(filteredFilterConditions); } - }, [filteredFilterConditions]); + }, [filteredFilterConditions,prevConditions]); // Handle click remove condition. const onClickRemoveCondition = (index) => () => { diff --git a/client/src/components/FinancialSheet.js b/client/src/components/FinancialSheet.js index aed91dbba..1456ee218 100644 --- a/client/src/components/FinancialSheet.js +++ b/client/src/components/FinancialSheet.js @@ -25,7 +25,7 @@ export default function FinancialSheet({ cash: formatMessage({id:'cash'}), accrual: formatMessage({id:'accrual'}), }), - [] + [formatMessage] ); const getBasisLabel = useCallback((b) => methodsLabels[b], [methodsLabels]); const basisLabel = useMemo(() => getBasisLabel(basis), [ diff --git a/client/src/components/MenuItem.js b/client/src/components/MenuItem.js index 5e9ef659f..639b1acca 100644 --- a/client/src/components/MenuItem.js +++ b/client/src/components/MenuItem.js @@ -15,7 +15,7 @@ */ import classNames from "classnames"; -import React, {useState} from "react"; +import React from "react"; // import { // , diff --git a/client/src/components/MultiSelect.js b/client/src/components/MultiSelect.js index c8048b57b..efa28e8a9 100644 --- a/client/src/components/MultiSelect.js +++ b/client/src/components/MultiSelect.js @@ -20,7 +20,6 @@ import { DISPLAYNAME_PREFIX, Popover, Position, - TagInput, Utils, } from "@blueprintjs/core"; import { diff --git a/client/src/components/NProgress/AppProgress.js b/client/src/components/NProgress/AppProgress.js index 39f9e4093..e0f052187 100644 --- a/client/src/components/NProgress/AppProgress.js +++ b/client/src/components/NProgress/AppProgress.js @@ -1,11 +1,8 @@ - import React from 'react'; import Progress from './Progress'; -import {queryCache, useIsFetching} from 'react-query'; +import {useIsFetching} from 'react-query'; -function AppProgress({ - -}) { +function AppProgress() { const isFetching = useIsFetching(); return ( diff --git a/client/src/components/NProgress/Progress.js b/client/src/components/NProgress/Progress.js index 48aa3332b..8e47d8a8d 100644 --- a/client/src/components/NProgress/Progress.js +++ b/client/src/components/NProgress/Progress.js @@ -1,9 +1,10 @@ +import React from 'react' import { useNProgress } from '@tanem/react-nprogress' import PropTypes from 'prop-types' -import React from 'react' + import Bar from './Bar' import Container from './Container' -import Spinner from './Spinner' + const Progress = ({ isAnimating, diff --git a/client/src/components/SelectList.js b/client/src/components/SelectList.js index 7e6acc10e..c9d904d8a 100644 --- a/client/src/components/SelectList.js +++ b/client/src/components/SelectList.js @@ -1,4 +1,4 @@ -import React, {useState, useMemo, useCallback} from 'react'; +import React from 'react'; import {Button} from '@blueprintjs/core'; import {Select} from '@blueprintjs/select'; diff --git a/client/src/components/Sidebar/SidebarHead.js b/client/src/components/Sidebar/SidebarHead.js index 73401a545..883553c42 100644 --- a/client/src/components/Sidebar/SidebarHead.js +++ b/client/src/components/Sidebar/SidebarHead.js @@ -1,7 +1,6 @@ import React from 'react'; import appMeta from 'config/app'; import Icon from 'components/Icon'; - export default function() { return (
diff --git a/client/src/components/Sidebar/SidebarMenu.js b/client/src/components/Sidebar/SidebarMenu.js index 4b2b3e35f..99ff73662 100644 --- a/client/src/components/Sidebar/SidebarMenu.js +++ b/client/src/components/Sidebar/SidebarMenu.js @@ -1,5 +1,5 @@ -import React, { useState } from 'react'; -import {Menu, MenuDivider, Collapse} from "@blueprintjs/core"; +import React from 'react'; +import {Menu, MenuDivider} from "@blueprintjs/core"; import {useHistory, useLocation} from 'react-router-dom'; import sidebarMenuList from 'config/sidebarMenu'; import Icon from 'components/Icon'; diff --git a/client/src/config/preferencesMenu.js b/client/src/config/preferencesMenu.js index f65e307bd..ddf3532a9 100644 --- a/client/src/config/preferencesMenu.js +++ b/client/src/config/preferencesMenu.js @@ -1,5 +1,5 @@ import React from 'react' -import { FormattedMessage as T, useIntl } from 'react-intl'; +import { FormattedMessage as T} from 'react-intl'; export default [ { diff --git a/client/src/config/sidebarMenu.js b/client/src/config/sidebarMenu.js index f93c29cb1..b5f3b14f4 100644 --- a/client/src/config/sidebarMenu.js +++ b/client/src/config/sidebarMenu.js @@ -1,5 +1,5 @@ import React from 'react' -import { FormattedMessage as T, useIntl } from 'react-intl'; +import { FormattedMessage as T} from 'react-intl'; export default [ { diff --git a/client/src/connectors/Search.connect.js b/client/src/connectors/Search.connect.js index 28fe31705..9845c4fbf 100644 --- a/client/src/connectors/Search.connect.js +++ b/client/src/connectors/Search.connect.js @@ -1,6 +1,5 @@ import { connect } from 'react-redux'; import t from 'store/types'; -import { generalSearch } from 'store/search/search.actions'; export const mapStateToProps = (state, props) => ({ resultSearch: state.globalSearch.searches, diff --git a/client/src/connectors/Settings.connect.js b/client/src/connectors/Settings.connect.js index a972ffe8b..b4b1d35b8 100644 --- a/client/src/connectors/Settings.connect.js +++ b/client/src/connectors/Settings.connect.js @@ -1,6 +1,5 @@ import { connect } from 'react-redux'; import { - FetchOption, FetchOptions, submitOptions, } from 'store/settings/settings.actions'; diff --git a/client/src/containers/Accounting/MakeJournalEntriesFooter.js b/client/src/containers/Accounting/MakeJournalEntriesFooter.js index 0b90ed418..1d8e0cb1a 100644 --- a/client/src/containers/Accounting/MakeJournalEntriesFooter.js +++ b/client/src/containers/Accounting/MakeJournalEntriesFooter.js @@ -1,6 +1,6 @@ -import React, { useMemo } from 'react'; +import React from 'react'; import { Intent, Button } from '@blueprintjs/core'; -import { FormattedMessage as T, useIntl } from 'react-intl'; +import { FormattedMessage as T } from 'react-intl'; export default function MakeJournalEntriesFooter({ formik: { isSubmitting }, diff --git a/client/src/containers/Accounting/MakeJournalEntriesForm.js b/client/src/containers/Accounting/MakeJournalEntriesForm.js index 4f72313ce..0aa08f529 100644 --- a/client/src/containers/Accounting/MakeJournalEntriesForm.js +++ b/client/src/containers/Accounting/MakeJournalEntriesForm.js @@ -3,7 +3,7 @@ import * as Yup from 'yup'; import { useFormik } from "formik"; import moment from 'moment'; import { Intent } from '@blueprintjs/core'; -import { FormattedMessage as T, useIntl } from 'react-intl'; +import { useIntl } from 'react-intl'; import { pick } from 'lodash'; import MakeJournalEntriesHeader from './MakeJournalEntriesHeader'; @@ -60,7 +60,7 @@ function MakeJournalEntriesForm({ } else { changePageTitle(formatMessage({id:'new_journal'})); } - }, [changePageTitle, changePageSubtitle, manualJournal]); + }, [changePageTitle, changePageSubtitle, manualJournal,formatMessage]); const validationSchema = Yup.object().shape({ journal_number: Yup.string().required().label(formatMessage({id:'journal_number_'})), diff --git a/client/src/containers/Accounting/MakeJournalEntriesHeader.js b/client/src/containers/Accounting/MakeJournalEntriesHeader.js index 8a766f018..7b4d4d839 100644 --- a/client/src/containers/Accounting/MakeJournalEntriesHeader.js +++ b/client/src/containers/Accounting/MakeJournalEntriesHeader.js @@ -6,10 +6,11 @@ import { Position, } from '@blueprintjs/core'; import {DateInput} from '@blueprintjs/datetime'; -import { FormattedMessage as T, useIntl } from 'react-intl'; +import { FormattedMessage as T } from 'react-intl'; import {Row, Col} from 'react-grid-system'; import moment from 'moment'; import {momentFormatter} from 'utils'; + import Icon from 'components/Icon'; import CurrenciesSelectList from 'components/CurrenciesSelectList'; import ErrorMessage from 'components/ErrorMessage'; @@ -17,7 +18,6 @@ import ErrorMessage from 'components/ErrorMessage'; export default function MakeJournalEntriesHeader({ formik: { errors, touched, setFieldValue, getFieldProps } }) { - const {formatMessage} = useIntl(); const handleDateChange = useCallback((date) => { const formatted = moment(date).format('YYYY-MM-DD'); diff --git a/client/src/containers/Accounting/MakeJournalEntriesTable.js b/client/src/containers/Accounting/MakeJournalEntriesTable.js index 55aceaab7..c1c4bbca5 100644 --- a/client/src/containers/Accounting/MakeJournalEntriesTable.js +++ b/client/src/containers/Accounting/MakeJournalEntriesTable.js @@ -1,5 +1,7 @@ import React, { useState, useMemo, useEffect, useCallback } from 'react'; import { Button, Intent } from '@blueprintjs/core'; +import { FormattedMessage as T, useIntl } from 'react-intl'; + import DataTable from 'components/DataTable'; import Icon from 'components/Icon'; import { compose, formattedAmount } from 'utils'; @@ -9,9 +11,7 @@ import { InputGroupCell, } from 'components/DataTableCells'; import { omit } from 'lodash'; - import withAccounts from 'containers/Accounts/withAccounts'; -import { FormattedMessage as T, useIntl } from 'react-intl'; // Actions cell renderer. const ActionsCellRenderer = ({ @@ -188,7 +188,7 @@ function MakeJournalEntriesTable({ width: 45, }, ], - [] + [formatMessage] ); // Handles click new line. diff --git a/client/src/containers/Accounting/ManualJournalActionsBar.js b/client/src/containers/Accounting/ManualJournalActionsBar.js index 8d052611f..43fc278b8 100644 --- a/client/src/containers/Accounting/ManualJournalActionsBar.js +++ b/client/src/containers/Accounting/ManualJournalActionsBar.js @@ -1,4 +1,4 @@ -import React, { useMemo, useState, useCallback } from 'react'; +import React, { useMemo, useCallback } from 'react'; import Icon from 'components/Icon'; import { Button, @@ -14,7 +14,8 @@ import { } from '@blueprintjs/core'; import classNames from 'classnames'; import { useRouteMatch, useHistory } from 'react-router-dom'; -import { compose } from 'utils'; +import { FormattedMessage as T } from 'react-intl'; + import FilterDropdown from 'components/FilterDropdown'; import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar'; @@ -25,7 +26,8 @@ import withResourceDetail from 'containers/Resources/withResourceDetails'; import withManualJournals from 'containers/Accounting/withManualJournals'; import withManualJournalsActions from 'containers/Accounting/withManualJournalsActions'; -import { FormattedMessage as T, useIntl } from 'react-intl'; +import { compose } from 'utils'; + function ManualJournalActionsBar({ @@ -45,7 +47,6 @@ function ManualJournalActionsBar({ }) { const { path } = useRouteMatch(); const history = useHistory(); - const {formatMessage} = useIntl(); const viewsMenuItems = manualJournalsViews.map(view => { return ( diff --git a/client/src/containers/Accounting/ManualJournalsDataTable.js b/client/src/containers/Accounting/ManualJournalsDataTable.js index 15b37d880..e2c6e11f8 100644 --- a/client/src/containers/Accounting/ManualJournalsDataTable.js +++ b/client/src/containers/Accounting/ManualJournalsDataTable.js @@ -97,8 +97,29 @@ function ManualJournalsDataTable({ [onDeleteJournal] ); - const actionMenuList = (journal) => ( - + // const actionMenuList = (journal) => ( + // + // } /> + // + // {!journal.status && ( + // } + // onClick={handlePublishJournal(journal)} + // /> + // )} + // } + // onClick={handleEditJournal(journal)} + // /> + // } + // intent={Intent.DANGER} + // onClick={handleDeleteJournal(journal)} + // /> + // + // ); + const actionMenuList =useCallback((journal)=>( + } /> {!journal.status && ( @@ -117,7 +138,7 @@ function ManualJournalsDataTable({ onClick={handleDeleteJournal(journal)} /> - ); + ),[handleEditJournal,handleDeleteJournal,handlePublishJournal]); const columns = useMemo(() => [ { @@ -203,7 +224,7 @@ function ManualJournalsDataTable({ width: 50, disableResizing: true, }, - ], []); + ], [actionMenuList,formatMessage]); const handleDataTableFetchData = useCallback((...args) => { onFetchData && onFetchData(...args); diff --git a/client/src/containers/Accounting/ManualJournalsList.js b/client/src/containers/Accounting/ManualJournalsList.js index 36ec25621..93e593dac 100644 --- a/client/src/containers/Accounting/ManualJournalsList.js +++ b/client/src/containers/Accounting/ManualJournalsList.js @@ -38,7 +38,6 @@ function ManualJournalsTable({ const history = useHistory(); const [deleteManualJournal, setDeleteManualJournal] = useState(false); - const [deleteBulk, setDeleteBulk] = useState(false); const [selectedRows, setSelectedRows] = useState([]); const [bulkDelete, setBulkDelete] = useState(false); @@ -53,7 +52,7 @@ function ManualJournalsTable({ useEffect(() => { changePageTitle(formatMessage({id:'manual_journals'})); - }, [changePageTitle]); + }, [changePageTitle,formatMessage]); // Handle delete manual journal click. const handleDeleteJournal = useCallback( @@ -81,7 +80,7 @@ function ManualJournalsTable({ }); setDeleteManualJournal(false); }); - }, [deleteManualJournal, requestDeleteManualJournal]); + }, [deleteManualJournal, requestDeleteManualJournal,formatMessage]); // Calculates the selected rows count. @@ -113,7 +112,7 @@ function ManualJournalsTable({ .catch((error) => { setBulkDelete(false); }); - }, [requestDeleteBulkManualJournals, bulkDelete]); + }, [requestDeleteBulkManualJournals, bulkDelete,formatMessage,selectedRowsCount]); // Handle cancel bulk delete alert. const handleCancelBulkDelete = useCallback(() => { @@ -133,9 +132,9 @@ function ManualJournalsTable({ }, [fetchManualJournals]); // Handle view change to re-fetch data table. - const handleViewChanged = useCallback(() => { + // const handleViewChanged = useCallback(() => { - }, [fetchManualJournals]); + // }, [fetchManualJournals]); // Handle fetch data of manual jouranls datatable. const handleFetchData = useCallback(({ pageIndex, pageSize, sortBy }) => { @@ -151,11 +150,11 @@ function ManualJournalsTable({ (journal) => { requestPublishManualJournal(journal.id).then(() => { AppToaster.show({ - message: 'the_manual_journal_id_has_been_published', + message: formatMessage({id:'the_manual_journal_id_has_been_published'}) }); }); }, - [requestPublishManualJournal] + [requestPublishManualJournal,formatMessage] ); // Handle selected rows change. diff --git a/client/src/containers/Accounting/ManualJournalsViewTabs.js b/client/src/containers/Accounting/ManualJournalsViewTabs.js index fe4042945..dc29db487 100644 --- a/client/src/containers/Accounting/ManualJournalsViewTabs.js +++ b/client/src/containers/Accounting/ManualJournalsViewTabs.js @@ -14,13 +14,13 @@ import { connect } from 'react-redux'; import { FormattedMessage as T } from 'react-intl'; import { useUpdateEffect } from 'hooks'; -import { compose } from 'utils'; import Icon from 'components/Icon'; import withManualJournals from './withManualJournals'; import withManualJournalsActions from './withManualJournalsActions'; import withDashboard from 'containers/Dashboard/withDashboard'; +import { compose } from 'utils'; function ManualJournalsViewTabs({ // #withManualJournals @@ -60,7 +60,7 @@ function ManualJournalsViewTabs({ addManualJournalsTableQueries({ custom_view_id: customViewId, }); - }, [customViewId]); + }, [customViewId,addManualJournalsTableQueries]); const tabs = manualJournalsViews.map((view) => { const baseUrl = '/manual-journals'; diff --git a/client/src/containers/Accounting/withManualJournalDetail.js b/client/src/containers/Accounting/withManualJournalDetail.js index 94f633ec9..1faeec322 100644 --- a/client/src/containers/Accounting/withManualJournalDetail.js +++ b/client/src/containers/Accounting/withManualJournalDetail.js @@ -1,5 +1,4 @@ import { connect } from 'react-redux'; -import t from 'store/types'; import { getManualJournal } from 'store/manualJournals/manualJournals.reducers'; const mapStateToProps = (state, props) => ({ diff --git a/client/src/containers/Accounts/AccountsActionsBar.js b/client/src/containers/Accounts/AccountsActionsBar.js index 302346f13..881060e5e 100644 --- a/client/src/containers/Accounts/AccountsActionsBar.js +++ b/client/src/containers/Accounts/AccountsActionsBar.js @@ -15,6 +15,7 @@ import { import classNames from 'classnames'; import { useHistory } from 'react-router-dom'; import { connect } from 'react-redux'; +import { FormattedMessage as T } from 'react-intl'; import { If } from 'components'; import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar'; @@ -27,7 +28,6 @@ import withAccountsTableActions from 'containers/Accounts/withAccountsTableActio import withAccounts from 'containers/Accounts/withAccounts'; import {compose} from 'utils'; -import { FormattedMessage as T, useIntl } from 'react-intl'; function AccountsActionsBar({ @@ -72,9 +72,9 @@ function AccountsActionsBar({ }, }); - const handleBulkArchive = useCallback(() => { - onBulkArchive && onBulkArchive(selectedRows.map(r => r.id)); - }, [onBulkArchive, selectedRows]); + // const handleBulkArchive = useCallback(() => { + // onBulkArchive && onBulkArchive(selectedRows.map(r => r.id)); + // }, [onBulkArchive, selectedRows]); const handleBulkDelete = useCallback(() => { onBulkDelete && onBulkDelete(selectedRows.map(r => r.id)); diff --git a/client/src/containers/Accounts/AccountsChart.js b/client/src/containers/Accounts/AccountsChart.js index 0b7a368c2..c9f63d554 100644 --- a/client/src/containers/Accounts/AccountsChart.js +++ b/client/src/containers/Accounts/AccountsChart.js @@ -77,7 +77,7 @@ function AccountsChart({ useEffect(() => { changePageTitle(formatMessage({ id: 'chart_of_accounts' })); - }, [changePageTitle]); + }, [changePageTitle,formatMessage]); // Handle click and cancel/confirm account delete const handleDeleteAccount = (account) => { @@ -115,7 +115,7 @@ function AccountsChart({ setDeleteAccount(false); handleDeleteErrors(errors); }); - }, [deleteAccount, requestDeleteAccount]); + }, [deleteAccount, requestDeleteAccount,formatMessage]); // Handle cancel/confirm account inactive. const handleInactiveAccount = useCallback((account) => { @@ -138,7 +138,7 @@ function AccountsChart({ intent: Intent.SUCCESS, }); }); - }, [inactiveAccount, requestInactiveAccount]); + }, [inactiveAccount, requestInactiveAccount,formatMessage]); // Handle activate account click. const handleActivateAccount = useCallback((account) => { @@ -182,7 +182,7 @@ function AccountsChart({ setBulkDelete(false); handleDeleteErrors(errors); }); - }, [requestDeleteBulkAccounts, bulkDelete]); + }, [requestDeleteBulkAccounts, bulkDelete,formatMessage]); // Handle cancel accounts bulk delete. const handleCancelBulkDelete = useCallback(() => { @@ -263,7 +263,7 @@ const handleConfirmBulkActivate = useCallback(() => { setBulkActivate(false); }); -}, [requestBulkActivateAccounts, bulkActivate]); +}, [requestBulkActivateAccounts, bulkActivate,formatMessage]); diff --git a/client/src/containers/Accounts/AccountsDataTable.js b/client/src/containers/Accounts/AccountsDataTable.js index 7ff42622e..59cc794db 100644 --- a/client/src/containers/Accounts/AccountsDataTable.js +++ b/client/src/containers/Accounts/AccountsDataTable.js @@ -1,4 +1,4 @@ -import React, { useEffect, useCallback, useState, useMemo } from 'react'; +import React, {useCallback, useState, useMemo } from 'react'; import { Button, Popover, @@ -84,7 +84,7 @@ function AccountsDataTable({ text={} onClick={() => onDeleteAccount(account)} /> - ), [handleEditAccount, onDeleteAccount, onInactiveAccount]); + ), [handleEditAccount, onDeleteAccount, onInactiveAccount,handleNewParentAccount]); const columns = useMemo(() => [ { @@ -166,7 +166,7 @@ function AccountsDataTable({ className: 'actions', width: 50, } - ], [actionMenuList]); + ], [actionMenuList,formatMessage]); const selectionColumn = useMemo(() => ({ minWidth: 50, diff --git a/client/src/containers/Accounts/AccountsViewsTabs.js b/client/src/containers/Accounts/AccountsViewsTabs.js index 4d5974bf9..815fa3af9 100644 --- a/client/src/containers/Accounts/AccountsViewsTabs.js +++ b/client/src/containers/Accounts/AccountsViewsTabs.js @@ -1,4 +1,4 @@ -import React, {useEffect, useCallback} from 'react'; +import React, {useEffect} from 'react'; import { useHistory } from 'react-router'; import { connect } from 'react-redux'; import { @@ -12,14 +12,15 @@ import { import { useParams, withRouter } from 'react-router-dom'; import Icon from 'components/Icon'; import { Link } from 'react-router-dom'; -import { compose } from 'utils'; +import { FormattedMessage as T } from 'react-intl'; import {useUpdateEffect} from 'hooks'; import withDashboard from 'containers/Dashboard/withDashboard'; import withAccounts from 'containers/Accounts/withAccounts'; import withAccountsTableActions from 'containers/Accounts/withAccountsTableActions'; import withViewDetail from 'containers/Views/withViewDetails'; -import { FormattedMessage as T, useIntl } from 'react-intl'; + +import { compose } from 'utils'; function AccountsViewsTabs({ // #withViewDetail diff --git a/client/src/containers/Authentication/InviteAccept.js b/client/src/containers/Authentication/InviteAccept.js index 4a4321428..bedc61291 100644 --- a/client/src/containers/Authentication/InviteAccept.js +++ b/client/src/containers/Authentication/InviteAccept.js @@ -1,12 +1,6 @@ import React, { useCallback, useMemo, useState } from 'react'; import * as Yup from 'yup'; import { useFormik } from 'formik'; -import { FormattedMessage as T, useIntl } from 'react-intl'; -import ErrorMessage from 'components/ErrorMessage'; -import AppToaster from 'components/AppToaster'; -import { compose } from 'utils'; -import withAuthenticationActions from './withAuthenticationActions'; -import { useParams } from 'react-router-dom'; import { Button, InputGroup, @@ -15,13 +9,23 @@ import { Position, Spinner, } from '@blueprintjs/core'; +import { useParams } from 'react-router-dom'; +import { Row, Col } from 'react-grid-system'; +import { Link, useHistory } from 'react-router-dom'; +import { FormattedMessage as T, useIntl } from 'react-intl'; + + +import AppToaster from 'components/AppToaster'; +import ErrorMessage from 'components/ErrorMessage'; import Icon from 'components/Icon'; -import { Row, Col } from 'react-grid-system'; -import AuthInsider from 'containers/Authentication/AuthInsider'; -import { Link, useHistory } from 'react-router-dom'; -import useAsync from 'hooks/async'; import { If } from 'components'; +import useAsync from 'hooks/async'; +import AuthInsider from 'containers/Authentication/AuthInsider'; + +import withAuthenticationActions from './withAuthenticationActions'; + +import { compose } from 'utils'; function Invite({ requestInviteAccept, requestInviteMetaByToken }) { const { formatMessage } = useIntl(); @@ -75,7 +79,6 @@ function Invite({ requestInviteAccept, requestInviteMetaByToken }) { ); const { - values, touched, errors, handleSubmit, diff --git a/client/src/containers/Authentication/Login.js b/client/src/containers/Authentication/Login.js index bfeebf862..ccdcda0ad 100644 --- a/client/src/containers/Authentication/Login.js +++ b/client/src/containers/Authentication/Login.js @@ -1,8 +1,6 @@ import React, { useMemo, useState } from 'react'; import { Link, useHistory } from 'react-router-dom'; import * as Yup from 'yup'; - - import { useFormik } from 'formik'; import { FormattedMessage as T, useIntl } from 'react-intl'; import { @@ -12,6 +10,7 @@ import { FormGroup, Checkbox, } from '@blueprintjs/core'; + import Toaster from 'components/AppToaster'; import ErrorMessage from 'components/ErrorMessage'; import AuthInsider from 'containers/Authentication/AuthInsider'; @@ -49,7 +48,6 @@ function Login({ // Formik validation schema and submit handler. const { - values, touched, errors, handleSubmit, diff --git a/client/src/containers/Authentication/Register.js b/client/src/containers/Authentication/Register.js index 3c89112c6..89135623e 100644 --- a/client/src/containers/Authentication/Register.js +++ b/client/src/containers/Authentication/Register.js @@ -1,8 +1,8 @@ import React, { useMemo, useState, useCallback } from 'react'; import * as Yup from 'yup'; import { useFormik } from 'formik'; -import { FormattedMessage as T, useIntl } from 'react-intl'; - +import { Row, Col } from 'react-grid-system'; +import { Link, useHistory } from 'react-router-dom'; import { Button, InputGroup, @@ -10,16 +10,17 @@ import { FormGroup, Spinner, } from '@blueprintjs/core'; +import { FormattedMessage as T, useIntl } from 'react-intl'; -import { Row, Col } from 'react-grid-system'; -import { Link, useHistory } from 'react-router-dom'; -import withAuthenticationActions from './withAuthenticationActions'; -import ErrorMessage from 'components/ErrorMessage'; import AppToaster from 'components/AppToaster'; -import AuthInsider from 'containers/Authentication/AuthInsider'; -import { compose } from 'utils'; + +import ErrorMessage from 'components/ErrorMessage'; import Icon from 'components/Icon'; import { If } from 'components'; +import AuthInsider from 'containers/Authentication/AuthInsider'; +import withAuthenticationActions from './withAuthenticationActions'; + +import { compose } from 'utils'; function Register({ requestRegister }) { const { formatMessage } = useIntl(); @@ -60,8 +61,6 @@ function Register({ requestRegister }) { const { errors, touched, - values, - setFieldValue, handleSubmit, getFieldProps, isSubmitting, diff --git a/client/src/containers/Authentication/ResetPassword.js b/client/src/containers/Authentication/ResetPassword.js index 4a5d6ee4a..f824fdd67 100644 --- a/client/src/containers/Authentication/ResetPassword.js +++ b/client/src/containers/Authentication/ResetPassword.js @@ -1,4 +1,4 @@ -import React, { useEffect, useMemo } from 'react'; +import React, { useMemo } from 'react'; import * as Yup from 'yup'; import { useFormik } from 'formik'; @@ -10,13 +10,15 @@ import { Position, } from '@blueprintjs/core'; import { Link, useParams, useHistory } from 'react-router-dom'; -import ErrorMessage from 'components/ErrorMessage'; -import AppToaster from 'components/AppToaster'; -import { compose } from 'utils'; -import withAuthenticationActions from './withAuthenticationActions'; -import AuthInsider from 'containers/Authentication/AuthInsider'; import { FormattedMessage as T, useIntl } from 'react-intl'; +import AppToaster from 'components/AppToaster'; +import ErrorMessage from 'components/ErrorMessage'; +import AuthInsider from 'containers/Authentication/AuthInsider'; +import withAuthenticationActions from './withAuthenticationActions'; + +import { compose } from 'utils'; + function ResetPassword({ requestResetPassword }) { @@ -44,10 +46,8 @@ function ResetPassword({ requestResetPassword }) { const { touched, - values, errors, handleSubmit, - setFieldValue, getFieldProps, isSubmitting, } = useFormik({ diff --git a/client/src/containers/Authentication/SendResetPassword.js b/client/src/containers/Authentication/SendResetPassword.js index fd0dda868..12195b289 100644 --- a/client/src/containers/Authentication/SendResetPassword.js +++ b/client/src/containers/Authentication/SendResetPassword.js @@ -34,12 +34,10 @@ function SendResetPassword({ requestSendResetPassword }) { // Formik validation const { - values, errors, touched, handleSubmit, getFieldProps, - setFieldValue, isSubmitting, } = useFormik({ enableReinitialize: true, diff --git a/client/src/containers/Dialogs/AccountFormDialog.js b/client/src/containers/Dialogs/AccountFormDialog.js index ccd467084..c68516872 100644 --- a/client/src/containers/Dialogs/AccountFormDialog.js +++ b/client/src/containers/Dialogs/AccountFormDialog.js @@ -16,7 +16,7 @@ import { useFormik } from 'formik'; import { FormattedMessage as T, useIntl } from 'react-intl'; import { omit } from 'lodash'; -import { useQuery, queryCache } from 'react-query'; +import { useQuery } from 'react-query'; import Dialog from 'components/Dialog'; import AppToaster from 'components/AppToaster'; @@ -228,13 +228,13 @@ function AccountFormDialog({ fetchAccountsList.refetch(); fetchAccountsTypes.refetch(); fetchAccount.refetch(); - }, []); + }, [ fetchAccount, fetchAccountsList, fetchAccountsTypes]); const onChangeAccountType = useCallback( (accountType) => { formik.setFieldValue('account_type_id', accountType.id); }, - [setSelectedAccountType, formik] + [formik] ); // Handles change sub-account. diff --git a/client/src/containers/Dialogs/CurrencyDialog.js b/client/src/containers/Dialogs/CurrencyDialog.js index a96fed3d3..1bd8ed1a2 100644 --- a/client/src/containers/Dialogs/CurrencyDialog.js +++ b/client/src/containers/Dialogs/CurrencyDialog.js @@ -11,20 +11,21 @@ import { FormattedMessage as T, useIntl } from 'react-intl'; import { useFormik } from 'formik'; import { useQuery } from 'react-query'; import { connect } from 'react-redux'; +import { pick } from 'lodash'; -import { compose } from 'utils'; -import Dialog from 'components/Dialog'; import AppToaster from 'components/AppToaster'; -import DialogConnect from 'connectors/Dialog.connector'; +import Dialog from 'components/Dialog'; import DialogReduxConnect from 'components/DialogReduxConnect'; +import ErrorMessage from 'components/ErrorMessage'; +import classNames from 'classnames'; +import DialogConnect from 'connectors/Dialog.connector'; +import { getDialogPayload } from 'store/dashboard/dashboard.reducer'; + import withCurrency from 'containers/Currencies/withCurrency'; import withCurrenciesActions from 'containers/Currencies/withCurrenciesActions'; -import ErrorMessage from 'components/ErrorMessage'; -import classNames from 'classnames'; -import { pick } from 'lodash'; -import { getDialogPayload } from 'store/dashboard/dashboard.reducer'; +import { compose } from 'utils'; @@ -59,11 +60,9 @@ function CurrencyDialog({ }), []); const { - values, errors, touched, isSubmitting, - setFieldValue, getFieldProps, handleSubmit, resetForm, @@ -118,7 +117,7 @@ function CurrencyDialog({ const onDialogClosed = useCallback(() => { resetForm(); closeDialog(name); - }, [closeDialog, name]); + }, [closeDialog, name,resetForm]); const requiredSpan = useMemo(() => *, []); diff --git a/client/src/containers/Dialogs/ExchangeRateDialog.js b/client/src/containers/Dialogs/ExchangeRateDialog.js index 7541a572d..810faabb2 100644 --- a/client/src/containers/Dialogs/ExchangeRateDialog.js +++ b/client/src/containers/Dialogs/ExchangeRateDialog.js @@ -1,4 +1,4 @@ -import React, { useState, useMemo, useCallback, useEffect } from 'react'; +import React, { useState, useMemo, useCallback } from 'react'; import { Button, Classes, @@ -12,17 +12,17 @@ import { pick } from 'lodash'; import * as Yup from 'yup'; import { FormattedMessage as T, useIntl } from 'react-intl'; import { useFormik } from 'formik'; -import Dialog from 'components/Dialog'; -import AppToaster from 'components/AppToaster'; - -import { useQuery, queryCache } from 'react-query'; -import ErrorMessage from 'components/ErrorMessage'; -import classNames from 'classnames'; import { Select } from '@blueprintjs/select'; +import { useQuery } from 'react-query'; import moment from 'moment'; import { DateInput } from '@blueprintjs/datetime'; import { momentFormatter } from 'utils'; +import AppToaster from 'components/AppToaster'; +import Dialog from 'components/Dialog'; +import ErrorMessage from 'components/ErrorMessage'; +import classNames from 'classnames'; + import withExchangeRatesDialog from './ExchangeRateDialog.container'; @@ -61,7 +61,6 @@ function ExchangeRateDialog({ }), []); const { - values, touched, errors, isSubmitting, @@ -117,7 +116,7 @@ function ExchangeRateDialog({ const onDialogClosed = useCallback(() => { resetForm(); closeDialog(name); - }, [closeDialog, name]); + }, [closeDialog, name,resetForm]); const onDialogOpening = useCallback(() => { fetchExchangeRatesDialog.refetch(); diff --git a/client/src/containers/Dialogs/InviteUserDialog.js b/client/src/containers/Dialogs/InviteUserDialog.js index dab39129c..a6345b8cd 100644 --- a/client/src/containers/Dialogs/InviteUserDialog.js +++ b/client/src/containers/Dialogs/InviteUserDialog.js @@ -10,14 +10,17 @@ import { Intent, Classes, } from '@blueprintjs/core'; -import UserListDialogConnect from 'connectors/UsersList.connector'; -import DialogReduxConnect from 'components/DialogReduxConnect'; -import useAsync from 'hooks/async'; import { objectKeysTransform } from 'utils'; import { pick, snakeCase } from 'lodash'; -import ErrorMessage from 'components/ErrorMessage'; -import classNames from 'classnames'; + import AppToaster from 'components/AppToaster'; + +import DialogReduxConnect from 'components/DialogReduxConnect'; +import UserListDialogConnect from 'connectors/UsersList.connector'; +import ErrorMessage from 'components/ErrorMessage'; +import useAsync from 'hooks/async'; +import classNames from 'classnames'; + import { compose } from 'utils'; function InviteUserDialog({ @@ -84,7 +87,7 @@ function InviteUserDialog({ } }, }); - const { values, errors, touched } = useMemo(() => formik, [formik]); + const { errors, touched } = useMemo(() => formik, [formik]); const onDialogOpening = () => { fetchHook.execute(); diff --git a/client/src/containers/Dialogs/ItemCategoryDialog.js b/client/src/containers/Dialogs/ItemCategoryDialog.js index c00c9004f..0dd751053 100644 --- a/client/src/containers/Dialogs/ItemCategoryDialog.js +++ b/client/src/containers/Dialogs/ItemCategoryDialog.js @@ -16,6 +16,7 @@ import { useFormik } from 'formik'; import { compose } from 'utils'; import { useQuery, queryCache } from 'react-query'; import classNames from 'classnames'; +import {connect} from 'react-redux'; import AppToaster from 'components/AppToaster'; import ErrorMessage from 'components/ErrorMessage'; @@ -24,7 +25,6 @@ import Dialog from 'components/Dialog'; import DialogConnect from 'connectors/Dialog.connector'; import DialogReduxConnect from 'components/DialogReduxConnect'; -import {connect} from 'react-redux'; import { getDialogPayload } from 'store/dashboard/dashboard.reducer'; import withItemCategoryDetail from 'containers/Items/withItemCategoryDetail'; import withItemCategories from 'containers/Items/withItemCategories'; @@ -75,7 +75,6 @@ function ItemCategoryDialog({ // Formik const { errors, - values, touched, setFieldValue, handleSubmit, diff --git a/client/src/containers/Dialogs/UserFormDialog.js b/client/src/containers/Dialogs/UserFormDialog.js index 32e89206c..cdcd7f0b6 100644 --- a/client/src/containers/Dialogs/UserFormDialog.js +++ b/client/src/containers/Dialogs/UserFormDialog.js @@ -1,4 +1,4 @@ -import React, { useMemo, useCallback } from 'react'; +import React, {useCallback } from 'react'; import { FormattedMessage as T, useIntl } from 'react-intl'; import { useFormik } from 'formik'; import * as Yup from 'yup'; @@ -10,14 +10,15 @@ import { Intent, Classes, } from '@blueprintjs/core'; -import UserFormDialogConnect from 'connectors/UserFormDialog.connector'; -import DialogReduxConnect from 'components/DialogReduxConnect'; -import AppToaster from 'components/AppToaster'; -import useAsync from 'hooks/async'; import { objectKeysTransform } from 'utils'; import { pick, snakeCase } from 'lodash'; -import ErrorMessage from 'components/ErrorMessage'; import classNames from 'classnames'; + +import AppToaster from 'components/AppToaster'; +import DialogReduxConnect from 'components/DialogReduxConnect'; +import ErrorMessage from 'components/ErrorMessage'; +import useAsync from 'hooks/async'; +import UserFormDialogConnect from 'connectors/UserFormDialog.connector'; import { compose } from 'utils'; function UserFormDialog({ @@ -49,7 +50,6 @@ function UserFormDialog({ }; const { - values, errors, touched, resetForm, diff --git a/client/src/containers/ExchangeRates/ExchangeRate.js b/client/src/containers/ExchangeRates/ExchangeRate.js index effb1a8e1..aa9296931 100644 --- a/client/src/containers/ExchangeRates/ExchangeRate.js +++ b/client/src/containers/ExchangeRates/ExchangeRate.js @@ -2,6 +2,7 @@ import React, { useEffect, useState, useCallback,useMemo } from 'react'; import { useQuery } from 'react-query'; import { useParams } from 'react-router-dom'; import { Alert, Intent } from '@blueprintjs/core'; +import { FormattedMessage as T, useIntl, FormattedHTMLMessage } from 'react-intl'; import AppToaster from 'components/AppToaster'; import DashboardPageContent from 'components/Dashboard/DashboardPageContent'; @@ -15,7 +16,6 @@ import withExchangeRatesActions from 'containers/ExchangeRates/withExchangeRates import { compose } from 'utils'; - import { FormattedMessage as T, useIntl, FormattedHTMLMessage } from 'react-intl'; function ExchangeRate({ // #withDashboard @@ -37,10 +37,6 @@ function ExchangeRate({ const { formatMessage } = useIntl(); const [bulkDelete, setBulkDelete] = useState(false); - // const fetchExchangeRates = useQuery('exchange-rates-table', () => { - // return Promise.all([requestFetchExchangeRates()]); - // }); - const fetchExchangeRates = useQuery('exchange-rates-table', () => requestFetchExchangeRates()); @@ -49,7 +45,7 @@ function ExchangeRate({ id ? changePageTitle(formatMessage({id:'exchange_rate_details'})) : changePageTitle(formatMessage({id:'exchange_rate_list'})); - }, [id, changePageTitle]); + }, [id, changePageTitle,formatMessage]); const handelDeleteExchangeRate = useCallback( (exchange_rate) => { @@ -71,7 +67,7 @@ function ExchangeRate({ message: formatMessage({id:'the_exchange_rate_has_been_successfully_deleted'}), }); }); - }, [deleteExchangeRate, requestDeleteExchangeRate]); + }, [deleteExchangeRate, requestDeleteExchangeRate,formatMessage]); // Handle fetch data of Exchange_rates datatable. const handleFetchData = useCallback( @@ -123,7 +119,7 @@ const handleConfirmBulkDelete = useCallback(() => { .catch((errors) => { setBulkDelete(false); }); -}, [requestDeleteBulkExchangeRates, bulkDelete]); +}, [requestDeleteBulkExchangeRates, bulkDelete,formatMessage]); // Calculates the data table selected rows count. diff --git a/client/src/containers/ExchangeRates/ExchangeRateTable.js b/client/src/containers/ExchangeRates/ExchangeRateTable.js index 1d633e983..f044939f2 100644 --- a/client/src/containers/ExchangeRates/ExchangeRateTable.js +++ b/client/src/containers/ExchangeRates/ExchangeRateTable.js @@ -1,16 +1,15 @@ import React, { useCallback, useMemo,useState } from 'react'; import Icon from 'components/Icon'; import DialogConnect from 'connectors/Dialog.connector'; -import LoadingIndicator from 'components/LoadingIndicator'; import DataTable from 'components/DataTable'; import { Button, Popover, Menu, MenuItem, Position } from '@blueprintjs/core'; +import { FormattedMessage as T, useIntl } from 'react-intl'; import withExchangeRatesActions from 'containers/ExchangeRates/withExchangeRatesActions'; import withExchangeRates from 'containers/ExchangeRates/withExchangeRates'; import { compose } from 'utils'; -import { FormattedMessage as T, useIntl } from 'react-intl'; function ExchangeRateTable({ // #withExchangeRates @@ -91,7 +90,7 @@ function ExchangeRateTable({ width: 50, disableResizing: false, }, - ], [actionMenuList]); + ], [actionMenuList,formatMessage]); const selectionColumn = useMemo(() => ({ minWidth: 42, diff --git a/client/src/containers/ExchangeRates/withExchangeRates.js b/client/src/containers/ExchangeRates/withExchangeRates.js index 2fafe3544..3d4daf38c 100644 --- a/client/src/containers/ExchangeRates/withExchangeRates.js +++ b/client/src/containers/ExchangeRates/withExchangeRates.js @@ -1,5 +1,4 @@ import { connect } from 'react-redux'; -import { getResourceViews } from 'store/customViews/customViews.selectors'; export default (mapState) => { const mapStateToProps = (state, props) => { diff --git a/client/src/containers/Expenses/ExpenseForm.js b/client/src/containers/Expenses/ExpenseForm.js index 5f5d82ecc..3b33cd7c0 100644 --- a/client/src/containers/Expenses/ExpenseForm.js +++ b/client/src/containers/Expenses/ExpenseForm.js @@ -4,7 +4,7 @@ import {useParams} from 'react-router-dom'; import Connector from 'connectors/ExpenseForm.connector'; import DashboardInsider from 'components/Dashboard/DashboardInsider'; import ExpenseForm from 'components/Expenses/ExpenseForm'; -import { FormattedMessage as T, useIntl } from 'react-intl'; +import { useIntl } from 'react-intl'; function ExpenseFormContainer({ fetchAccounts, @@ -23,7 +23,7 @@ function ExpenseFormContainer({ } else { changePageTitle(formatMessage({id:'new_expense'})); } - }, []); + }, [id,changePageTitle,formatMessage]); const fetchHook = useAsync(async () => { await Promise.all([ diff --git a/client/src/containers/Expenses/ExpensesList.js b/client/src/containers/Expenses/ExpensesList.js index 41a8122bb..7d8622f31 100644 --- a/client/src/containers/Expenses/ExpensesList.js +++ b/client/src/containers/Expenses/ExpensesList.js @@ -21,7 +21,7 @@ function ExpensesList({ const {formatMessage} =useIntl() useEffect(() => { changePageTitle(formatMessage({id:'expenses_list'})); - }, []); + }, [changePageTitle,formatMessage]); const [deleteExpenseState, setDeleteExpense] = useState(); diff --git a/client/src/containers/FinancialStatements/BalanceSheet/BalanceSheet.js b/client/src/containers/FinancialStatements/BalanceSheet/BalanceSheet.js index e205a71d8..8942a6b4e 100644 --- a/client/src/containers/FinancialStatements/BalanceSheet/BalanceSheet.js +++ b/client/src/containers/FinancialStatements/BalanceSheet/BalanceSheet.js @@ -1,4 +1,4 @@ -import React, { useEffect, useMemo, useCallback, useState } from 'react'; +import React, { useEffect, useCallback, useState } from 'react'; import { compose } from 'utils'; import { useQuery } from 'react-query'; @@ -16,7 +16,7 @@ import withSettings from 'containers/Settings/withSettings'; import withBalanceSheetActions from './withBalanceSheetActions'; import withBalanceSheetDetail from './withBalanceSheetDetail'; -import { FormattedMessage as T, useIntl } from 'react-intl'; +import {useIntl } from 'react-intl'; function BalanceSheet({ @@ -54,7 +54,7 @@ function BalanceSheet({ useEffect(() => { changePageTitle(formatMessage({ id: 'balance_sheet' })); - }, []); + }, [changePageTitle,formatMessage]); // Handle re-fetch balance sheet after filter change. const handleFilterSubmit = useCallback((filter) => { diff --git a/client/src/containers/FinancialStatements/BalanceSheet/BalanceSheetActionsBar.js b/client/src/containers/FinancialStatements/BalanceSheet/BalanceSheetActionsBar.js index 467557ee2..07c5fbd94 100644 --- a/client/src/containers/FinancialStatements/BalanceSheet/BalanceSheetActionsBar.js +++ b/client/src/containers/FinancialStatements/BalanceSheet/BalanceSheetActionsBar.js @@ -3,24 +3,21 @@ import { NavbarGroup, Button, Classes, - NavbarHeading, NavbarDivider, - Intent, Popover, PopoverInteractionKind, Position, } from '@blueprintjs/core'; +import { FormattedMessage as T } from 'react-intl'; + import Icon from 'components/Icon'; import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar' +import FilterDropdown from 'components/FilterDropdown'; import classNames from 'classnames'; -import FilterDropdown from 'components/FilterDropdown'; -import { FormattedMessage as T, useIntl } from 'react-intl'; -export default function JournalActionsBar({ - -}) { +export default function JournalActionsBar() { const filterDropdown = FilterDropdown({ fields: [], onFilterChange: (filterConditions) => { diff --git a/client/src/containers/FinancialStatements/BalanceSheet/BalanceSheetHeader.js b/client/src/containers/FinancialStatements/BalanceSheet/BalanceSheetHeader.js index 517fdf704..324e816da 100644 --- a/client/src/containers/FinancialStatements/BalanceSheet/BalanceSheetHeader.js +++ b/client/src/containers/FinancialStatements/BalanceSheet/BalanceSheetHeader.js @@ -6,15 +6,16 @@ import { 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 { useFormik } from 'formik'; +import { FormattedMessage as T, useIntl } from 'react-intl'; + +import Icon from 'components/Icon'; +import SelectList from 'components/SelectList'; 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({ @@ -45,7 +46,7 @@ export default function BalanceSheetHeader({ const onItemSelectDisplayColumns = useCallback((item) => { formik.setFieldValue('display_columns_type', item.type); formik.setFieldValue('display_columns_by', item.by); - }, []); + }, [formik]); // Handle submit filter submit button. const handleSubmitClick = useCallback(() => { @@ -55,7 +56,7 @@ export default function BalanceSheetHeader({ const filterAccountsOptions = useMemo(() => [ { key: '', name: formatMessage({ id: 'accounts_with_zero_balance' }) }, { key: 'all-trans', name: formatMessage({ id: 'all_transactions' }) }, - ], []); + ], [formatMessage]); const filterAccountRenderer = useCallback((item, { handleClick, modifiers, query }) => { return (); diff --git a/client/src/containers/FinancialStatements/BalanceSheet/BalanceSheetTable.js b/client/src/containers/FinancialStatements/BalanceSheet/BalanceSheetTable.js index cb043fab2..04b021afd 100644 --- a/client/src/containers/FinancialStatements/BalanceSheet/BalanceSheetTable.js +++ b/client/src/containers/FinancialStatements/BalanceSheet/BalanceSheetTable.js @@ -1,5 +1,6 @@ import React, {useMemo, useCallback } from 'react'; import { connect } from 'react-redux'; +import { useIntl } from 'react-intl'; import Money from 'components/Money'; import FinancialSheet from 'components/FinancialSheet'; @@ -12,7 +13,6 @@ import { } from 'store/financialStatement/financialStatements.selectors'; import { compose, defaultExpanderReducer } from 'utils'; -import { FormattedMessage as T, useIntl } from 'react-intl'; function BalanceSheetTable({ @@ -108,7 +108,7 @@ function BalanceSheetTable({ width: 100, }))) : [], - ], [balanceSheetQuery, balanceSheetColumns]); + ], [balanceSheetQuery, balanceSheetColumns,formatMessage]); const handleFetchData = useCallback(() => { onFetchData && onFetchData(); diff --git a/client/src/containers/FinancialStatements/FinancialStatementDateRange.js b/client/src/containers/FinancialStatements/FinancialStatementDateRange.js index efc264a41..c4d14df60 100644 --- a/client/src/containers/FinancialStatements/FinancialStatementDateRange.js +++ b/client/src/containers/FinancialStatements/FinancialStatementDateRange.js @@ -2,7 +2,7 @@ import React, {useState, useCallback, useMemo} from 'react'; import {Row, Col} from 'react-grid-system'; import {momentFormatter} from 'utils'; import {DateInput} from '@blueprintjs/datetime'; -import { FormattedMessage as T, useIntl } from 'react-intl'; +import { useIntl } from 'react-intl'; import { HTMLSelect, diff --git a/client/src/containers/FinancialStatements/GeneralLedger/GeneralLedger.js b/client/src/containers/FinancialStatements/GeneralLedger/GeneralLedger.js index 9bbea9bf1..57e07c46d 100644 --- a/client/src/containers/FinancialStatements/GeneralLedger/GeneralLedger.js +++ b/client/src/containers/FinancialStatements/GeneralLedger/GeneralLedger.js @@ -1,4 +1,4 @@ -import React, { useEffect, useCallback, useState, useMemo } from 'react'; +import React, { useEffect, useCallback, useState} from 'react'; import moment from 'moment'; import GeneralLedgerTable from 'containers/FinancialStatements/GeneralLedger/GeneralLedgerTable'; import { useQuery } from 'react-query'; @@ -43,7 +43,7 @@ function GeneralLedger({ // Change page title of the dashboard. useEffect(() => { changePageTitle(formatMessage({id:'general_ledger'})); - }, []); + }, [changePageTitle,formatMessage]); const fetchAccounts = useQuery(['accounts-list'], () => requestFetchAccounts()); diff --git a/client/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerActionsBar.js b/client/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerActionsBar.js index 244648896..5d20cd585 100644 --- a/client/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerActionsBar.js +++ b/client/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerActionsBar.js @@ -3,25 +3,21 @@ import { NavbarGroup, Button, Classes, - NavbarHeading, NavbarDivider, - Intent, Popover, PopoverInteractionKind, Position, } from '@blueprintjs/core'; +import { FormattedMessage as T } from 'react-intl'; import Icon from 'components/Icon'; import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar' import classNames from 'classnames'; import FilterDropdown from 'components/FilterDropdown'; -import { FormattedMessage as T, useIntl } from 'react-intl'; /** * General ledger actions bar. */ -export default function GeneralLedgerActionsBar({ - -}) { +export default function GeneralLedgerActionsBar() { const filterDropdown = FilterDropdown({ fields: [], onFilterChange: (filterConditions) => { diff --git a/client/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerHeader.js b/client/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerHeader.js index 27716cbc1..47f2ee0fa 100644 --- a/client/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerHeader.js +++ b/client/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerHeader.js @@ -1,31 +1,29 @@ -import React, {useState, useMemo, useEffect, useCallback} from 'react'; -import FinancialStatementHeader from 'containers/FinancialStatements/FinancialStatementHeader'; -import { FormattedMessage as T, useIntl } from 'react-intl'; - +import React, { useCallback} from 'react'; import { Button, FormGroup, Classes, } from '@blueprintjs/core'; import {Row, Col} from 'react-grid-system'; -import { - compose, -} from 'utils'; import moment from 'moment'; +import * as Yup from 'yup'; +import {useFormik} from 'formik'; +import { FormattedMessage as T } from 'react-intl'; + +import AccountsMultiSelect from 'components/AccountsMultiSelect'; +import FinancialStatementHeader from 'containers/FinancialStatements/FinancialStatementHeader'; import AccountsConnect from 'connectors/Accounts.connector' import classNames from 'classnames'; -import AccountsMultiSelect from 'components/AccountsMultiSelect'; -import {useFormik} from 'formik'; import FinancialStatementDateRange from 'containers/FinancialStatements/FinancialStatementDateRange'; -import * as Yup from 'yup'; import RadiosAccountingBasis from '../RadiosAccountingBasis'; +import {compose} from 'utils'; + function GeneralLedgerHeader({ onSubmitFilter, pageFilter, accounts, }) { - const {formatMessage} = useIntl(); const formik = useFormik({ enableReinitialize: true, diff --git a/client/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerTable.js b/client/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerTable.js index c73f6af28..86d27bad7 100644 --- a/client/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerTable.js +++ b/client/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerTable.js @@ -1,11 +1,11 @@ -import React, {useEffect, useState, useCallback, useMemo} from 'react'; +import React, {useCallback, useMemo} from 'react'; import moment from 'moment'; import { connect } from 'react-redux'; import { defaultExpanderReducer, compose } from 'utils'; -import { FormattedMessage as T, useIntl } from 'react-intl'; +import { useIntl } from 'react-intl'; import FinancialSheet from 'components/FinancialSheet'; import DataTable from 'components/DataTable'; diff --git a/client/src/containers/FinancialStatements/Journal/Journal.js b/client/src/containers/FinancialStatements/Journal/Journal.js index a4344612e..c6638ba0f 100644 --- a/client/src/containers/FinancialStatements/Journal/Journal.js +++ b/client/src/containers/FinancialStatements/Journal/Journal.js @@ -36,7 +36,7 @@ function Journal({ useEffect(() => { changePageTitle(formatMessage({id:'journal_sheet'})); - }, []); + }, [changePageTitle,formatMessage]); const fetchHook = useQuery(['journal', filter], (key, query) => requestFetchJournalSheet(query), diff --git a/client/src/containers/FinancialStatements/Journal/JournalActionsBar.js b/client/src/containers/FinancialStatements/Journal/JournalActionsBar.js index c4b2a1896..d15994149 100644 --- a/client/src/containers/FinancialStatements/Journal/JournalActionsBar.js +++ b/client/src/containers/FinancialStatements/Journal/JournalActionsBar.js @@ -3,22 +3,18 @@ import { NavbarGroup, Button, Classes, - NavbarHeading, NavbarDivider, - Intent, Popover, PopoverInteractionKind, Position, } from '@blueprintjs/core'; +import { FormattedMessage as T } from 'react-intl'; import Icon from 'components/Icon'; import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar' -import classNames from 'classnames'; import FilterDropdown from 'components/FilterDropdown'; -import { FormattedMessage as T, useIntl } from 'react-intl'; +import classNames from 'classnames'; -export default function JournalActionsBar({ - -}) { +export default function JournalActionsBar() { const filterDropdown = FilterDropdown({ fields: [], onFilterChange: (filterConditions) => { diff --git a/client/src/containers/FinancialStatements/Journal/JournalHeader.js b/client/src/containers/FinancialStatements/Journal/JournalHeader.js index 35647ff6c..9a027b777 100644 --- a/client/src/containers/FinancialStatements/Journal/JournalHeader.js +++ b/client/src/containers/FinancialStatements/Journal/JournalHeader.js @@ -2,11 +2,10 @@ import React, { useCallback } from 'react'; import { Row, Col } from 'react-grid-system'; import { Button, - Intent, } from '@blueprintjs/core'; import moment from 'moment'; import { useFormik } from 'formik'; -import { FormattedMessage as T, useIntl } from 'react-intl'; +import { FormattedMessage as T } from 'react-intl'; import * as Yup from 'yup'; import FinancialStatementDateRange from 'containers/FinancialStatements/FinancialStatementDateRange'; @@ -17,7 +16,7 @@ export default function JournalHeader({ pageFilter, onSubmitFilter, }) { - const { formatMessage } = useIntl(); + const formik = useFormik({ enableReinitialize: true, initialValues: { diff --git a/client/src/containers/FinancialStatements/Journal/JournalTable.js b/client/src/containers/FinancialStatements/Journal/JournalTable.js index 0342ffa5a..b3a8ada73 100644 --- a/client/src/containers/FinancialStatements/Journal/JournalTable.js +++ b/client/src/containers/FinancialStatements/Journal/JournalTable.js @@ -1,6 +1,7 @@ import React, { useCallback, useMemo } from 'react'; import {connect} from 'react-redux'; import moment from 'moment'; +import { useIntl } from 'react-intl'; import FinancialSheet from 'components/FinancialSheet'; import DataTable from 'components/DataTable'; @@ -12,7 +13,6 @@ import { } from 'store/financialStatement/financialStatements.selectors'; import withJournal from './withJournal'; -import { FormattedMessage as T, useIntl } from 'react-intl'; function JournalSheetTable({ @@ -78,7 +78,7 @@ function JournalSheetTable({ accessor: r => exceptRowTypes( r.rowType, (), ['space_entry']), }, - ], []); + ], [formatMessage]); const handleFetchData = useCallback((...args) => { onFetchData && onFetchData(...args) diff --git a/client/src/containers/FinancialStatements/ProfitLossSheet/ProfitLossActionsBar.js b/client/src/containers/FinancialStatements/ProfitLossSheet/ProfitLossActionsBar.js index c476a1d36..965195797 100644 --- a/client/src/containers/FinancialStatements/ProfitLossSheet/ProfitLossActionsBar.js +++ b/client/src/containers/FinancialStatements/ProfitLossSheet/ProfitLossActionsBar.js @@ -5,21 +5,19 @@ import { Classes, NavbarDivider, } from '@blueprintjs/core'; +import { FormattedMessage as T } from 'react-intl'; import Icon from 'components/Icon'; import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar' import classNames from 'classnames'; -import FilterDropdown from 'components/FilterDropdown'; -import { FormattedMessage as T, useIntl } from 'react-intl'; +// import FilterDropdown from 'components/FilterDropdown'; -export default function ProfitLossActionsBar({ - -}) { - const filterDropdown = FilterDropdown({ - fields: [], - onFilterChange: (filterConditions) => { +export default function ProfitLossActionsBar() { + // const filterDropdown = FilterDropdown({ + // fields: [], + // onFilterChange: (filterConditions) => { - }, - }); + // }, + // }); return ( diff --git a/client/src/containers/FinancialStatements/ProfitLossSheet/ProfitLossSheetTable.js b/client/src/containers/FinancialStatements/ProfitLossSheet/ProfitLossSheetTable.js index 0c68f5998..508714c6b 100644 --- a/client/src/containers/FinancialStatements/ProfitLossSheet/ProfitLossSheetTable.js +++ b/client/src/containers/FinancialStatements/ProfitLossSheet/ProfitLossSheetTable.js @@ -1,5 +1,7 @@ import React, { useMemo, useCallback } from 'react'; import { connect } from 'react-redux'; +import { FormattedMessage as T, useIntl } from 'react-intl'; + import FinancialSheet from 'components/FinancialSheet'; import DataTable from 'components/DataTable'; import Money from 'components/Money'; @@ -9,7 +11,6 @@ import { getFinancialSheetIndexByQuery, } from 'store/financialStatement/financialStatements.selectors'; import withProfitLossDetail from './withProfitLoss'; -import { FormattedMessage as T, useIntl } from 'react-intl'; function ProfitLossSheetTable({ @@ -64,7 +65,7 @@ function ProfitLossSheetTable({ width: 100, }))) : [], - ], [profitLossQuery.display_columns_type, profitLossColumns]); + ], [profitLossQuery.display_columns_type, profitLossColumns,formatMessage]); // Handle data table fetch data. const handleFetchData = useCallback((...args) => { diff --git a/client/src/containers/FinancialStatements/SelectDisplayColumnsBy.js b/client/src/containers/FinancialStatements/SelectDisplayColumnsBy.js index a3989ef3d..d2606b16a 100644 --- a/client/src/containers/FinancialStatements/SelectDisplayColumnsBy.js +++ b/client/src/containers/FinancialStatements/SelectDisplayColumnsBy.js @@ -6,7 +6,7 @@ import { FormGroup, MenuItem, } from '@blueprintjs/core'; -import { FormattedMessage as T, useIntl } from 'react-intl'; +import { FormattedMessage as T } from 'react-intl'; export default function SelectsListColumnsBy(props) { const { onItemSelect, formGroupProps, selectListProps } = props; @@ -19,7 +19,7 @@ export default function SelectsListColumnsBy(props) { {key: 'week', name: 'Date/Week', type: 'date_periods', by: 'month'}, {key: 'day', name: 'Date/Day', type: 'date_periods', by: 'day'}, {key: 'quarter', name: 'Date/Quarter', type: 'date_periods', by: 'quarter'}, - ]); + ],[]); const itemRenderer = useCallback((item, { handleClick, modifiers, query }) => { return (); diff --git a/client/src/containers/FinancialStatements/TrialBalanceSheet/TrialBalanceActionsBar.js b/client/src/containers/FinancialStatements/TrialBalanceSheet/TrialBalanceActionsBar.js index b9089c97b..6e88ac1ed 100644 --- a/client/src/containers/FinancialStatements/TrialBalanceSheet/TrialBalanceActionsBar.js +++ b/client/src/containers/FinancialStatements/TrialBalanceSheet/TrialBalanceActionsBar.js @@ -3,28 +3,22 @@ import { NavbarGroup, Button, Classes, - NavbarHeading, NavbarDivider, - Intent, - Popover, - PopoverInteractionKind, - Position, } from '@blueprintjs/core'; import Icon from 'components/Icon'; +import { FormattedMessage as T } from 'react-intl'; import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar' import classNames from 'classnames'; -import FilterDropdown from 'components/FilterDropdown'; -import { FormattedMessage as T, useIntl } from 'react-intl'; +// import FilterDropdown from 'components/FilterDropdown'; -export default function GeneralLedgerActionsBar({ - -}) { - const filterDropdown = FilterDropdown({ - fields: [], - onFilterChange: (filterConditions) => { +export default function GeneralLedgerActionsBar() { + + // const filterDropdown = FilterDropdown({ + // fields: [], + // onFilterChange: (filterConditions) => { - }, - }); + // }, + // }); return ( diff --git a/client/src/containers/FinancialStatements/TrialBalanceSheet/TrialBalanceSheet.js b/client/src/containers/FinancialStatements/TrialBalanceSheet/TrialBalanceSheet.js index cbea0f1c2..d23f7b8b3 100644 --- a/client/src/containers/FinancialStatements/TrialBalanceSheet/TrialBalanceSheet.js +++ b/client/src/containers/FinancialStatements/TrialBalanceSheet/TrialBalanceSheet.js @@ -1,4 +1,4 @@ -import React, { useEffect, useCallback, useState, useMemo } from 'react'; +import React, { useEffect, useCallback, useState } from 'react'; import { useQuery } from 'react-query'; import moment from 'moment'; import { useIntl } from 'react-intl'; @@ -52,7 +52,7 @@ function TrialBalanceSheet({ // Change page title of the dashboard. useEffect(() => { changePageTitle(formatMessage({id:'trial_balance_sheet'})); - }, []); + }, [changePageTitle,formatMessage]); const handleFilterSubmit = useCallback((filter) => { const parsedFilter = { diff --git a/client/src/containers/FinancialStatements/TrialBalanceSheet/TrialBalanceSheetTable.js b/client/src/containers/FinancialStatements/TrialBalanceSheet/TrialBalanceSheetTable.js index f785e18be..51c642d3e 100644 --- a/client/src/containers/FinancialStatements/TrialBalanceSheet/TrialBalanceSheetTable.js +++ b/client/src/containers/FinancialStatements/TrialBalanceSheet/TrialBalanceSheetTable.js @@ -59,7 +59,7 @@ function TrialBalanceSheetTable({ className: 'balance', width: 120, } - ], []); + ], [formatMessage]); const handleFetchData = useCallback(() => { onFetchData && onFetchData(); diff --git a/client/src/containers/GeneralSearch/Search.js b/client/src/containers/GeneralSearch/Search.js index bfded6e7d..48ff0b77c 100644 --- a/client/src/containers/GeneralSearch/Search.js +++ b/client/src/containers/GeneralSearch/Search.js @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from 'react'; +import React from 'react'; import { Omnibar } from '@blueprintjs/select'; import { MenuItem } from '@blueprintjs/core'; import { compose } from 'utils'; diff --git a/client/src/containers/Items/ItemCategoriesList.js b/client/src/containers/Items/ItemCategoriesList.js index 9284882be..c3df219e0 100644 --- a/client/src/containers/Items/ItemCategoriesList.js +++ b/client/src/containers/Items/ItemCategoriesList.js @@ -12,7 +12,6 @@ import AppToaster from 'components/AppToaster'; import DashboardInsider from 'components/Dashboard/DashboardInsider'; import ItemCategoriesDataTable from 'containers/Items/ItemCategoriesTable'; import ItemsCategoryActionsBar from 'containers/Items/ItemsCategoryActionsBar'; -import DashboardPageContent from 'components/Dashboard/DashboardPageContent'; import withDialog from 'connectors/Dialog.connector'; import withDashboardActions from 'containers/Dashboard/withDashboard'; @@ -46,7 +45,7 @@ const ItemCategoryList = ({ id ? changePageTitle(formatMessage({ id: 'edit_category_details' })) : changePageTitle(formatMessage({ id: 'category_list' })); - }, []); + }, [id,changePageTitle,formatMessage]); const fetchCategories = useQuery( ['items-categories-table', filter], @@ -126,7 +125,7 @@ const ItemCategoryList = ({ .catch((errors) => { setBulkDelete(false); }); - }, [requestDeleteBulkItemCategories, bulkDelete]); + }, [requestDeleteBulkItemCategories, bulkDelete,formatMessage]); //Handel cancel itemCategories bulk delete. diff --git a/client/src/containers/Items/ItemCategoriesTable.js b/client/src/containers/Items/ItemCategoriesTable.js index 3e87c8a12..eda8dec87 100644 --- a/client/src/containers/Items/ItemCategoriesTable.js +++ b/client/src/containers/Items/ItemCategoriesTable.js @@ -28,10 +28,9 @@ const ItemsCategoryList = ({ }) => { const {formatMessage} = useIntl(); - const handelEditCategory = (category) => { onEditCategory(category); }; - const handleDeleteCategory = (category) => { onDeleteCategory(category); }; - - const actionMenuList = (category) => ( + const handelEditCategory=useCallback((category)=>{onEditCategory(category);},[onEditCategory]) + const handleDeleteCategory =useCallback((category)=>{onDeleteCategory(category);},[onDeleteCategory]) + const actionMenuList = useCallback((category) => ( } @@ -41,7 +40,8 @@ const ItemsCategoryList = ({ onClick={() => handleDeleteCategory(category)} /> - ); + ), [handelEditCategory,handleDeleteCategory]); + const columns = useMemo(() => [ { @@ -79,11 +79,11 @@ const ItemsCategoryList = ({ width: 50, disableResizing: false }, - ], [actionMenuList]); + ], [actionMenuList,formatMessage]); const handelFetchData = useCallback((...params) => { onFetchData && onFetchData(...params); - }, []); + }, [onFetchData]); const handleSelectedRowsChange = useCallback((selectedRows) => { onSelectedRowsChange && onSelectedRowsChange(selectedRows.map(s => s.original)); diff --git a/client/src/containers/Items/ItemForm.js b/client/src/containers/Items/ItemForm.js index db76f52a2..b9cbc50a6 100644 --- a/client/src/containers/Items/ItemForm.js +++ b/client/src/containers/Items/ItemForm.js @@ -1,6 +1,6 @@ import React, { useState, useMemo, useCallback,useEffect } from 'react'; import * as Yup from 'yup'; -import { useFormik, Formik } from 'formik'; +import { useFormik } from 'formik'; import { FormGroup, MenuItem, @@ -14,7 +14,7 @@ import { import { Row, Col } from 'react-grid-system'; import { FormattedMessage as T, useIntl } from 'react-intl'; import { queryCache } from 'react-query'; -import { useParams, useHistory } from 'react-router-dom'; +import { useHistory } from 'react-router-dom'; import { pick } from 'lodash'; import classNames from 'classnames'; @@ -30,7 +30,6 @@ import withItemCategories from 'containers/Items/withItemCategories' import withAccounts from 'containers/Accounts/withAccounts'; import withMediaActions from 'containers/Media/withMediaActions'; import useMedia from 'hooks/useMedia'; -import withItems from './withItems'; import withItemDetail from 'containers/Items/withItemDetail' import withDashboardActions from 'containers/Dashboard/withDashboard'; import withAccountDetail from 'containers/Accounts/withAccountDetail'; @@ -62,9 +61,7 @@ const ItemForm = ({ const history = useHistory(); const { formatMessage } = useIntl(); - const {id} =useParams(); const { - files, setFiles, saveMedia, deletedFiles, @@ -80,7 +77,7 @@ const ItemForm = ({ { value: 'service', label: formatMessage({id:'service'}) }, { value: 'inventory', label: formatMessage({id:'inventory'}) }, { value: 'non-inventory', label: formatMessage({id:'non_inventory'}) }, - ], []); + ], [formatMessage]); const validationSchema = Yup.object().shape({ active: Yup.boolean(), @@ -133,7 +130,7 @@ const ItemForm = ({ itemDetail && itemDetail.id ? changePageTitle(formatMessage({id:'edit_item_details'})) : changePageTitle(formatMessage({id:'new_item'})); - }, [changePageTitle,itemDetail]); + }, [changePageTitle,itemDetail,formatMessage]); const { getFieldProps, @@ -270,7 +267,7 @@ const ItemForm = ({ } }); }, - [setDeletedFiles, deletedFiles] + [setDeletedFiles, deletedFiles,] ); const handleCancelClickBtn = () => { diff --git a/client/src/containers/Items/ItemFormPage.js b/client/src/containers/Items/ItemFormPage.js index ecdf4b837..2e474ca90 100644 --- a/client/src/containers/Items/ItemFormPage.js +++ b/client/src/containers/Items/ItemFormPage.js @@ -1,17 +1,16 @@ -import React, { useEffect,useCallback } from 'react'; +import React, {useCallback } from 'react'; import { useParams,useHistory } from 'react-router-dom'; import { useQuery } from 'react-query'; -import ItemForm from 'containers/Items/ItemForm'; import DashboardInsider from 'components/Dashboard/DashboardInsider'; +import ItemForm from 'containers/Items/ItemForm'; import withDashboard from 'containers/Dashboard/withDashboard'; import withAccountsActions from 'containers/Accounts/withAccountsActions'; import withItemCategoriesActions from 'containers/Items/withItemCategoriesActions'; +import withItemsActions from './withItemsActions'; import { compose } from 'utils'; -import { FormattedMessage as T, useIntl } from 'react-intl'; -import withItemsActions from './withItemsActions'; const ItemFormContainer = ({ @@ -28,7 +27,6 @@ const ItemFormContainer = ({ requestFetchItemCategories, }) => { const { id } = useParams(); - const {formatMessage} =useIntl() const history = useHistory(); const fetchAccounts = useQuery('accounts-list', @@ -50,7 +48,7 @@ const handleFormSubmit =useCallback((payload)=>{ const handleCancel =useCallback(()=>{ history.push('/items/new'); -},[]) +},[history]) return ( () => { onDeleteItem(item); }; - + // const handleDeleteItem = (item) => () => { onDeleteItem(item); }; + const handleDeleteItem =useCallback((item)=>()=>{onDeleteItem(item)},[onDeleteItem]) const actionMenuList = useCallback((item) => ( } /> @@ -112,7 +112,7 @@ const ItemsDataTable = ({ className: 'actions', width: 50, }, - ], [actionMenuList]); + ], [actionMenuList,formatMessage]); const selectionColumn = useMemo(() => ({ minWidth: 42, @@ -122,7 +122,7 @@ const ItemsDataTable = ({ const handleFetchData = useCallback((...args) => { onFetchData && onFetchData(...args) - }, [onFetchData]); + }, []); const handleSelectedRowsChange = useCallback((selectedRows) => { onSelectedRowsChange && onSelectedRowsChange(selectedRows.map(s => s.original)); @@ -151,4 +151,8 @@ export default compose( itemsCurrentPage, itemsTableLoading, })), -)(ItemsDataTable); \ No newline at end of file +)(ItemsDataTable); + + + + diff --git a/client/src/containers/Items/ItemsList.js b/client/src/containers/Items/ItemsList.js index e7e2a4df9..2fdd99818 100644 --- a/client/src/containers/Items/ItemsList.js +++ b/client/src/containers/Items/ItemsList.js @@ -98,7 +98,7 @@ function ItemsList({ }); setDeleteItem(false); }); - }, [requestDeleteItem, deleteItem]); + }, [requestDeleteItem, deleteItem,formatMessage]); // Handle fetch data table. const handleFetchData = useCallback(({ pageIndex, pageSize, sortBy }) => { @@ -155,7 +155,7 @@ function ItemsList({ }).catch((errors) => { setBulkDelete(false); }); - }, [requestDeleteBulkItems, bulkDelete]); + }, [requestDeleteBulkItems, bulkDelete,formatMessage]); // Handle cancel accounts bulk delete. const handleCancelBulkDelete = useCallback(() => { diff --git a/client/src/containers/Items/ItemsViewsTabs.js b/client/src/containers/Items/ItemsViewsTabs.js index da44637fc..fa560e873 100644 --- a/client/src/containers/Items/ItemsViewsTabs.js +++ b/client/src/containers/Items/ItemsViewsTabs.js @@ -20,7 +20,7 @@ import withDashboard from 'containers/Dashboard/withDashboard'; import withViewDetail from 'containers/Views/withViewDetails'; import withItems from 'containers/Items/withItems'; -import { FormattedMessage as T, useIntl } from 'react-intl'; +import { FormattedMessage as T} from 'react-intl'; function ItemsViewsTabs({ // #withViewDetail diff --git a/client/src/containers/Items/withItemDetail.js b/client/src/containers/Items/withItemDetail.js index 6bca8f896..8a10c1b92 100644 --- a/client/src/containers/Items/withItemDetail.js +++ b/client/src/containers/Items/withItemDetail.js @@ -1,5 +1,4 @@ import { connect } from 'react-redux'; -import t from 'store/types'; import { getItemById } from 'store/items/items.reducer'; const mapStateToProps = (state, props) => ({ diff --git a/client/src/containers/Preferences/Accounts/Accounts.js b/client/src/containers/Preferences/Accounts/Accounts.js index bcf12a3ce..478141122 100644 --- a/client/src/containers/Preferences/Accounts/Accounts.js +++ b/client/src/containers/Preferences/Accounts/Accounts.js @@ -2,7 +2,7 @@ import React from 'react'; import {Tabs, Tab} from '@blueprintjs/core'; import { useHistory } from 'react-router-dom'; import PreferencesSubContent from 'components/Preferences/PreferencesSubContent'; -import { FormattedMessage as T, useIntl } from 'react-intl'; +import { FormattedMessage as T} from 'react-intl'; export default function AccountsPreferences() { const history = useHistory(); diff --git a/client/src/containers/Preferences/Currencies/CurrenciesActions.js b/client/src/containers/Preferences/Currencies/CurrenciesActions.js index 5033e1ece..e2a253ca9 100644 --- a/client/src/containers/Preferences/Currencies/CurrenciesActions.js +++ b/client/src/containers/Preferences/Currencies/CurrenciesActions.js @@ -12,7 +12,7 @@ function CurrenciesActions({ }) { const handleClickNewCurrency = useCallback(() => { openDialog('currency-form'); - }, []); + }, [openDialog]); return (
diff --git a/client/src/containers/Preferences/Currencies/CurrenciesList.js b/client/src/containers/Preferences/Currencies/CurrenciesList.js index 6bca2020d..dcb257bed 100644 --- a/client/src/containers/Preferences/Currencies/CurrenciesList.js +++ b/client/src/containers/Preferences/Currencies/CurrenciesList.js @@ -1,4 +1,4 @@ -import React, { useEffect, useCallback, useState, useMemo } from 'react'; +import React, { useCallback, useState, useMemo } from 'react'; import { Button, Popover, @@ -41,17 +41,25 @@ function CurrenciesList({ const fetchCurrencies = useQuery(['currencies-table'], () => requestFetchCurrencies()); - const handleEditCurrency = (currency) => { + // const handleEditCurrency = (currency) => { + // openDialog('currency-form', { + // action: 'edit', + // currencyCode: currency.currency_code, + // }); + // }; + const handleEditCurrency =useCallback((currency)=>{ openDialog('currency-form', { - action: 'edit', - currencyCode: currency.currency_code, - }); - }; + action: 'edit', + currencyCode: currency.currency_code, + }); + },[openDialog]) - const onDeleteCurrency = (currency) => { - setDeleteCurrencyState(currency); - }; + // const onDeleteCurrency = (currency) => { + // setDeleteCurrencyState(currency); + // }; + + const onDeleteCurrency =useCallback((currency)=>{setDeleteCurrencyState(currency);},[]) const handleCancelCurrencyDelete = () => { setDeleteCurrencyState(false); }; @@ -65,7 +73,7 @@ function CurrenciesList({ }); } ); - }, [deleteCurrencyState]); + }, [requestDeleteCurrency,deleteCurrencyState,formatMessage]); const actionMenuList = useCallback((currency) => ( @@ -78,7 +86,7 @@ function CurrenciesList({ onClick={() => onDeleteCurrency(currency)} /> - ), []); + ), [handleEditCurrency,onDeleteCurrency]); const columns = useMemo(() => [ { @@ -110,11 +118,11 @@ function CurrenciesList({ className: 'actions', width: 50, }, - ], [actionMenuList]); + ], [actionMenuList,formatMessage]); const handleDatatableFetchData = useCallback(() => { onFetchData && onFetchData(); - }, []); + }, [onFetchData]); return ( diff --git a/client/src/containers/Preferences/General/General.js b/client/src/containers/Preferences/General/General.js index a268c107c..a7d739359 100644 --- a/client/src/containers/Preferences/General/General.js +++ b/client/src/containers/Preferences/General/General.js @@ -1,4 +1,4 @@ -import React, { useState, useCallback, useMemo, useEffect } from 'react'; +import React, { useState} from 'react'; import { useFormik } from 'formik'; import * as Yup from 'yup'; import { @@ -13,6 +13,7 @@ import classNames from 'classnames'; import { TimezonePicker } from '@blueprintjs/timezone'; import { Select } from '@blueprintjs/select'; import { useQuery } from 'react-query'; +import { FormattedMessage as T, useIntl } from 'react-intl'; import { compose, optionsMapToArray } from 'utils'; @@ -21,7 +22,6 @@ import AppToaster from 'components/AppToaster'; import withSettings from 'containers/Settings/withSettings'; import withSettingsActions from 'containers/Settings/withSettingsActions'; -import { FormattedMessage as T, useIntl } from 'react-intl'; function GeneralPreferences({ @@ -79,13 +79,10 @@ function GeneralPreferences({ const { errors, - values, touched, - isSubmitting, setFieldValue, getFieldProps, handleSubmit, - resetForm, } = useFormik({ enableReinitialize: true, initialValues: { diff --git a/client/src/containers/Preferences/Users/Users.js b/client/src/containers/Preferences/Users/Users.js index d077d94e2..8843f576f 100644 --- a/client/src/containers/Preferences/Users/Users.js +++ b/client/src/containers/Preferences/Users/Users.js @@ -1,5 +1,5 @@ -import React, { useCallback } from 'react'; -import { Tabs, Tab, Button, Intent } from '@blueprintjs/core'; +import React from 'react'; +import { Tabs, Tab } from '@blueprintjs/core'; import PreferencesSubContent from 'components/Preferences/PreferencesSubContent'; import connector from 'connectors/UsersPreferences.connector'; diff --git a/client/src/containers/Preferences/Users/UsersActions.js b/client/src/containers/Preferences/Users/UsersActions.js index 5fc4aef3b..14b030f90 100644 --- a/client/src/containers/Preferences/Users/UsersActions.js +++ b/client/src/containers/Preferences/Users/UsersActions.js @@ -13,7 +13,7 @@ function UsersActions({ }) { const onClickNewUser = useCallback(() => { openDialog('user-form'); - }, []); + }, [openDialog]); return (
diff --git a/client/src/containers/Preferences/Users/UsersList.js b/client/src/containers/Preferences/Users/UsersList.js index 7d0039ba8..4fbcb1338 100644 --- a/client/src/containers/Preferences/Users/UsersList.js +++ b/client/src/containers/Preferences/Users/UsersList.js @@ -13,6 +13,7 @@ import { Tag } from '@blueprintjs/core'; import { snakeCase } from 'lodash'; +import { FormattedMessage as T, useIntl } from 'react-intl'; import Icon from 'components/Icon'; import LoadingIndicator from 'components/LoadingIndicator'; @@ -25,7 +26,6 @@ import withUsers from 'containers/Users/withUsers'; import withUsersActions from 'containers/Users/withUsersActions'; import { compose } from 'utils'; -import { FormattedMessage as T, useIntl } from 'react-intl'; function UsersListPreferences({ @@ -65,7 +65,7 @@ function UsersListPreferences({ setInactiveUserState(false); AppToaster.show({ message: formatMessage({id:'the_user_has_been_successfully_inactivated'}) }); }); - }, [inactiveUserState, requestInactiveUser, requestFetchUsers]); + }, [inactiveUserState, requestInactiveUser, requestFetchUsers,formatMessage]); const onDeleteUser = (user) => { setDeleteUserState(user); @@ -160,7 +160,7 @@ function UsersListPreferences({ className: 'actions', width: 50, }, - ], [actionMenuList]); + ], [actionMenuList,formatMessage]); const handelDataTableFetchData = useCallback(() => { onFetchData && onFetchData(); diff --git a/client/src/containers/Views/ViewForm.js b/client/src/containers/Views/ViewForm.js index 8e6eb88c1..4c022e691 100644 --- a/client/src/containers/Views/ViewForm.js +++ b/client/src/containers/Views/ViewForm.js @@ -2,7 +2,7 @@ import React, { useState, useEffect, useCallback, useMemo } from 'react'; import { useFormik } from 'formik'; import { FormattedMessage as T, useIntl } from 'react-intl'; -import { useParams, useHistory } from 'react-router-dom'; +import {useHistory } from 'react-router-dom'; import { InputGroup, FormGroup, @@ -48,7 +48,7 @@ function ViewForm({ return () => { changePageSubtitle(''); }; - }, []); + }, [changePageSubtitle,resourceMetadata.label]); const [draggedColumns, setDraggedColumn] = useState([ ...(viewMeta && viewMeta.columns ? viewMeta.columns : []), diff --git a/client/src/containers/Views/ViewFormPage.js b/client/src/containers/Views/ViewFormPage.js index c40a46e55..18477fb15 100644 --- a/client/src/containers/Views/ViewFormPage.js +++ b/client/src/containers/Views/ViewFormPage.js @@ -1,4 +1,4 @@ -import React, {useEffect, useState, useMemo, useCallback} from 'react'; +import React, {useEffect, useState, useCallback} from 'react'; import { useAsync } from 'react-use'; import { useParams } from 'react-router-dom'; import { Intent, Alert } from '@blueprintjs/core'; @@ -57,7 +57,7 @@ function ViewFormPage({ return () => { changePageTitle(''); }; - }, [viewId, changePageTitle]); + }, [viewId, changePageTitle,formatMessage]); // Handle delete view button click. diff --git a/client/src/hooks/useMedia.js b/client/src/hooks/useMedia.js index ab9326026..182a78830 100644 --- a/client/src/hooks/useMedia.js +++ b/client/src/hooks/useMedia.js @@ -1,4 +1,4 @@ -import React, { useState, useRef, useMemo, useCallback } from 'react'; +import React, { useState, useRef,useCallback } from 'react'; import { ProgressBar, Classes, diff --git a/client/src/lang/en/index.js b/client/src/lang/en/index.js index a16453658..2a44bfa0e 100644 --- a/client/src/lang/en/index.js +++ b/client/src/lang/en/index.js @@ -18,7 +18,6 @@ export default { description: 'Description', from_date: 'From date', to_date: 'To date', - accounting_basis: 'Accounting basis', report_date_range: 'Report date range', log_in: 'Log in', forget_my_password: 'Forget my password', @@ -39,7 +38,7 @@ export default { signing_in_or_creating: 'By signing in or creating an account, you agree with our', terms_conditions: 'Terms & Conditions', - and: 'and', + and: 'And', privacy_statement: 'Privacy Statement', create_account: 'Create Account', success: 'Success', @@ -85,7 +84,6 @@ export default { category_name: 'Category Name', parent_category: 'Parent Category', new: 'New', - new_category: 'New Category', invite_user: 'invite User', your_access_to_your_team: 'Your teammate will get an email that gives them access to your team.', @@ -171,7 +169,6 @@ export default { edit_custom_view: 'Edit Custom View', new_custom_view: 'New Custom View', view_name: 'View Name', - new_conditional: 'New Conditional', item: 'Item', service_has_been_successful_created: '{service} {name} has been successfully created.', @@ -203,6 +200,11 @@ export default { 'The journal #{number} has been successfully created.', the_journal_has_been_successfully_edited: 'The journal #{number} has been successfully edited.', + the_journal_has_been_successfully_deleted: + 'The journal has been successfully deleted', + the_manual_journal_id_has_been_published: + 'The manual journal id has been published', + credit: 'Credit', debit: 'Debit', once_delete_this_item_you_will_able_to_restore_it: `Once you delete this item, you won\'t be able to restore the item later. Are you sure you want to delete ?

If you're not sure, you can inactivate it instead.`, diff --git a/client/src/lang/printValue.js b/client/src/lang/printValue.js index 3bf5f0a6f..bc0bdd2fe 100644 --- a/client/src/lang/printValue.js +++ b/client/src/lang/printValue.js @@ -6,7 +6,7 @@ const symbolToString = const SYMBOL_REGEXP = /^Symbol\((.*)\)(.*)$/; function printNumber(val) { - if (val != +val) return 'NaN'; + if (val !== +val) return 'NaN'; const isNegativeZero = val === 0 && 1 / val < 0; return isNegativeZero ? '-0' : '' + val; } diff --git a/client/src/store/accounts/accounts.reducer.js b/client/src/store/accounts/accounts.reducer.js index 0762fc3ca..7d3f58e23 100644 --- a/client/src/store/accounts/accounts.reducer.js +++ b/client/src/store/accounts/accounts.reducer.js @@ -1,5 +1,5 @@ import t from 'store/types'; -import { createReducer, combineReducers } from '@reduxjs/toolkit'; +import { createReducer} from '@reduxjs/toolkit'; import { createTableQueryReducers } from 'store/queryReducers'; const initialState = { diff --git a/client/src/store/customViews/customViews.selectors.js b/client/src/store/customViews/customViews.selectors.js index 8edf6168c..7df674845 100644 --- a/client/src/store/customViews/customViews.selectors.js +++ b/client/src/store/customViews/customViews.selectors.js @@ -1,5 +1,5 @@ import {pickItemsFromIds} from 'store/selectors'; -import { getResourceField, getResourceColumn } from 'store/resources/resources.reducer'; +import {getResourceColumn } from 'store/resources/resources.reducer'; export const getResourceViews = (state, resourceName) => { const resourceViewsIds = state.views.resourceViews[resourceName] || [];