# All files / src/table TableContainerProvider.tsx

100% Statements 36/36
100% Branches 1/1
100% Functions 1/1
100% Lines 36/36

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    371x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    15x
    15x
     "use client";
    import { createContext, useContext, type RefObject } from "react";

    /**
     * @internal
     * @remarks \@since 6.0.0
     */
    export interface TableContainerContext {
      exists: boolean;
      containerRef: RefObject<HTMLDivElement>;
    }

    const context = createContext<Readonly<TableContainerContext>>({
      exists: false,
      containerRef: { current: null },
    });
    context.displayName = "TableContainer";

    /**
     * **Client Component**
     *
     * @internal
     * @remarks \@since 6.0.0
     */
    export const { Provider: TableContainerProvider } = context;

    /**
     * This is used to implement the sticky header and footer intersection observer
     * behavior.
     *
     * @internal
     * @remarks \@since 6.0.0
     */
    export function useTableContainer(): Readonly<TableContainerContext> {
      return useContext(context);
    }