Merge branch 'migrate_querytablestab__to_react' of https://github.com/Azure/cosmos-explorer into migrate_querytablestab__to_react

This commit is contained in:
sunilyadav840 2021-08-17 16:17:43 +05:30
commit 43b6e25e86
2 changed files with 24 additions and 25 deletions

View File

@ -151,7 +151,6 @@ export default class TableEntityListViewModel extends DataTableViewModel {
// If number remaining pages in cache falls below prefetchThreshold prefetch will be triggered.
var prefetchThreshold = 10;
var tableQuery = this.tableQuery;
// Try cache if valid.
if (this.isCacheValid(tableQuery)) {
// Check if prefetch needed.
@ -484,12 +483,6 @@ export default class TableEntityListViewModel extends DataTableViewModel {
if (this.isCacheValid(tableQuery)) {
// Append to cache.
this.cache.data = this.cache.data.concat(entities.slice(0));
var p = new Promise<Entities.ITableEntity[]>((resolve) => {
if (this.cache.data) {
resolve(this.cache.data);
}
});
return p;
} else {
// Create cache.
this.cache.data = entities;
@ -504,12 +497,12 @@ export default class TableEntityListViewModel extends DataTableViewModel {
}
if (this.allDownloaded || nextDownloadSize === 0) {
return Promise.resolve(result);
return Promise.resolve(this.cache.data);
}
if (currentRetry >= TableEntityListViewModel._maximumNumberOfPrefetchRetries) {
result.ExceedMaximumRetries = true;
return Promise.resolve(result);
return Promise.resolve(this.cache.data);
}
return this.prefetchData(tableQuery, nextDownloadSize, currentRetry + 1);
}

View File

@ -293,12 +293,14 @@ class QueryTablesTabComponent extends Component<IQueryTablesTabComponentProps, I
if (!isRunQuery) {
try {
documents = await tableEntityListViewModel.renderNextPageAndupdateCache();
if (userContext.apiType === "Cassandra") {
headers = documents?.length ? this.getFormattedHeaders(documents) : ["userid", "name", "email"];
this.setupIntialEntities(headers, documents, isInitialLoad);
} else {
headers = documents?.length ? this.getFormattedHeaders(documents) : ["RowKey", "PartitionKey", "Timestamp"];
this.setupIntialEntities(headers, documents, isInitialLoad);
if (documents) {
if (userContext.apiType === "Cassandra") {
headers = documents?.length ? this.getFormattedHeaders(documents) : ["userid", "name", "email"];
this.setupIntialEntities(headers, documents, isInitialLoad);
} else {
headers = documents?.length ? this.getFormattedHeaders(documents) : ["RowKey", "PartitionKey", "Timestamp"];
this.setupIntialEntities(headers, documents, isInitialLoad);
}
}
} catch (error) {
this.setState({
@ -351,6 +353,7 @@ class QueryTablesTabComponent extends Component<IQueryTablesTabComponentProps, I
let maxWidth: number;
let documentItems: IDocument[] = [];
let filteredItems: IDocument[] = [];
let updatedQueryTableRows: IQueryTableRowsType[] = [];
this.columns = [];
const { queryTableRows } = this.state;
@ -385,15 +388,17 @@ class QueryTablesTabComponent extends Component<IQueryTablesTabComponentProps, I
});
});
documentItems = this.generateDetailsList(entities);
filteredItems = documentItems.slice(0, PAGESIZE);
if (entities.length > 0) {
documentItems = this.generateDetailsList(entities);
filteredItems = documentItems.slice(0, PAGESIZE);
const queryTableRowsClone = [...queryTableRows];
const updatedQueryTableRows = queryTableRowsClone.map((queryTableRow) => {
const queryTableRowClone = { ...queryTableRow };
queryTableRowClone.fieldOptions = getformattedOptions(headers);
return queryTableRowClone;
});
const queryTableRowsClone = [...queryTableRows];
updatedQueryTableRows = queryTableRowsClone.map((queryTableRow) => {
const queryTableRowClone = { ...queryTableRow };
queryTableRowClone.fieldOptions = getformattedOptions(headers);
return queryTableRowClone;
});
}
this.setState(
{
@ -408,10 +413,10 @@ class QueryTablesTabComponent extends Component<IQueryTablesTabComponentProps, I
fromDocument: 0,
toDocument: PAGESIZE,
currentStartIndex: PAGESIZE,
queryTableRows: updatedQueryTableRows,
queryTableRows: entities.length > 0 ? updatedQueryTableRows : [],
},
() => {
if (isInitialLoad && headers.length > 0) {
if (entities.length > 0 && isInitialLoad && headers.length > 0) {
this.loadFilterExample();
this.onItemsSelectionChanged(true);
}
@ -561,6 +566,7 @@ class QueryTablesTabComponent extends Component<IQueryTablesTabComponentProps, I
return this.state.tableEntityListViewModel.removeEntitiesFromCache(entitiesToDelete).then(() => {
this.setState({
isLoading: true,
rowSelected: false,
});
this.loadEntities(false, false);
});