UNPKG

@ui5/webcomponents-react

Version:

React Wrapper for UI5 Web Components and additional components

27 lines 962 B
const popInVisibleColumnsDeps = (deps, { instance: { state } }) => [...deps, state.tableClientWidth]; const popInVisibleColumns = (cols, { instance }) => { const { state, dispatch } = instance; const tableClientWidth = state.isScrollable ? state?.tableClientWidth + 13 /*scrollbar width*/ : state?.tableClientWidth; const popInColumns = cols.filter(item => item.responsivePopIn && tableClientWidth < item.responsiveMinWidth).map(item => ({ id: item.id ?? item.accessor, column: item })); dispatch({ type: 'SET_POPIN_COLUMNS', payload: popInColumns }); return cols.filter(col => !popInColumns.some(item => item.id === (col.id ?? col.accessor)) && (col.hasOwnProperty('responsiveMinWidth') ? !tableClientWidth || tableClientWidth >= col.responsiveMinWidth : true)); }; export const usePopIn = hooks => { hooks.visibleColumns.push(popInVisibleColumns); hooks.visibleColumnsDeps.push(popInVisibleColumnsDeps); };