* perf(sqllab): Rendering perf improvement using immutable state
- keep queryEditors immutable during active state
- add unsavedQueryEditor to store all active changes
- refactor each component to subscribe the related unsaved editor state only
* revert ISaveableDatasource type cast
* missing trigger prop
* a default of an empty object and optional operator
* Moving entire split save btn PR
* Addressed review comments
* Remove arbitrary div from ErrorBoundary in Chart
* Added accidentally removed comment
* Fix act errors in SaveQuery tests
* Fix SaveDatasetActionButton test
* SaveDatasetModal test almost working
* SaveDatasetModal tests all passing
* Clean SaveDatasetModal test
* Fix create chart button and SaveDatasetModal text in SQL Lab
* Fix untitled dataset name on SaveDatasetModal in explore
* Fix styling on split save button
* git commit -m 'Convert QueryAutoRefresh to functional component [sc-48362]'
* addressing PR comments [sc-48362]
Removes unneeded props and state tracking of offline, adds finally block to simplify clearing pending request, simplifies value comparison in array by using includes in place of indexOf
* Address PR comment to use enum for QueryState [sc-48362]
Original implementation had string literals used in multiple places representing Query.state value options. This commit creates a formal TypeScript enum for QueryState so we can remove string literals and ensure better consistency
* Address PR comments for object type validation [sc-48362]
This commit resolves an issue why the TypeScript typing for queryList was marked as a Query[] but was actually a Dictionary (associative array) or Queries. A new type QueryDictionary has been added and the QueryAutoRefresh code was adjusted to use QueryDictionary instead of Query[] in appropriate places as well as unit tests. Commit also removes QueryAutoRefreshContainer by making the once component using QueryAutoRefresh (which is already redux connected) pass the needed values on props. this simplifies the code base and reduce files that need unit testing while keeping QueryAutoRefresh out of needing a redux connection directly.
* Addresses PR comment to add QueryState.SCHEDULED to runningQueryStateList [sc-48362]
In previous implementation 'scheduled' was not included int he list of Query States. Further investigation shows it should be added to as a running state.
* Fix prettier lint error [sc-48362]
* Adjust unit tests for props update hoisting callbacks out of actions wrapper object [sc-48362]
* Update with changes from master [sc-48362]
Merges in updates from master and resolves conflicts from relocation of some of the Query TypeScript definitions into core
* Removes logic setting user offline and relying on results panel error message [sc-48362]
* Fixes bad import after some TypeScript definitions were relocated to core [sc-48362]
* Fixes TypeScript errors [sc-48362]
* Added in code changes that now properly increment the Untitled Query SQL Lab tab names. All that is left is to add tests to make sure that the function works correctly
* Updated the code so that it adds to the untitled_query_numbers variable only if the character after the string 'Untitled Query ' is a number. This prevents any issues when trying to get the maximum value in the list.
* Refactored part of the mapping code, to make it shorter and easier to read/understand
* Fixed issues in the code that were causing some of the CI tests to fail
* Made code changes based on comments within the PR. Also added a unit test to make sure that the newQueryEditor function in the TabbedSqlEditors component works as intended
* Fixed the failing cypress test in tabs.test.js