import { getCommonToolbarStyles, parseFromValuesOrFunc } from "@/core/utils/utils"; import { Box, useMediaQuery } from "@mui/material"; import DataTable_LinearProgressBar from "./LinearProgressBar"; import DataTable_TablePagination from "./TablePagination"; import DataTable_ToolbarInternalButtons from "./ToolbarInternalButtons"; import FilterColumn from "@/core/components/DataTable/filter"; import RefactorTable from "@/core/components/DataTable/refactor/RefactorTable"; const DataTable_TopToolbar = ({ mutate, need_filter, table, columns, table_url, user_id, page_name, table_name }) => { const { getState, options: { enablePagination, enableToolbarInternalActions, muiTopToolbarProps, positionPagination, renderTopToolbarCustomActions, }, refs: { topToolbarRef }, } = table; const { isFullScreen, showGlobalFilter } = getState(); const isMobile = useMediaQuery("(max-width:720px)"); const isTablet = useMediaQuery("(max-width:1024px)"); const toolbarProps = parseFromValuesOrFunc(muiTopToolbarProps, { table }); const stackAlertBanner = isMobile || !!renderTopToolbarCustomActions || (showGlobalFilter && isTablet); return ( { topToolbarRef.current = ref; if (toolbarProps?.ref) { // @ts-ignore toolbarProps.ref.current = ref; } }} sx={(theme) => ({ ...getCommonToolbarStyles({ table, theme }), position: isFullScreen ? "sticky" : "relative", top: isFullScreen ? "0" : undefined, ...parseFromValuesOrFunc(toolbarProps?.sx, theme), })} > {renderTopToolbarCustomActions?.({ table }) ?? } {enableToolbarInternalActions && ( {need_filter && ( )} )} {enablePagination && ["both", "top"].includes(positionPagination ?? "") && ( )} ); }; export default DataTable_TopToolbar;