TableContextProvider.tsx 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. direction
  18. }: TableContextProps) => {
  19. const tableContextValue = useMemo(
  20. () => ({
  21. anyColumnFixed,
  22. flattenedColumns,
  23. renderExpandIcon,
  24. renderSelection,
  25. setHeadWidths,
  26. getHeadWidths,
  27. getCellWidths,
  28. headWidths,
  29. tableWidth,
  30. handleRowExpanded,
  31. getVirtualizedListRef,
  32. setBodyHasScrollbar,
  33. direction
  34. }),
  35. [
  36. anyColumnFixed,
  37. flattenedColumns,
  38. renderExpandIcon,
  39. renderSelection,
  40. setHeadWidths,
  41. getHeadWidths,
  42. getCellWidths,
  43. headWidths,
  44. tableWidth,
  45. handleRowExpanded,
  46. getVirtualizedListRef,
  47. setBodyHasScrollbar,
  48. direction
  49. ]
  50. );
  51. return <Context.Provider value={tableContextValue}>{children}</Context.Provider>;
  52. };
  53. export default TableContextProvider;