diff --git a/desktop/plugins/public/databases/index.tsx b/desktop/plugins/public/databases/index.tsx
index 86862d0f3..b905cd6ca 100644
--- a/desktop/plugins/public/databases/index.tsx
+++ b/desktop/plugins/public/databases/index.tsx
@@ -11,7 +11,6 @@ import {
styled,
produce,
Toolbar,
- Select,
ManagedTable,
Text,
Button,
@@ -47,7 +46,11 @@ import {
usePlugin,
useValue,
Layout,
+ useMemoize,
} from 'flipper-plugin';
+import {Select} from 'antd';
+
+const {Option} = Select;
const PAGE_SIZE = 50;
@@ -1040,14 +1043,49 @@ export function Component() {
[instance],
);
- const tableOptions =
- (state.selectedDatabase &&
- state.databases[state.selectedDatabase - 1] &&
- state.databases[state.selectedDatabase - 1].tables.reduce(
- (options, tableName) => ({...options, [tableName]: tableName}),
- {},
- )) ||
- {};
+ const databaseOptions = useMemoize(
+ (databases) =>
+ databases.map((x) => (
+
+ )),
+ [state.databases],
+ );
+
+ const selectedDatabaseName = useMemoize(
+ (selectedDatabase: number, databases: DatabaseEntry[]) =>
+ selectedDatabase && databases[state.selectedDatabase - 1]
+ ? databases[selectedDatabase - 1].name
+ : undefined,
+ [state.selectedDatabase, state.databases],
+ );
+
+ const tableOptions = useMemoize(
+ (selectedDatabase: number, databases: DatabaseEntry[]) =>
+ selectedDatabase && databases[state.selectedDatabase - 1]
+ ? databases[selectedDatabase - 1].tables.map((tableName) => (
+
+ ))
+ : [],
+ [state.selectedDatabase, state.databases],
+ );
+
+ const selectedTableName = useMemoize(
+ (
+ selectedDatabase: number,
+ databases: DatabaseEntry[],
+ selectedDatabaseTable: string | null,
+ ) =>
+ selectedDatabase && databases[selectedDatabase - 1]
+ ? databases[selectedDatabase - 1].tables.find(
+ (t) => t === selectedDatabaseTable,
+ ) ?? databases[selectedDatabase - 1].tables[0]
+ : undefined,
+ [state.selectedDatabase, state.databases, state.selectedDatabaseTable],
+ );
return (
@@ -1092,23 +1130,20 @@ export function Component() {
Database
Table
+ style={{width: 200}}>
+ {tableOptions}
+
@@ -1118,15 +1153,12 @@ export function Component() {
Database
{