LCOV - code coverage report
Current view: top level - dashql-app/src/views/query_result - data_table_portals.ts Coverage Total Hit
Test: DashQL 915828b Lines: 100.0 % 23 23
Test Date: 2026-11-06 19:30:32

            Line data    Source code
       1              : import * as React from 'react';
       2              : import * as styles from './data_table.module.css';
       3              : 
       4              : interface GridApi {
       5              :     element: HTMLDivElement | null;
       6              : }
       7              : 
       8              : export interface DataTablePortalContainers {
       9              :     header: HTMLDivElement;
      10              :     data: HTMLDivElement;
      11              : }
      12              : 
      13            1 : export function useDataTablePortalContainers(gridApi: GridApi | null): DataTablePortalContainers | null {
      14            1 :     const [containers, setContainers] = React.useState<DataTablePortalContainers | null>(null);
      15              : 
      16            1 :     React.useEffect(() => {
      17            1 :         const gridElement = gridApi?.element;
      18            1 :         if (!gridElement) {
      19            1 :             setContainers(null);
      20            1 :             return;
      21            1 :         }
      22            1 :         const header = document.createElement('div');
      23            1 :         header.className = styles.sticky_header_portal;
      24            1 :         gridElement.prepend(header);
      25              : 
      26            1 :         const data = document.createElement('div');
      27            1 :         data.className = styles.sticky_column_portal;
      28            1 :         gridElement.appendChild(data);
      29              : 
      30            1 :         setContainers({ header, data });
      31            1 :         return () => {
      32            1 :             header.remove();
      33            1 :             data.remove();
      34            1 :             setContainers(null);
      35            1 :         };
      36            1 :     }, [gridApi]);
      37              : 
      38            1 :     return containers;
      39            1 : }
        

Generated by: LCOV version 2.0-1