fix: most Recently Selected Table Should Appear at the Top of the List on the Left Panel (#19258)

This commit is contained in:
Diego Medina 2022-03-21 17:58:23 -04:00 committed by GitHub
parent 29cba2b00c
commit 4669b6ce11
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 10 deletions

View File

@ -1005,8 +1005,8 @@ export function queryEditorSetSelectedText(queryEditor, sql) {
return { type: QUERY_EDITOR_SET_SELECTED_TEXT, queryEditor, sql };
}
export function mergeTable(table, query) {
return { type: MERGE_TABLE, table, query };
export function mergeTable(table, query, prepend) {
return { type: MERGE_TABLE, table, query, prepend };
}
function getTableMetadata(table, query, dispatch) {
@ -1076,12 +1076,16 @@ export function addTable(query, database, tableName, schemaName) {
name: tableName,
};
dispatch(
mergeTable({
...table,
isMetadataLoading: true,
isExtraMetadataLoading: true,
expanded: true,
}),
mergeTable(
{
...table,
isMetadataLoading: true,
isExtraMetadataLoading: true,
expanded: true,
},
null,
true,
),
);
return Promise.all([

View File

@ -725,7 +725,7 @@ describe('async actions', () => {
describe('addTable', () => {
it('updates the table schema state in the backend', () => {
expect.assertions(5);
expect.assertions(6);
const database = { disable_data_preview: true };
const tableName = 'table';
@ -743,6 +743,7 @@ describe('async actions', () => {
expect(store.getActions().map(a => a.type)).toEqual(
expectedActionTypes,
);
expect(store.getActions()[0].prepend).toBeTruthy();
expect(fetchMock.calls(updateTableSchemaEndpoint)).toHaveLength(1);
expect(fetchMock.calls(getTableMetadataEndpoint)).toHaveLength(1);
expect(fetchMock.calls(getExtraTableMetadataEndpoint)).toHaveLength(

View File

@ -134,7 +134,7 @@ export default function sqlLabReducer(state = {}, action) {
}
// for new table, associate Id of query for data preview
at.dataPreviewQueryId = null;
let newState = addToArr(state, 'tables', at);
let newState = addToArr(state, 'tables', at, Boolean(action.prepend));
if (action.query) {
newState = alterInArr(newState, 'tables', at, {
dataPreviewQueryId: action.query.id,