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

View File

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