feat: Persist SQL Lab autocomplete setting across tabs and visits (#17708)

This commit is contained in:
Erik Ritter 2021-12-20 15:53:48 -08:00 committed by GitHub
parent 6edc183c5f
commit 5b0aa27f2b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 4 deletions

View File

@ -63,6 +63,11 @@ import {
SQL_EDITOR_GUTTER_MARGIN,
SQL_TOOLBAR_HEIGHT,
} from 'src/SqlLab/constants';
import {
getItem,
LocalStorageKeys,
setItem,
} from 'src/utils/localStorageHelpers';
import { FeatureFlag, isFeatureEnabled } from 'src/featureFlags';
import TemplateParamsEditor from '../TemplateParamsEditor';
import ConnectedSouthPane from '../SouthPane/state';
@ -171,7 +176,10 @@ class SqlEditor extends React.PureComponent {
northPercent: props.queryEditor.northPercent || INITIAL_NORTH_PERCENT,
southPercent: props.queryEditor.southPercent || INITIAL_SOUTH_PERCENT,
sql: props.queryEditor.sql,
autocompleteEnabled: true,
autocompleteEnabled: getItem(
LocalStorageKeys.sqllab__is_autocomplete_enabled,
true,
),
showCreateAsModal: false,
createAs: '',
};
@ -365,9 +373,15 @@ class SqlEditor extends React.PureComponent {
}
handleToggleAutocompleteEnabled = () => {
this.setState(prevState => ({
autocompleteEnabled: !prevState.autocompleteEnabled,
}));
this.setState(prevState => {
setItem(
LocalStorageKeys.sqllab__is_autocomplete_enabled,
!prevState.autocompleteEnabled,
);
return {
autocompleteEnabled: !prevState.autocompleteEnabled,
};
});
};
handleWindowResize() {

View File

@ -48,6 +48,7 @@ export enum LocalStorageKeys {
* Example:
* sqllab__is_autocomplete_enabled
*/
sqllab__is_autocomplete_enabled = 'sqllab__is_autocomplete_enabled',
}
export type LocalStorageValues = {
@ -60,6 +61,7 @@ export type LocalStorageValues = {
homepage_dashboard_filter: TableTabTypes;
homepage_collapse_state: string[];
homepage_activity_filter: SetTabType | null;
sqllab__is_autocomplete_enabled: boolean;
};
export function getItem<K extends LocalStorageKeys>(