Initial logs with datasource / datatable setup

Summary:
First rudementary setup of DataTable component that follows a data source. Initially used react-virtuose library, but it performed really badly by doing expensive layout shifts and having troublesome scroll handling. Switched to react-virtual library, which is a bit more level, but much more efficient, and the source code is actually understandable :)

Features:
- hook up to window events of datasource
- high and low prio rendering, based on where the change is happening (should be optimized further)
- sticky scrolling support
- initial column configuration (custom rendering, styling, columns etc will follow in next diffs)

Reviewed By: nikoant

Differential Revision: D26175665

fbshipit-source-id: 224be13b1b32d35e7e01c1dc4198811e2af31102
This commit is contained in:
Michel Weststrate
2021-03-16 14:54:53 -07:00
committed by Facebook GitHub Bot
parent 5b76a0c717
commit 86ad413669
8 changed files with 440 additions and 3 deletions

View File

@@ -28,6 +28,8 @@ test('Correct top level API exposed', () => {
// Note, all `exposedAPIs` should be documented in `flipper-plugin.mdx`
expect(exposedAPIs.sort()).toMatchInlineSnapshot(`
Array [
"DataSource",
"DataTable",
"Layout",
"NUX",
"TestUtils",
@@ -52,6 +54,7 @@ test('Correct top level API exposed', () => {
expect(exposedTypes.sort()).toMatchInlineSnapshot(`
Array [
"Atom",
"DataTableColumn",
"DefaultKeyboardAction",
"Device",
"DeviceLogEntry",