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
@@ -1118,15 +1153,12 @@ export function Component() { Database {