Call tab when updating error flag

This commit is contained in:
Laurent Nguyen 2024-04-22 15:31:02 +02:00
parent 8299ca5f9d
commit 746b8c908c

View File

@ -74,6 +74,7 @@ export class DocumentsTabV2 extends TabsBase {
onLoadStartKey={this.onLoadStartKey} onLoadStartKey={this.onLoadStartKey}
tabTitle={this.title} tabTitle={this.title}
resourceTokenPartitionKey={this.resourceTokenPartitionKey} resourceTokenPartitionKey={this.resourceTokenPartitionKey}
onExecutionError={(isExecutionError: boolean) => this.isExecutionError(isExecutionError)}
/> />
); );
} }
@ -100,6 +101,7 @@ const DocumentsTabComponent: React.FunctionComponent<{
onLoadStartKey: number; onLoadStartKey: number;
tabTitle: string; tabTitle: string;
resourceTokenPartitionKey?: string; resourceTokenPartitionKey?: string;
onExecutionError: (isExecutionError: boolean) => void;
}> = (props) => { }> = (props) => {
const [isFilterCreated, setIsFilterCreated] = useState<boolean>(true); const [isFilterCreated, setIsFilterCreated] = useState<boolean>(true);
const [isFilterExpanded, setIsFilterExpanded] = useState<boolean>(false); const [isFilterExpanded, setIsFilterExpanded] = useState<boolean>(false);
@ -121,7 +123,6 @@ const DocumentsTabComponent: React.FunctionComponent<{
const [queryAbortController, setQueryAbortController] = useState<AbortController>(undefined); const [queryAbortController, setQueryAbortController] = useState<AbortController>(undefined);
const [cancelQueryTimeoutID, setCancelQueryTimeoutID] = useState<NodeJS.Timeout>(undefined); const [cancelQueryTimeoutID, setCancelQueryTimeoutID] = useState<NodeJS.Timeout>(undefined);
const [isExecutionError, setIsExecutionError] = useState<boolean>(false); // TODO: Where is this used?
const [onLoadStartKey, setOnLoadStartKey] = useState<number>(props.onLoadStartKey); const [onLoadStartKey, setOnLoadStartKey] = useState<number>(props.onLoadStartKey);
const [initialDocumentContent, setInitialDocumentContent] = useState<string>(undefined); const [initialDocumentContent, setInitialDocumentContent] = useState<string>(undefined);
@ -406,7 +407,7 @@ const DocumentsTabComponent: React.FunctionComponent<{
}; };
let onSaveNewDocumentClick = (): Promise<unknown> => { let onSaveNewDocumentClick = (): Promise<unknown> => {
setIsExecutionError(false); props.onExecutionError(false);
const startKey: number = TelemetryProcessor.traceStart(Action.CreateDocument, { const startKey: number = TelemetryProcessor.traceStart(Action.CreateDocument, {
dataExplorerArea: Constants.Areas.Tab, dataExplorerArea: Constants.Areas.Tab,
tabTitle: props.tabTitle, tabTitle: props.tabTitle,
@ -441,7 +442,7 @@ const DocumentsTabComponent: React.FunctionComponent<{
); );
}, },
(error) => { (error) => {
setIsExecutionError(true); props.onExecutionError(true);
const errorMessage = getErrorMessage(error); const errorMessage = getErrorMessage(error);
useDialog.getState().showOkModalDialog("Create document failed", errorMessage); useDialog.getState().showOkModalDialog("Create document failed", errorMessage);
TelemetryProcessor.traceFailure( TelemetryProcessor.traceFailure(
@ -479,7 +480,7 @@ const DocumentsTabComponent: React.FunctionComponent<{
const selectedDocumentId = documentIds[clickedRow as number]; const selectedDocumentId = documentIds[clickedRow as number];
selectedDocumentId.partitionKeyValue = partitionKeyValueArray; selectedDocumentId.partitionKeyValue = partitionKeyValueArray;
setIsExecutionError(false); props.onExecutionError(false);
const startKey: number = TelemetryProcessor.traceStart(Action.UpdateDocument, { const startKey: number = TelemetryProcessor.traceStart(Action.UpdateDocument, {
dataExplorerArea: Constants.Areas.Tab, dataExplorerArea: Constants.Areas.Tab,
tabTitle: props.tabTitle, tabTitle: props.tabTitle,
@ -508,7 +509,7 @@ const DocumentsTabComponent: React.FunctionComponent<{
); );
}, },
(error) => { (error) => {
setIsExecutionError(true); props.onExecutionError(true);
const errorMessage = getErrorMessage(error); const errorMessage = getErrorMessage(error);
useDialog.getState().showOkModalDialog("Update document failed", errorMessage); useDialog.getState().showOkModalDialog("Update document failed", errorMessage);
TelemetryProcessor.traceFailure( TelemetryProcessor.traceFailure(
@ -559,7 +560,7 @@ const DocumentsTabComponent: React.FunctionComponent<{
}; };
const deleteDocuments = (toDeleteDocumentIds: DocumentId[]): void => { const deleteDocuments = (toDeleteDocumentIds: DocumentId[]): void => {
setIsExecutionError(false); props.onExecutionError(false);
setIsExecuting(true); setIsExecuting(true);
const promises = toDeleteDocumentIds.map((documentId) => _deleteDocuments(documentId)); const promises = toDeleteDocumentIds.map((documentId) => _deleteDocuments(documentId));
Promise.all(promises) Promise.all(promises)
@ -587,12 +588,12 @@ const DocumentsTabComponent: React.FunctionComponent<{
let __deleteDocument = (documentId: DocumentId): Promise<void> => deleteDocument(props.collection, documentId); let __deleteDocument = (documentId: DocumentId): Promise<void> => deleteDocument(props.collection, documentId);
const _deleteDocuments = (documentId: DocumentId): Promise<DocumentId> => { const _deleteDocuments = (documentId: DocumentId): Promise<DocumentId> => {
// setIsExecutionError(false); props.onExecutionError(false);
const startKey: number = TelemetryProcessor.traceStart(Action.DeleteDocument, { const startKey: number = TelemetryProcessor.traceStart(Action.DeleteDocument, {
dataExplorerArea: Constants.Areas.Tab, dataExplorerArea: Constants.Areas.Tab,
tabTitle: props.tabTitle, tabTitle: props.tabTitle,
}); });
// setIsExecuting(true); setIsExecuting(true);
return __deleteDocument(documentId).then( return __deleteDocument(documentId).then(
() => { () => {
TelemetryProcessor.traceSuccess( TelemetryProcessor.traceSuccess(
@ -606,7 +607,7 @@ const DocumentsTabComponent: React.FunctionComponent<{
return documentId; return documentId;
}, },
(error) => { (error) => {
setIsExecutionError(true); props.onExecutionError(true);
console.error(error); console.error(error);
TelemetryProcessor.traceFailure( TelemetryProcessor.traceFailure(
Action.DeleteDocument, Action.DeleteDocument,
@ -620,8 +621,8 @@ const DocumentsTabComponent: React.FunctionComponent<{
); );
return undefined; return undefined;
}, },
); )
// .finally(() => setIsExecuting(false)); .finally(() => setIsExecuting(false));
}; };
const onShowFilterClick = () => { const onShowFilterClick = () => {
@ -744,7 +745,7 @@ const DocumentsTabComponent: React.FunctionComponent<{
let loadNextPage = (applyFilterButtonClicked?: boolean): Promise<unknown> => { let loadNextPage = (applyFilterButtonClicked?: boolean): Promise<unknown> => {
setIsExecuting(true); setIsExecuting(true);
setIsExecutionError(false); props.onExecutionError(false);
let automaticallyCancelQueryAfterTimeout: boolean; let automaticallyCancelQueryAfterTimeout: boolean;
if (applyFilterButtonClicked && queryTimeoutEnabled()) { if (applyFilterButtonClicked && queryTimeoutEnabled()) {
const queryTimeout: number = LocalStorageUtility.getEntryNumber(StorageKey.QueryTimeout); const queryTimeout: number = LocalStorageUtility.getEntryNumber(StorageKey.QueryTimeout);
@ -813,7 +814,7 @@ const DocumentsTabComponent: React.FunctionComponent<{
} }
}, },
(error) => { (error) => {
setIsExecutionError(true); props.onExecutionError(true);
const errorMessage = getErrorMessage(error); const errorMessage = getErrorMessage(error);
logConsoleError(errorMessage); logConsoleError(errorMessage);
if (onLoadStartKey !== null && onLoadStartKey !== undefined) { if (onLoadStartKey !== null && onLoadStartKey !== undefined) {
@ -1237,7 +1238,7 @@ const DocumentsTabComponent: React.FunctionComponent<{
throw new Error("Document without shard key"); throw new Error("Document without shard key");
} }
setIsExecutionError(false); props.onExecutionError(false);
setIsExecuting(true); setIsExecuting(true);
return MongoProxyClient.createDocument( return MongoProxyClient.createDocument(
props.collection.databaseId, props.collection.databaseId,
@ -1273,7 +1274,7 @@ const DocumentsTabComponent: React.FunctionComponent<{
); );
}, },
(error) => { (error) => {
setIsExecutionError(true); props.onExecutionError(true);
const errorMessage = getErrorMessage(error); const errorMessage = getErrorMessage(error);
useDialog.getState().showOkModalDialog("Create document failed", errorMessage); useDialog.getState().showOkModalDialog("Create document failed", errorMessage);
TelemetryProcessor.traceFailure( TelemetryProcessor.traceFailure(
@ -1295,7 +1296,7 @@ const DocumentsTabComponent: React.FunctionComponent<{
onSaveExistingDocumentClick = (): Promise<void> => { onSaveExistingDocumentClick = (): Promise<void> => {
// const selectedDocumentId = this.selectedDocumentId(); // const selectedDocumentId = this.selectedDocumentId();
const documentContent = selectedDocumentContent; const documentContent = selectedDocumentContent;
setIsExecutionError(false); props.onExecutionError(false);
setIsExecuting(true); setIsExecuting(true);
const startKey: number = TelemetryProcessor.traceStart(Action.UpdateDocument, { const startKey: number = TelemetryProcessor.traceStart(Action.UpdateDocument, {
dataExplorerArea: Constants.Areas.Tab, dataExplorerArea: Constants.Areas.Tab,
@ -1336,7 +1337,7 @@ const DocumentsTabComponent: React.FunctionComponent<{
); );
}, },
(error) => { (error) => {
setIsExecutionError(true); props.onExecutionError(true);
const errorMessage = getErrorMessage(error); const errorMessage = getErrorMessage(error);
useDialog.getState().showOkModalDialog("Update document failed", errorMessage); useDialog.getState().showOkModalDialog("Update document failed", errorMessage);
TelemetryProcessor.traceFailure( TelemetryProcessor.traceFailure(
@ -1360,7 +1361,7 @@ const DocumentsTabComponent: React.FunctionComponent<{
loadNextPage = (): Promise<unknown> => { loadNextPage = (): Promise<unknown> => {
setIsExecuting(true); setIsExecuting(true);
setIsExecutionError(false); props.onExecutionError(false);
const filter: string = filterContent.trim(); const filter: string = filterContent.trim();
const query: string = buildQuery(filter); const query: string = buildQuery(filter);