feat: Use SPA navigation between AddSlice and Dataset list pages (#21683)

This commit is contained in:
Kamil Gabryjelski 2022-10-04 13:52:21 +02:00 committed by GitHub
parent 640628952e
commit 2907869c26
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 11 deletions

View File

@ -23,7 +23,7 @@ import { styled, t, SupersetClient, JsonResponse } from '@superset-ui/core';
import { getUrlParam } from 'src/utils/urlUtils';
import { URL_PARAMS } from 'src/constants';
import { isNullish } from 'src/utils/common';
import { withRouter, RouteComponentProps } from 'react-router-dom';
import { Link, withRouter, RouteComponentProps } from 'react-router-dom';
import Button from 'src/components/Button';
import { AsyncSelect, Steps } from 'src/components';
import { Tooltip } from 'src/components/Tooltip';
@ -32,7 +32,6 @@ import withToasts from 'src/components/MessageToasts/withToasts';
import VizTypeGallery, {
MAX_ADVISABLE_VIZ_GALLERY_WIDTH,
} from 'src/explore/components/controls/VizTypeControl/VizTypeGallery';
import _ from 'lodash';
import { findPermission } from 'src/utils/findPermission';
import { UserWithPermissionsAndRoles } from 'src/types/bootstrapTypes';
@ -329,18 +328,18 @@ export class AddSliceContainer extends React.PureComponent<
const isButtonDisabled = this.isBtnDisabled();
const datasetHelpText = this.state.canCreateDataset ? (
<span data-test="dataset-write">
<a
href="/tablemodelview/list/#create"
rel="noopener noreferrer"
target="_blank"
<Link
to="/tablemodelview/list/#create"
data-test="add-chart-new-dataset"
>
{t('Add a dataset')}
</a>
</Link>
{` ${t('or')} `}
<a
href="https://superset.apache.org/docs/creating-charts-dashboards/creating-your-first-dashboard/#registering-a-new-table"
rel="noopener noreferrer"
target="_blank"
data-test="add-chart-new-dataset-instructions"
>
{`${t('view instructions')} `}
<i className="fa fa-external-link" />

View File

@ -17,6 +17,7 @@
* under the License.
*/
import React, { FunctionComponent, useState, useEffect } from 'react';
import { useHistory } from 'react-router-dom';
import { styled, t } from '@superset-ui/core';
import { useSingleViewResource } from 'src/views/CRUD/hooks';
import Modal from 'src/components/Modal';
@ -54,6 +55,7 @@ const DatasetModal: FunctionComponent<DatasetModalProps> = ({
onHide,
show,
}) => {
const history = useHistory();
const [currentDatabase, setCurrentDatabase] = useState<
DatabaseObject | undefined
>();
@ -100,9 +102,13 @@ const DatasetModal: FunctionComponent<DatasetModalProps> = ({
setDisableSave(true);
};
const hide = () => {
setItem(LocalStorageKeys.db, null);
const cleanup = () => {
clearModal();
setItem(LocalStorageKeys.db, null);
};
const hide = () => {
cleanup();
onHide();
};
@ -122,8 +128,8 @@ const DatasetModal: FunctionComponent<DatasetModalProps> = ({
if (onDatasetAdd) {
onDatasetAdd({ id: response.id, ...response });
}
window.location.href = `/chart/add?dataset=${currentTableName}`;
hide();
history.push(`/chart/add?dataset=${currentTableName}`);
cleanup();
});
};