diff --git a/app/client/src/ce/pages/WidgetsEditor/hooks/useAgentsRedirect.ts b/app/client/src/ce/pages/WidgetsEditor/hooks/useAgentsRedirect.ts new file mode 100644 index 0000000000..b6c987997d --- /dev/null +++ b/app/client/src/ce/pages/WidgetsEditor/hooks/useAgentsRedirect.ts @@ -0,0 +1,3 @@ +export function useAgentsRedirect() { + return null; +} diff --git a/app/client/src/ce/utils/signupHelpers.ts b/app/client/src/ce/utils/signupHelpers.ts index 7cb745ab6e..6c8a82ab4c 100644 --- a/app/client/src/ce/utils/signupHelpers.ts +++ b/app/client/src/ce/utils/signupHelpers.ts @@ -1,7 +1,4 @@ -import { - firstTimeUserOnboardingInit, - setCurrentApplicationIdForCreateNewApp, -} from "actions/onboardingActions"; +import { setCurrentApplicationIdForCreateNewApp } from "actions/onboardingActions"; import { SIGNUP_SUCCESS_URL, BUILDER_PATH, @@ -19,19 +16,27 @@ import type { SocialLoginType, } from "ee/constants/SocialLogin"; import { SocialLoginButtonPropsList } from "ee/constants/SocialLogin"; +import type { Dispatch } from "redux"; + +export interface RedirectUserAfterSignupProps { + redirectUrl: string; + shouldEnableFirstTimeUserOnboarding: string | null; + validLicense?: boolean; + dispatch: Dispatch; + isAiAgentFlowEnabled: boolean; + isOnLoginPage: boolean; +} export const redirectUserAfterSignup = ( - redirectUrl: string, - shouldEnableFirstTimeUserOnboarding: string | null, - _validLicense?: boolean, - // TODO: Fix this the next time the file is edited - // eslint-disable-next-line @typescript-eslint/no-explicit-any - dispatch?: any, - isEnabledForCreateNew?: boolean, // is Enabled for only non-invited users - isOnLoginPage?: boolean, - // TODO: Fix this the next time the file is edited - // eslint-disable-next-line @typescript-eslint/no-explicit-any -): any => { + props: RedirectUserAfterSignupProps, +) => { + const { + dispatch, + isOnLoginPage, + redirectUrl, + shouldEnableFirstTimeUserOnboarding, + } = props; + if (redirectUrl) { try { if ( @@ -66,21 +71,10 @@ export const redirectUserAfterSignup = ( * passing baseApplicationId as applicationId should be fine * **/ if (baseApplicationId || basePageId) { - if (isEnabledForCreateNew) { - dispatch( - setCurrentApplicationIdForCreateNewApp( - baseApplicationId as string, - ), - ); - history.replace(APPLICATIONS_URL); - } else { - dispatch( - firstTimeUserOnboardingInit( - baseApplicationId, - basePageId as string, - ), - ); - } + dispatch( + setCurrentApplicationIdForCreateNewApp(baseApplicationId as string), + ); + history.replace(APPLICATIONS_URL); } else { if (!urlObject) { try { diff --git a/app/client/src/ee/pages/WidgetsEditor/hooks/useAgentsRedirect.ts b/app/client/src/ee/pages/WidgetsEditor/hooks/useAgentsRedirect.ts new file mode 100644 index 0000000000..f23068915a --- /dev/null +++ b/app/client/src/ee/pages/WidgetsEditor/hooks/useAgentsRedirect.ts @@ -0,0 +1 @@ +export * from "ce/pages/WidgetsEditor/hooks/useAgentsRedirect"; diff --git a/app/client/src/pages/Editor/WidgetsEditor/index.tsx b/app/client/src/pages/Editor/WidgetsEditor/index.tsx index 62fa33a3e5..825d56701e 100644 --- a/app/client/src/pages/Editor/WidgetsEditor/index.tsx +++ b/app/client/src/pages/Editor/WidgetsEditor/index.tsx @@ -10,6 +10,7 @@ import { getCurrentApplication } from "ee/selectors/applicationSelectors"; import { WidgetEditorContainer } from "./WidgetEditorContainer"; import { WidgetEditorHeader } from "./WidgetEditorHeader"; import { WidgetEditorContent } from "./WidgetEditorContent"; +import { useAgentsRedirect } from "ee/pages/WidgetsEditor/hooks/useAgentsRedirect"; /** * WidgetsEditor @@ -25,6 +26,8 @@ function WidgetsEditor() { const currentPageName = useSelector(getCurrentPageName); const currentApp = useSelector(getCurrentApplication); + useAgentsRedirect(); + useEffect(() => { if (currentPageName !== undefined && currentPageId !== undefined) { // Logging page load event diff --git a/app/client/src/pages/setup/SignupSuccess.tsx b/app/client/src/pages/setup/SignupSuccess.tsx index 5508b7177c..d0540ead82 100644 --- a/app/client/src/pages/setup/SignupSuccess.tsx +++ b/app/client/src/pages/setup/SignupSuccess.tsx @@ -15,6 +15,7 @@ import { import { redirectUserAfterSignup } from "ee/utils/signupHelpers"; import { setUserSignedUpFlag } from "utils/storage"; import AnalyticsUtil from "ee/utils/AnalyticsUtil"; +import { getIsAiAgentFlowEnabled } from "ee/selectors/aiAgentSelectors"; export function SignupSuccess() { const dispatch = useDispatch(); @@ -23,6 +24,7 @@ export function SignupSuccess() { const shouldEnableFirstTimeUserOnboarding = urlObject?.searchParams.get( "enableFirstTimeUserExperience", ); + const isAiAgentFlowEnabled = useSelector(getIsAiAgentFlowEnabled); const validLicense = useSelector(isValidLicense); const user = useSelector(getCurrentUser); const isOnLoginPage = !useSelector(isWithinAnOrganization); @@ -35,14 +37,14 @@ export function SignupSuccess() { const redirectUsingQueryParam = useCallback( () => - redirectUserAfterSignup( + redirectUserAfterSignup({ redirectUrl, shouldEnableFirstTimeUserOnboarding, validLicense, dispatch, - isNonInvitedUser, + isAiAgentFlowEnabled, isOnLoginPage, - ), + }), [ dispatch, isNonInvitedUser, @@ -79,7 +81,8 @@ export function SignupSuccess() { if ( user?.isSuperUser || ((user?.role || user?.proficiency) && user?.useCase) || - shouldEnableFirstTimeUserOnboarding !== "true" + shouldEnableFirstTimeUserOnboarding !== "true" || + isAiAgentFlowEnabled ) { redirectUsingQueryParam();