import { getCommonToolbarStyles, parseFromValuesOrFunc } from "@/core/utils/utils"; import { Box, alpha, useMediaQuery } from "@mui/material"; import DataTable_LinearProgressBar from "./LinearProgressBar"; import DataTable_TablePagination from "./TablePagination"; const DataTable_BottomToolbar = ({ table, ...rest }) => { const { getState, options: { enablePagination, muiBottomToolbarProps, positionPagination, renderBottomToolbarCustomActions, }, refs: { bottomToolbarRef }, } = table; const { isFullScreen } = getState(); const isMobile = useMediaQuery('(max-width:720px)'); const toolbarProps = { ...parseFromValuesOrFunc(muiBottomToolbarProps, { table }), ...rest, }; const stackAlertBanner = isMobile || !!renderBottomToolbarCustomActions; return ( { if (node) { bottomToolbarRef.current = node; if (toolbarProps?.ref) { // @ts-ignore toolbarProps.ref.current = node; } } }} sx={(theme) => ({ ...getCommonToolbarStyles({ table, theme }), bottom: isFullScreen ? '0' : undefined, boxShadow: `0 1px 2px -1px ${alpha( theme.palette.grey[700], 0.5, )} inset`, left: 0, position: isFullScreen ? 'fixed' : 'relative', right: 0, ...(parseFromValuesOrFunc(toolbarProps?.sx, theme)), })} > {renderBottomToolbarCustomActions ? ( renderBottomToolbarCustomActions({ table }) ) : ( )} {enablePagination && ['both', 'bottom'].includes(positionPagination ?? '') && ( )} ); } export default DataTable_BottomToolbar