columns: useDeepMemo()

in packages/graph-explorer/src/components/Tabular/useTabular.ts [393:419]


      columns: useDeepMemo(
        () => columns.map(column => columnDefinitionToColumn(column)),
        [columns]
      ),
      initialState: {
        sortBy: initialSorting || [],
        filters: initialFilters || [],
        pageIndex: options.pageIndex,
        pageSize: options.pageSize || options.paginationOptions?.[0],
        columnOrder: initialColumnOrder || [],
        hiddenColumns:
          initialHiddenColumns ||
          columns.reduce<string[]>((hiddenCols, col) => {
            if (col.hidden) {
              // If the column does not have id its accessor should be a valid string
              // However, both are optional in the main interface
              hiddenCols.push(
                col.id?.toString() || col.accessor?.toString() || ""
              );
            }

            return hiddenCols;
          }, []),
        selectedRowIds:
          initialSelectedRowIds ||
          ({} as UseRowSelectState<T>["selectedRowIds"]),
      },