import React, {useState, useEffect, useCallback, useMemo} from 'react'; import { Button, Popover, Menu, MenuItem, MenuDivider, Position, } from '@blueprintjs/core' import { FormattedMessage as T, useIntl } from 'react-intl'; import {compose} from 'utils'; import DataTable from 'components/DataTable'; import Icon from 'components/Icon'; import Money from 'components/Money'; import withItems from 'containers/Items/withItems'; import LoadingIndicator from 'components/LoadingIndicator'; const ItemsDataTable = ({ loading, // #withItems itemsTableLoading, itemsCurrentPage, // props onEditItem, onDeleteItem, onFetchData, onSelectedRowsChange, }) => { const {formatMessage} = useIntl(); const [initialMount, setInitialMount] = useState(false); useEffect(() => { if (!itemsTableLoading) { setInitialMount(true); } }, [itemsTableLoading, setInitialMount]); const handleEditItem = useCallback( (item) => () => { onEditItem && onEditItem(item); }, [onEditItem] ); const handleDeleteItem = (item) => () => { onDeleteItem(item); }; const actionMenuList = useCallback((item) => ( } /> } onClick={handleEditItem(item)} /> } onClick={handleDeleteItem(item)} /> ), [handleEditItem, handleDeleteItem]); const columns = useMemo(() => [ { Header: formatMessage({ id:'item_name' }), accessor: 'name', className: "actions", }, { Header: formatMessage({ id:'sku' }), accessor: 'sku', className: "sku", }, { Header: formatMessage({ id:'category' }), accessor: 'category.name', className: 'category', }, { Header: formatMessage({ id: 'sell_price' }), accessor: row => (), className: 'sell-price', }, { Header: formatMessage({ id: 'cost_price' }), accessor: row => (), className: 'cost-price', }, // { // Header: 'Cost Account', // accessor: 'cost_account.name', // className: "cost-account", // }, // { // Header: 'Sell Account', // accessor: 'sell_account.name', // className: "sell-account", // }, // { // Header: 'Inventory Account', // accessor: 'inventory_account.name', // className: "inventory-account", // }, { id: 'actions', Cell: ({ cell }) => (