TableContextProvider.tsx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import React, { useMemo } from 'react';
  2. import Context, { TableContextProps } from './table-context';
  3. const TableContextProvider = ({
  4. children,
  5. anyColumnFixed,
  6. flattenedColumns,
  7. tableWidth,
  8. headWidths,
  9. setHeadWidths,
  10. getHeadWidths,
  11. getCellWidths,
  12. handleRowExpanded,
  13. renderExpandIcon,
  14. renderSelection,
  15. getVirtualizedListRef,
  16. setBodyHasScrollbar,
  17. }: TableContextProps) => {
  18. const tableContextValue = useMemo(
  19. () => ({
  20. anyColumnFixed,
  21. flattenedColumns,
  22. renderExpandIcon,
  23. renderSelection,
  24. setHeadWidths,
  25. getHeadWidths,
  26. getCellWidths,
  27. headWidths,
  28. tableWidth,
  29. handleRowExpanded,
  30. getVirtualizedListRef,
  31. setBodyHasScrollbar,
  32. }),
  33. [
  34. anyColumnFixed,
  35. flattenedColumns,
  36. renderExpandIcon,
  37. renderSelection,
  38. setHeadWidths,
  39. getHeadWidths,
  40. getCellWidths,
  41. headWidths,
  42. tableWidth,
  43. handleRowExpanded,
  44. getVirtualizedListRef,
  45. setBodyHasScrollbar,
  46. ]
  47. );
  48. return <Context.Provider value={tableContextValue}>{children}</Context.Provider>;
  49. };
  50. export default TableContextProvider;