import React, { useMemo } from 'react';
import {
DataTable,
DataTableSkeleton,
Pagination,
Table,
TableBody,
TableCell,
TableContainer,
TableHead,
TableHeader,
TableRow,
TableToolbar,
TableToolbarAction,
TableToolbarContent,
TableToolbarMenu,
TableToolbarSearch,
Tile,
} from '@carbon/react';
import { useTranslation } from 'react-i18next';
import { isDesktop, restBaseUrl } from '@openmrs/esm-framework';
import { handleMutate } from '../utils';
import { ResourceRepresentation } from '../core/api/api';
import { type CustomTableHeader } from '../core/components/table/types';
import AddStockSourceActionButton from './add-stock-source-button.component';
import EditStockSourceActionsMenu from './edit-stock-source/edit-stock-source.component';
import StockSourcesDeleteActionMenu from './stock-sources-delete/stock-sources-delete.component';
import StockSourcesFilter from './stock-sources-filter/stock-sources-filter.component';
import useStockSourcesPage from './stock-sources-items-table.resource';
import styles from './stock-sources.scss';
const StockSourcesItems: React.FC = () => {
const { t } = useTranslation();
const [selectedSourceType, setSelectedSourceType] = React.useState('');
const handleRefresh = () => {
handleMutate(`${restBaseUrl}/stockmanagement/stocksource`);
};
// get sourcess
const { items, totalItems, tableHeaders, currentPage, pageSizes, goTo, currentPageSize, setPageSize, isLoading } =
useStockSourcesPage({
v: ResourceRepresentation.Default,
totalCount: true,
});
const tableRows = useMemo(() => {
return items?.map((entry, index) => {
return {
...entry,
id: entry?.uuid,
key: `key-${entry?.uuid}`,
uuid: entry?.uuid,
name: entry?.name,
acronym: entry?.acronym,
sourceType: entry?.sourceType?.display,
actions: (
<>
{t('noSourcesToDisplay', 'No stock sources to display')}
{t('checkFilters', 'Check the filters above')}