diff --git a/redisinsight/ui/src/components/notifications/components/infinite-messages/InfiniteMessages.tsx b/redisinsight/ui/src/components/notifications/components/infinite-messages/InfiniteMessages.tsx index 86d4ba10ec..0bc9e303a4 100644 --- a/redisinsight/ui/src/components/notifications/components/infinite-messages/InfiniteMessages.tsx +++ b/redisinsight/ui/src/components/notifications/components/infinite-messages/InfiniteMessages.tsx @@ -11,7 +11,7 @@ import { } from '@elastic/eui' import { find } from 'lodash' import cx from 'classnames' -import { CloudJobStep } from 'uiSrc/electron/constants' +import { CloudJobName, CloudJobStep } from 'uiSrc/electron/constants' import ExternalLink from 'uiSrc/components/base/external-link' import ChampagneIcon from 'uiSrc/assets/img/icons/champagne.svg' import Divider from 'uiSrc/components/divider/Divider' @@ -19,6 +19,7 @@ import { OAuthProviders } from 'uiSrc/components/oauth/oauth-select-plan/constan import { CloudSuccessResult } from 'uiSrc/slices/interfaces' +import { Maybe } from 'uiSrc/utils' import styles from './styles.module.scss' export enum InfiniteMessagesIds { @@ -91,8 +92,11 @@ export const INFINITE_MESSAGES = { ) }), - SUCCESS_CREATE_DB: (details: Omit, onSuccess: () => void) => { + SUCCESS_CREATE_DB: (details: Omit, onSuccess: () => void, jobName: Maybe) => { const vendor = find(OAuthProviders, ({ id }) => id === details.provider) + const withFeed = jobName + && [CloudJobName.CreateFreeDatabase, CloudJobName.CreateFreeSubscriptionAndDatabase].includes(jobName) + const text = `You can now use your Redis Stack database in Redis Cloud${withFeed ? ' with pre-loaded sample data' : ''}.` return ({ id: InfiniteMessagesIds.oAuthSuccess, className: 'wide', @@ -110,7 +114,7 @@ export const INFINITE_MESSAGES = { Congratulations! - You can now use your Redis Stack database in Redis Cloud with pre-loaded sample data. + {text} Notice: the database will be deleted after 15 days of inactivity. diff --git a/redisinsight/ui/src/components/oauth/oauth-jobs/OAuthJobs.tsx b/redisinsight/ui/src/components/oauth/oauth-jobs/OAuthJobs.tsx index 3e3ea593dd..1e78f57501 100644 --- a/redisinsight/ui/src/components/oauth/oauth-jobs/OAuthJobs.tsx +++ b/redisinsight/ui/src/components/oauth/oauth-jobs/OAuthJobs.tsx @@ -26,6 +26,7 @@ import { setSSOFlow } from 'uiSrc/slices/instances/cloud' const OAuthJobs = () => { const { status, + name: jobName, error, step, result, @@ -44,7 +45,7 @@ const OAuthJobs = () => { break case CloudJobStatus.Finished: - dispatch(fetchInstancesAction(() => dispatch(createFreeDbSuccess(result, history)))) + dispatch(fetchInstancesAction(() => dispatch(createFreeDbSuccess(result, history, jobName)))) dispatch(setJob({ id: '', name: CloudJobName.CreateFreeSubscriptionAndDatabase, status: '' })) localStorageService.remove(BrowserStorageItem.OAuthJobId) break diff --git a/redisinsight/ui/src/slices/oauth/cloud.ts b/redisinsight/ui/src/slices/oauth/cloud.ts index b135a8a5d1..0c7676f7c7 100644 --- a/redisinsight/ui/src/slices/oauth/cloud.ts +++ b/redisinsight/ui/src/slices/oauth/cloud.ts @@ -3,7 +3,7 @@ import { AxiosError } from 'axios' import { remove } from 'lodash' import { apiService, localStorageService } from 'uiSrc/services' import { ApiEndpoints, BrowserStorageItem, Pages } from 'uiSrc/constants' -import { getApiErrorCode, getApiErrorMessage, getAxiosError, isStatusSuccessful, Nullable } from 'uiSrc/utils' +import { getApiErrorCode, getApiErrorMessage, getAxiosError, isStatusSuccessful, Maybe, Nullable } from 'uiSrc/utils' import { CloudJobName, CloudJobStatus } from 'uiSrc/electron/constants' import { @@ -242,7 +242,7 @@ export const oauthCapiKeysSelector = (state: RootState) => state.oauth.cloud.cap // The reducer export default oauthCloudSlice.reducer -export function createFreeDbSuccess(result: CloudSuccessResult, history: any) { +export function createFreeDbSuccess(result: CloudSuccessResult, history: any, jobName: Maybe) { return async (dispatch: AppDispatch, stateInit: () => RootState) => { const { resourceId: id, ...details } = result try { @@ -257,12 +257,12 @@ export function createFreeDbSuccess(result: CloudSuccessResult, history: any) { dispatch(checkConnectToInstanceAction(id)) } - history.push(Pages.workbench(id)) + history.push(Pages.browser(id)) } dispatch(showOAuthProgress(true)) dispatch(removeInfiniteNotification(InfiniteMessagesIds.oAuthProgress)) - dispatch(addInfiniteNotification(INFINITE_MESSAGES.SUCCESS_CREATE_DB(details, onConnect))) + dispatch(addInfiniteNotification(INFINITE_MESSAGES.SUCCESS_CREATE_DB(details, onConnect, jobName))) dispatch(setSelectAccountDialogState(false)) } catch (_err) { const error = _err as AxiosError diff --git a/redisinsight/ui/src/slices/tests/oauth/cloud.spec.ts b/redisinsight/ui/src/slices/tests/oauth/cloud.spec.ts index 7b747ff915..855c575c8b 100644 --- a/redisinsight/ui/src/slices/tests/oauth/cloud.spec.ts +++ b/redisinsight/ui/src/slices/tests/oauth/cloud.spec.ts @@ -1024,13 +1024,13 @@ describe('oauth cloud slice', () => { const onConnect = () => {} // Act - await store.dispatch(createFreeDbSuccess(result, {})) + await store.dispatch(createFreeDbSuccess(result, {}, CloudJobName.CreateFreeDatabase)) // Assert const expectedActions = [ showOAuthProgress(true), removeInfiniteNotification(InfiniteMessagesIds.oAuthProgress), - addInfiniteNotification(INFINITE_MESSAGES.SUCCESS_CREATE_DB({}, onConnect)), + addInfiniteNotification(INFINITE_MESSAGES.SUCCESS_CREATE_DB({}, onConnect, CloudJobName.CreateFreeDatabase)), setSelectAccountDialogState(false), ] expect(clearStoreActions(store.getActions())).toEqual(clearStoreActions(expectedActions))