From 9fb0c7660a8cd77bceb7d1f7334759a7faf40148 Mon Sep 17 00:00:00 2001 From: Miraaj Kadam Date: Wed, 4 Mar 2026 23:33:49 +0530 Subject: [PATCH] fix: column visibility toggle disabled state for header groups --- .../menus/MRT_ShowHideColumnsMenuItems.tsx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/material-react-table/src/components/menus/MRT_ShowHideColumnsMenuItems.tsx b/packages/material-react-table/src/components/menus/MRT_ShowHideColumnsMenuItems.tsx index 89716a4b8..95cd8850c 100644 --- a/packages/material-react-table/src/components/menus/MRT_ShowHideColumnsMenuItems.tsx +++ b/packages/material-react-table/src/components/menus/MRT_ShowHideColumnsMenuItems.tsx @@ -109,6 +109,17 @@ export const MRT_ShowHideColumnsMenuItems = ({ return null; } + const isColumnVisibilityToggleDisabled = () => { + const cols = column.columns; + + const isNonHidable = (c: MRT_Column) => + c.columnDef.enableHiding === false; + + if (!cols?.length || !cols.some(isNonHidable)) return !column.getCanHide(); + + return cols.every((c) => isNonHidable(c) || !c.getIsVisible()); + }; + return ( <> ({ } - disabled={!column.getCanHide()} + disabled={isColumnVisibilityToggleDisabled()} label={columnDef.header} onChange={() => handleToggleColumnHidden(column)} />