@ui5/webcomponents-react
Version:
React Wrapper for UI5 Web Components and additional components
27 lines • 962 B
JavaScript
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);
};