From 503fc2be0e1f3b8b3d9d91a155b43fdb8286d4a2 Mon Sep 17 00:00:00 2001 From: Geido <60598000+geido@users.noreply.github.com> Date: Mon, 11 Jan 2021 23:06:57 +0100 Subject: [PATCH] chore: Show datasets when search input is empty (#12391) --- .../datasource/ChangeDatasourceModal_spec.jsx | 7 ++++++- .../src/common/components/Modal/Modal.tsx | 3 +++ .../src/datasource/ChangeDatasourceModal.tsx | 17 ++++++++--------- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/superset-frontend/spec/javascripts/datasource/ChangeDatasourceModal_spec.jsx b/superset-frontend/spec/javascripts/datasource/ChangeDatasourceModal_spec.jsx index fcca1a7898950..efa39e032afa9 100644 --- a/superset-frontend/spec/javascripts/datasource/ChangeDatasourceModal_spec.jsx +++ b/superset-frontend/spec/javascripts/datasource/ChangeDatasourceModal_spec.jsx @@ -81,19 +81,24 @@ describe('ChangeDatasourceModal', () => { }); it('fetches datasources', async () => { - expect(fetchMock.calls(/api\/v1\/dataset/)).toHaveLength(6); + expect(fetchMock.calls(/api\/v1\/dataset/)).toHaveLength(3); }); it('renders confirmation message', async () => { + await waitForComponentToPaint(wrapper, 1000); + act(() => { wrapper.find('[data-test="datasource-link"]').at(0).props().onClick(); }); + await waitForComponentToPaint(wrapper); expect(wrapper.find('.proceed-btn')).toExist(); }); it('changes the datasource', async () => { + await waitForComponentToPaint(wrapper, 1000); + act(() => { wrapper.find('[data-test="datasource-link"]').at(0).props().onClick(); }); diff --git a/superset-frontend/src/common/components/Modal/Modal.tsx b/superset-frontend/src/common/components/Modal/Modal.tsx index de20419f30acb..64fad2b27ae7f 100644 --- a/superset-frontend/src/common/components/Modal/Modal.tsx +++ b/superset-frontend/src/common/components/Modal/Modal.tsx @@ -41,11 +41,13 @@ interface ModalProps { centered?: boolean; footer?: React.ReactNode; wrapProps?: object; + height?: string; } interface StyledModalProps extends SupersetThemeProps { maxWidth?: string; responsive?: boolean; + height?: string; } export const StyledModal = styled(BaseModal)` @@ -87,6 +89,7 @@ export const StyledModal = styled(BaseModal)` .ant-modal-body { padding: ${({ theme }) => theme.gridUnit * 4}px; overflow: auto; + ${({ height }) => height && `height: ${height};`} } .ant-modal-footer { diff --git a/superset-frontend/src/datasource/ChangeDatasourceModal.tsx b/superset-frontend/src/datasource/ChangeDatasourceModal.tsx index 682e83c65c923..1ab82492e8918 100644 --- a/superset-frontend/src/datasource/ChangeDatasourceModal.tsx +++ b/superset-frontend/src/datasource/ChangeDatasourceModal.tsx @@ -25,7 +25,7 @@ import React, { } from 'react'; import { Alert, FormControl, FormControlProps } from 'react-bootstrap'; import { SupersetClient, t, styled } from '@superset-ui/core'; -import TableView from 'src/components/TableView'; +import TableView, { EmptyWrapperType } from 'src/components/TableView'; import StyledModal from 'src/common/components/Modal'; import Button from 'src/components/Button'; import { useListViewResource } from 'src/views/CRUD/hooks'; @@ -120,9 +120,9 @@ const ChangeDatasourceModal: FunctionComponent = ({ useDebouncedEffect( () => { - if (filter) { - fetchData({ - ...emptyRequest, + fetchData({ + ...emptyRequest, + ...(filter && { filters: [ { id: 'table_name', @@ -130,8 +130,8 @@ const ChangeDatasourceModal: FunctionComponent = ({ value: filter, }, ], - }); - } + }), + }); }, 1000, [filter], @@ -142,9 +142,6 @@ const ChangeDatasourceModal: FunctionComponent = ({ if (searchRef && searchRef.current) { searchRef.current.focus(); } - - // Fetch initial datasets for tableview - await fetchData(emptyRequest); }; if (show) { @@ -224,6 +221,7 @@ const ChangeDatasourceModal: FunctionComponent = ({ onHide={onHide} responsive title={t('Change Dataset')} + height="350px" footer={ <> {confirmChange && ( @@ -268,6 +266,7 @@ const ChangeDatasourceModal: FunctionComponent = ({ data={renderTableView()} pageSize={20} className="table-condensed" + emptyWrapperType={EmptyWrapperType.Small} /> )}