diff --git a/public/app/percona/add-instance/components/AddRemoteInstance/AddRemoteInstance.test.tsx b/public/app/percona/add-instance/components/AddRemoteInstance/AddRemoteInstance.test.tsx
index 72922d5ff97e8..6cfd61cb90bd5 100644
--- a/public/app/percona/add-instance/components/AddRemoteInstance/AddRemoteInstance.test.tsx
+++ b/public/app/percona/add-instance/components/AddRemoteInstance/AddRemoteInstance.test.tsx
@@ -7,6 +7,7 @@ import { configureStore } from 'app/store/configureStore';
import { InstanceTypesExtra } from '../../panel.types';
import AddRemoteInstance from './AddRemoteInstance';
+import { MemoryRouter } from 'react-router-dom-v5-compat';
jest.mock('app/percona/shared/helpers/logger', () => {
const originalModule = jest.requireActual('app/percona/shared/helpers/logger');
@@ -23,7 +24,9 @@ describe('Add remote instance:: ', () => {
const type = Databases.mysql;
render(
-
+
+
+
);
@@ -42,7 +45,9 @@ describe('Add remote instance:: ', () => {
const type = InstanceTypesExtra.external;
render(
-
+
+
+
);
@@ -66,7 +71,9 @@ describe('Add remote instance:: ', () => {
render(
-
+
+
+
);
diff --git a/public/app/percona/add-instance/components/AddRemoteInstance/AddRemoteInstance.tsx b/public/app/percona/add-instance/components/AddRemoteInstance/AddRemoteInstance.tsx
index c18e241dd1746..fc67762a4e082 100644
--- a/public/app/percona/add-instance/components/AddRemoteInstance/AddRemoteInstance.tsx
+++ b/public/app/percona/add-instance/components/AddRemoteInstance/AddRemoteInstance.tsx
@@ -38,12 +38,16 @@ import {
} from './FormParts';
import { ExternalServiceConnectionDetails } from './FormParts/ExternalServiceConnectionDetails/ExternalServiceConnectionDetails';
import { HAProxyConnectionDetails } from './FormParts/HAProxyConnectionDetails/HAProxyConnectionDetails';
+import { isPmmNavEnabled } from 'app/percona/shared/helpers/plugin';
+import { useNavigate } from 'react-router-dom-v5-compat';
+import { ServiceAddedEvent } from 'app/percona/shared/core/events';
const AddRemoteInstance: FC = ({
instance: { type, credentials },
onSubmit: submitWrapper,
}) => {
const styles = useStyles(getStyles);
+ const navigate = useNavigate();
const { remoteInstanceCredentials, discoverName } = getInstanceData(type, credentials);
const [loading, setLoading] = useState(false);
@@ -84,7 +88,14 @@ const AddRemoteInstance: FC = ({
Messages.success.title(values.serviceName || values.address || ''),
Messages.success.description(INSTANCE_TYPES_LABELS[type as Databases]),
]);
- window.location.href = '/graph/inventory/';
+
+ if (isPmmNavEnabled()) {
+ appEvents.publish(new ServiceAddedEvent());
+
+ navigate('/inventory');
+ } else {
+ window.location.href = '/graph/inventory/';
+ }
} catch (e) {
if (isApiCancelError(e)) {
return;
diff --git a/public/app/percona/shared/core/events.ts b/public/app/percona/shared/core/events.ts
new file mode 100644
index 0000000000000..5f70213fdb066
--- /dev/null
+++ b/public/app/percona/shared/core/events.ts
@@ -0,0 +1,9 @@
+import { BusEventBase } from '@grafana/data';
+
+export class SettingsUpdatedEvent extends BusEventBase {
+ static type = 'settings-updated-event';
+}
+
+export class ServiceAddedEvent extends BusEventBase {
+ static type = 'service-added-event';
+}
diff --git a/public/app/percona/shared/core/reducers/index.ts b/public/app/percona/shared/core/reducers/index.ts
index cb3673500648f..035529508936f 100644
--- a/public/app/percona/shared/core/reducers/index.ts
+++ b/public/app/percona/shared/core/reducers/index.ts
@@ -26,6 +26,8 @@ import tourReducer from './tour/tour';
import updatesReducers from './updates';
import perconaUserReducers from './user/user';
import usersReducers from './users/users';
+import appEvents from 'app/core/app_events';
+import { SettingsUpdatedEvent } from '../events';
const initialSettingsState: Settings = {
updatesEnabled: false,
@@ -114,6 +116,7 @@ export const updateSettingsAction = createAsyncThunk(
}
const settings = await SettingsService.setSettings(args.body, args.token, true);
await thunkAPI.dispatch(fetchSettingsAction({ usedPassword: password, testEmail }));
+ appEvents.publish(new SettingsUpdatedEvent());
return settings;
})()
),