* 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
* [sc-54864] Adds safety check to provide near term fix for Queries not saving
There is an error when casting the columns array to String() for saving queries where the objects in the array are missing the toString method. This is a near term rapid patch to fix workflow in production which will have a follow up to identify root cause.
* fix typo
Co-authored-by: Elizabeth Thompson <eschutho@gmail.com>
* Adjusted chekc to be explicit for undefined instead of truthy
This fixes issue caught by unit test where the if statement was using a truthy check where it should be explicitly checking for value of undefined
* Adds new unit test to get 100% coverage for callApi
Co-authored-by: Elizabeth Thompson <eschutho@gmail.com>
* 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
- Stop clearing the selected dataset after overwritting so users can overwrite as many times as they see fit
- There's a new AsyncSelect we should use now
* add flow for dbconnmodal to datasetmodal
* fix bug
* second part
* fix dataset to sql lab
* fix lint
* more lint
* add key value
* fix type
* add new styling
* remove undefined from types
* Save Dataset Modal:
- Use our Select component as substitute of the Autocomplete one so options are loaded initially without the user having to trigger a search and we are mosre consistent with the rest of the app
- Changing datasetId to lowercase so when custom props get into the DOM we don't get warning related to invalid formatting
- We extracted the dropdown out of the radio because it causes invalid click handling when an option is selected
- Updated tests
* Save Dataset Modal:
- Update missing test for DatasourceControl
* Save Dataset Modal:
- Remove conditional from load options function since only guest users dont have userId, and if that is the case they wont reach this part of the application
* Save Dataset Modal:
- Remove unused comment
* Save Dataset Modal:
- Add getPopupContainer as prop for Select component
* Save Dataset Modal:
- Add tests for our new getPopupContainer prop in Select component. So if passed it gets called.
* Save Dataset Modal:
- use lowercased property when calling post form data
* Save Dataset Modal:
- Update tests so there is no need to define a null returning func
* Save Dataset Modal:
- Including getPopupContainer from PickedSelectProps instead
- Updating definition in SelectFilterPlugin
* 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]
* Modified SQL Lab so it uses the default viz to explore a new dataset with
* Added a comment to the config file
* Remove trailing whitespace
* [CLDN-1312] Removed the 'viz_type' variable so that when it is undefinded in the back-end, it gets set to the default viz
* [CLDN-1312] Only sets the 'all_columns' variable if the default viz type is a 'table'
* Will only pop 'selectedColumns' out of 'form_data' if it is present
* [CLDN-1312] Updated files so that the default viz is now being used again in SQL Lab Explore