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) => (
), [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 => (