@@ -13,19 +13,31 @@ import {
1313} from '@ovhcloud/ods-components/react' ;
1414import { useRef } from 'react' ;
1515import { useTranslation } from 'react-i18next' ;
16- import { ColumnsVisibilityProps } from '../datagrid.constants' ;
16+ import { INTERNAL_COLUMNS } from '../datagrid.constants' ;
17+
18+ export type ColumnsVisibility = {
19+ id : string ;
20+ isDisabled : boolean ;
21+ label : string ;
22+ enableHiding : boolean ;
23+ isVisible : ( ) => boolean ;
24+ onChange : ( ) => void ;
25+ } ;
26+
27+ export type ColumnsVisibilityProps = {
28+ columnsVisibility : ColumnsVisibility [ ] ;
29+ } ;
1730
1831export function VisibilityManagement ( {
1932 columnsVisibility,
2033} : Readonly < ColumnsVisibilityProps > ) {
2134 const { t } = useTranslation ( 'datagrid' ) ;
2235 const visibilityPopoverRef = useRef ( null ) ;
23- const columnsIncludedInCounter = columnsVisibility . filter (
24- ( column ) =>
25- ! [ 'expander' , 'actions' ] . includes ( column . id ) && column . label !== '' ,
36+ const eligibleColumns = columnsVisibility . filter (
37+ ( column ) => ! INTERNAL_COLUMNS . includes ( column . id ) && column . label !== '' ,
2638 ) ;
2739
28- const visibleColumnsCount = columnsIncludedInCounter . filter ( ( column ) =>
40+ const visibleColumnsCount = eligibleColumns . filter ( ( column ) =>
2941 column . isVisible ( ) ,
3042 ) . length ;
3143
@@ -40,7 +52,7 @@ export function VisibilityManagement({
4052 icon = { ODS_ICON_NAME . columns }
4153 aria-label = { t ( 'common_topbar_columns' ) }
4254 label = { `${ t ( 'common_topbar_columns' ) } ${
43- visibleColumnsCount < columnsIncludedInCounter . length
55+ visibleColumnsCount < eligibleColumns . length
4456 ? ` (${ visibleColumnsCount } )`
4557 : ''
4658 } `}
@@ -51,7 +63,7 @@ export function VisibilityManagement({
5163 with-arrow
5264 >
5365 < div className = "flex flex-col" >
54- { columnsIncludedInCounter . map ( ( column ) => (
66+ { eligibleColumns . map ( ( column ) => (
5567 < OdsFormField key = { column . id } >
5668 < div className = "flex flex-row items-center gap-x-2" >
5769 < OdsCheckbox
0 commit comments