Make 'Refresh' update database list

Summary: Previously it only reloaded the current page.

Reviewed By: danielbuechele

Differential Revision: D15535168

fbshipit-source-id: b8252c24ffa74fdf22b2d4b6d5b7f99b40db8e47
This commit is contained in:
John Knox
2019-05-29 08:40:53 -07:00
committed by Facebook Github Bot
parent 592bd2671f
commit b78fb88dd7

View File

@@ -43,6 +43,7 @@ type DatabasesPluginState = {|
selectedDatabaseTable: ?string, selectedDatabaseTable: ?string,
pageRowNumber: number, pageRowNumber: number,
databases: Array<DatabaseEntry>, databases: Array<DatabaseEntry>,
outdatedDatabaseList: boolean,
viewMode: 'data' | 'structure', viewMode: 'data' | 'structure',
error: ?null, error: ?null,
currentPage: ?Page, currentPage: ?Page,
@@ -316,6 +317,7 @@ export default class DatabasesPlugin extends FlipperPlugin<
selectedDatabaseTable: null, selectedDatabaseTable: null,
pageRowNumber: 0, pageRowNumber: 0,
databases: [], databases: [],
outdatedDatabaseList: true,
viewMode: 'data', viewMode: 'data',
error: null, error: null,
currentPage: null, currentPage: null,
@@ -333,17 +335,25 @@ export default class DatabasesPlugin extends FlipperPlugin<
const updates = results.databases; const updates = results.databases;
const databases = updates; const databases = updates;
const selectedDatabase = const selectedDatabase =
state.selectedDatabase || Object.values(databases)[0] state.selectedDatabase ||
(Object.values(databases)[0]
? // $FlowFixMe ? // $FlowFixMe
Object.values(databases)[0].id Object.values(databases)[0].id
: 0; : 0);
const selectedTable = databases[selectedDatabase - 1].tables[0]; const selectedTable =
state.selectedDatabaseTable &&
databases[selectedDatabase - 1].tables.includes(
state.selectedDatabaseTable,
)
? state.selectedDatabaseTable
: databases[selectedDatabase - 1].tables[0];
const sameTableSelected = const sameTableSelected =
selectedDatabase === state.selectedDatabase && selectedDatabase === state.selectedDatabase &&
selectedTable === state.selectedDatabaseTable; selectedTable === state.selectedDatabaseTable;
return { return {
...state, ...state,
databases, databases,
outdatedDatabaseList: false,
selectedDatabase: selectedDatabase, selectedDatabase: selectedDatabase,
selectedDatabaseTable: selectedTable, selectedDatabaseTable: selectedTable,
pageRowNumber: 0, pageRowNumber: 0,
@@ -496,6 +506,7 @@ export default class DatabasesPlugin extends FlipperPlugin<
): DatabasesPluginState => { ): DatabasesPluginState => {
return { return {
...state, ...state,
outdatedDatabaseList: true,
currentPage: null, currentPage: null,
}; };
}, },
@@ -600,12 +611,19 @@ export default class DatabasesPlugin extends FlipperPlugin<
this.setState({error: e}); this.setState({error: e});
}); });
} }
if (!previousState.outdatedDatabaseList && newState.outdatedDatabaseList) {
this.databaseClient.getDatabases({}).then(databases => {
this.dispatchAction({
type: 'UpdateDatabases',
databases,
});
});
}
} }
init() { init() {
this.databaseClient = new DatabaseClient(this.client); this.databaseClient = new DatabaseClient(this.client);
this.databaseClient.getDatabases({}).then(databases => { this.databaseClient.getDatabases({}).then(databases => {
console.log(databases);
this.dispatchAction({ this.dispatchAction({
type: 'UpdateDatabases', type: 'UpdateDatabases',
databases, databases,