mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-12-19 08:51:24 +00:00
Revert "Persist and restore query text, tab position and splitter direction in QueryTabComponent (#1993)" (#1994)
This reverts commit d562fc0f40.
This commit is contained in:
@@ -34,7 +34,6 @@ jest.mock("Shared/AppStatePersistenceUtility", () => ({
|
||||
AppStateComponentNames: {
|
||||
QueryCopilot: "QueryCopilot",
|
||||
},
|
||||
readSubComponentState: jest.fn(),
|
||||
}));
|
||||
|
||||
describe("QueryTabComponent", () => {
|
||||
|
||||
@@ -13,11 +13,6 @@ import { readCopilotToggleStatus, saveCopilotToggleStatus } from "Explorer/Query
|
||||
import { OnExecuteQueryClick, QueryDocumentsPerPage } from "Explorer/QueryCopilot/Shared/QueryCopilotClient";
|
||||
import { QueryCopilotSidebar } from "Explorer/QueryCopilot/V2/Sidebar/QueryCopilotSidebar";
|
||||
import { QueryResultSection } from "Explorer/Tabs/QueryTab/QueryResultSection";
|
||||
import {
|
||||
SubComponentName,
|
||||
readQueryTabSubComponentState,
|
||||
saveQueryTabSubComponentState,
|
||||
} from "Explorer/Tabs/QueryTab/QueryTabStateUtil";
|
||||
import { QueryTabStyles, useQueryTabStyles } from "Explorer/Tabs/QueryTab/Styles";
|
||||
import { CosmosFluentProvider } from "Explorer/Theme/ThemeUtil";
|
||||
import { useSelectedNode } from "Explorer/useSelectedNode";
|
||||
@@ -123,7 +118,6 @@ interface IQueryTabStates {
|
||||
queryResultsView: SplitterDirection;
|
||||
errors?: QueryError[];
|
||||
modelMarkers?: monaco.editor.IMarkerData[];
|
||||
queryViewSizePercent: number;
|
||||
}
|
||||
|
||||
export const QueryTabCopilotComponent = (props: IQueryTabComponentProps): any => {
|
||||
@@ -171,7 +165,7 @@ class QueryTabComponentImpl extends React.Component<QueryTabComponentImplProps,
|
||||
|
||||
this.state = {
|
||||
toggleState: ToggleState.Result,
|
||||
sqlQueryEditorContent: this._getDefaultQueryEditorContent(props),
|
||||
sqlQueryEditorContent: props.isPreferredApiMongoDB ? "{}" : props.queryText || "SELECT * FROM c",
|
||||
selectedContent: "",
|
||||
queryResults: undefined,
|
||||
errors: [],
|
||||
@@ -182,8 +176,7 @@ class QueryTabComponentImpl extends React.Component<QueryTabComponentImplProps,
|
||||
cancelQueryTimeoutID: undefined,
|
||||
copilotActive: this._queryCopilotActive(),
|
||||
currentTabActive: true,
|
||||
queryResultsView: this._getDefaultQUeryResultsViewDirection(props),
|
||||
queryViewSizePercent: this._getQueryViewSizePercent(props),
|
||||
queryResultsView: getDefaultQueryResultsView(),
|
||||
};
|
||||
this.isCloseClicked = false;
|
||||
this.splitterId = this.props.tabId + "_splitter";
|
||||
@@ -214,25 +207,6 @@ class QueryTabComponentImpl extends React.Component<QueryTabComponentImplProps,
|
||||
});
|
||||
}
|
||||
|
||||
private _getQueryViewSizePercent(props: QueryTabComponentImplProps): number {
|
||||
return readQueryTabSubComponentState<number>(SubComponentName.QueryViewSizePercent, props.collection, 50);
|
||||
}
|
||||
|
||||
private _getDefaultQUeryResultsViewDirection(props: QueryTabComponentImplProps): SplitterDirection {
|
||||
const defaultQueryResultsView = getDefaultQueryResultsView();
|
||||
return readQueryTabSubComponentState<SplitterDirection>(
|
||||
SubComponentName.SplitterDirection,
|
||||
props.collection,
|
||||
defaultQueryResultsView,
|
||||
);
|
||||
}
|
||||
|
||||
private _getDefaultQueryEditorContent(props: QueryTabComponentImplProps): string {
|
||||
const defaultText = props.isPreferredApiMongoDB ? "{}" : props.queryText || "SELECT * FROM c";
|
||||
// Retrieve from app state if available
|
||||
return readQueryTabSubComponentState<string>(SubComponentName.QueryText, props.collection, defaultText);
|
||||
}
|
||||
|
||||
private _queryCopilotActive(): boolean {
|
||||
if (this.props.copilotEnabled) {
|
||||
return readCopilotToggleStatus(userContext.databaseAccount);
|
||||
@@ -595,13 +569,6 @@ class QueryTabComponentImpl extends React.Component<QueryTabComponentImplProps,
|
||||
private _setViewLayout(direction: SplitterDirection): void {
|
||||
this.setState({ queryResultsView: direction });
|
||||
|
||||
// Store to local storage
|
||||
saveQueryTabSubComponentState<SplitterDirection>(
|
||||
SubComponentName.SplitterDirection,
|
||||
this.props.collection,
|
||||
direction,
|
||||
);
|
||||
|
||||
// We'll need to refresh the context buttons to update the selected state of the view buttons
|
||||
setTimeout(() => {
|
||||
useCommandBar.getState().setContextButtons(this.getTabsButtons());
|
||||
@@ -656,8 +623,6 @@ class QueryTabComponentImpl extends React.Component<QueryTabComponentImplProps,
|
||||
this.saveQueryButton.enabled = newContent.length > 0;
|
||||
|
||||
useCommandBar.getState().setContextButtons(this.getTabsButtons());
|
||||
|
||||
saveQueryTabSubComponentState<string>(SubComponentName.QueryText, this.props.collection, newContent, true);
|
||||
}
|
||||
|
||||
public onSelectedContent(selectedContent: string, selection: monaco.Selection): void {
|
||||
@@ -739,21 +704,8 @@ class QueryTabComponentImpl extends React.Component<QueryTabComponentImplProps,
|
||||
></QueryCopilotPromptbar>
|
||||
)}
|
||||
{/* Set 'key' to the value of vertical to force re-rendering when vertical changes, to work around https://github.com/johnwalley/allotment/issues/457 */}
|
||||
<Allotment
|
||||
key={vertical.toString()}
|
||||
vertical={vertical}
|
||||
onDragEnd={(sizes: number[]) => {
|
||||
const queryViewSizePercent = (100 * sizes[0]) / (sizes[0] + sizes[1]);
|
||||
saveQueryTabSubComponentState<number>(
|
||||
SubComponentName.QueryViewSizePercent,
|
||||
this.props.collection,
|
||||
queryViewSizePercent,
|
||||
true,
|
||||
);
|
||||
this.setState({ queryViewSizePercent });
|
||||
}}
|
||||
>
|
||||
<Allotment.Pane data-test="QueryTab/EditorPane" preferredSize={`${this.state.queryViewSizePercent}%`}>
|
||||
<Allotment key={vertical.toString()} vertical={vertical}>
|
||||
<Allotment.Pane data-test="QueryTab/EditorPane">
|
||||
<EditorReact
|
||||
ref={this.queryEditor}
|
||||
className={this.props.styles.queryEditor}
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
// Definitions of State data
|
||||
|
||||
import {
|
||||
AppStateComponentNames,
|
||||
deleteSubComponentState,
|
||||
readSubComponentState,
|
||||
saveSubComponentState,
|
||||
} from "Shared/AppStatePersistenceUtility";
|
||||
import * as ViewModels from "../../../Contracts/ViewModels";
|
||||
|
||||
export enum SubComponentName {
|
||||
SplitterDirection = "SplitterDirection",
|
||||
QueryViewSizePercent = "QueryViewSizePercent",
|
||||
QueryText = "QueryText",
|
||||
}
|
||||
|
||||
export type QueryViewSizePercent = number;
|
||||
export type QueryText = string;
|
||||
|
||||
// Wrap the ...SubComponentState functions for type safety
|
||||
export const readQueryTabSubComponentState = <T>(
|
||||
subComponentName: SubComponentName,
|
||||
collection: ViewModels.CollectionBase,
|
||||
defaultValue: T,
|
||||
): T => readSubComponentState<T>(AppStateComponentNames.QueryTab, subComponentName, collection, defaultValue);
|
||||
|
||||
export const saveQueryTabSubComponentState = <T>(
|
||||
subComponentName: SubComponentName,
|
||||
collection: ViewModels.CollectionBase,
|
||||
state: T,
|
||||
debounce?: boolean,
|
||||
): void => saveSubComponentState<T>(AppStateComponentNames.QueryTab, subComponentName, collection, state, debounce);
|
||||
|
||||
export const deleteQueryTabSubComponentState = (
|
||||
subComponentName: SubComponentName,
|
||||
collection: ViewModels.CollectionBase,
|
||||
) => deleteSubComponentState(AppStateComponentNames.QueryTab, subComponentName, collection);
|
||||
Reference in New Issue
Block a user