Reorganise for easier extraction

Summary:
To make the DataSource abstraction reusable for other teams and an upcoming talk, this diff moves all DataSource storage & virtualization logic in one folder.

Will set up a build process and demo project in later diffs.

Reviewed By: nikoant

Differential Revision: D28056700

fbshipit-source-id: 7cfe5b40bbbe387da711f765a604a45029d451c7
This commit is contained in:
Michel Weststrate
2021-05-10 07:02:39 -07:00
committed by Facebook GitHub Bot
parent 5a7d4e2f17
commit 84e2646909
20 changed files with 190 additions and 80 deletions

View File

@@ -20,11 +20,15 @@ import React, {
useReducer,
} from 'react';
import {TableRow, DEFAULT_ROW_HEIGHT} from './TableRow';
import {DataSource} from '../../state/DataSource';
import {Layout} from '../Layout';
import {TableHead} from './TableHead';
import {Percentage} from '../../utils/widthUtils';
import {DataSourceRenderer, DataSourceVirtualizer} from './DataSourceRenderer';
import {
DataSourceRendererVirtual,
DataSourceRendererStatic,
DataSource,
DataSourceVirtualizer,
} from '../../data-source';
import {
computeDataTableFilter,
createDataTableManager,
@@ -46,8 +50,7 @@ import {useAssertStableRef} from '../../utils/useAssertStableRef';
import {Formatter} from '../DataFormatter';
import {usePluginInstance} from '../../plugin/PluginContext';
import {debounce} from 'lodash';
import {StaticDataSourceRenderer} from './StaticDataSourceRenderer';
import {useInUnitTest} from '../../utils/useInUnitTest()';
import {useInUnitTest} from '../../utils/useInUnitTest';
interface DataTableBaseProps<T = any> {
columns: DataTableColumn<T>[];
@@ -458,7 +461,7 @@ export function DataTable<T extends object>(
const mainSection = props.scrollable ? (
<Layout.Top>
{header}
<DataSourceRenderer<T, TableRowRenderContext<T>>
<DataSourceRendererVirtual<T, TableRowRenderContext<T>>
dataSource={dataSource}
autoScroll={tableState.autoScroll && !dragging.current}
useFixedRowHeight={!tableState.usesWrapping}
@@ -475,7 +478,7 @@ export function DataTable<T extends object>(
) : (
<Layout.Container>
{header}
<StaticDataSourceRenderer<T, TableRowRenderContext<T>>
<DataSourceRendererStatic<T, TableRowRenderContext<T>>
dataSource={dataSource}
useFixedRowHeight={!tableState.usesWrapping}
defaultRowHeight={DEFAULT_ROW_HEIGHT}