diff --git a/frontend/src/components/helpers/auth/PersistentLogin.js b/frontend/src/components/helpers/auth/PersistentLogin.js
index 27508d3f..80c77115 100644
--- a/frontend/src/components/helpers/auth/PersistentLogin.js
+++ b/frontend/src/components/helpers/auth/PersistentLogin.js
@@ -1,5 +1,5 @@
import { useEffect, useState } from "react";
-import { Outlet } from "react-router-dom";
+import { Outlet, useLocation } from "react-router-dom";
import useSessionValid from "../../../hooks/useSessionValid";
import { useSessionStore } from "../../../store/session-store";
@@ -9,8 +9,15 @@ import { PromptRun } from "../../custom-tools/prompt-card/PromptRun";
let selectedProductStore;
let selectedProduct;
+let setSelectedProduct;
+let SELECTED_PRODUCT;
+let PRODUCT_NAMES = {};
try {
selectedProductStore = require("../../../plugins/llm-whisperer/store/select-product-store.js");
+ SELECTED_PRODUCT =
+ require("../../../plugins/llm-whisperer/helper").SELECTED_PRODUCT;
+ PRODUCT_NAMES =
+ require("../../../plugins/llm-whisperer/helper").PRODUCT_NAMES;
} catch {
// Ignore if hook not available
}
@@ -19,16 +26,23 @@ function PersistentLogin() {
const [isLoading, setIsLoading] = useState(true);
const { sessionDetails } = useSessionStore();
const checkSessionValidity = useSessionValid();
+ const location = useLocation();
+ const queryParams = new URLSearchParams(location.search);
+ const selectedProductQueryParam = queryParams.get(SELECTED_PRODUCT);
try {
if (selectedProductStore?.useSelectedProductStore) {
selectedProduct = selectedProductStore?.useSelectedProductStore(
(state) => state?.selectedProduct
);
+ setSelectedProduct = selectedProductStore.useSelectedProductStore(
+ (state) => state?.setSelectedProduct
+ );
}
} catch (error) {
// Do nothing
}
+
useEffect(() => {
let isMounted = true;
@@ -50,6 +64,15 @@ function PersistentLogin() {
return () => (isMounted = false);
}, [selectedProduct]);
+ useEffect(() => {
+ if (
+ selectedProductQueryParam &&
+ Object.values(PRODUCT_NAMES).includes(selectedProductQueryParam)
+ ) {
+ setSelectedProduct(selectedProductQueryParam);
+ }
+ }, [selectedProductQueryParam]);
+
if (isLoading) {
return ;
}
diff --git a/frontend/src/components/log-in/Login.jsx b/frontend/src/components/log-in/Login.jsx
index 84524de9..7d632b36 100644
--- a/frontend/src/components/log-in/Login.jsx
+++ b/frontend/src/components/log-in/Login.jsx
@@ -5,56 +5,24 @@ import logo from "../../assets/UnstractLogoBlack.svg";
import loginRightBanner from "../../assets/login-right-panel.svg";
import { getBaseUrl } from "../../helpers/GetStaticData";
import "./Login.css";
-import { useEffect } from "react";
-import { useLocation } from "react-router-dom";
let LoginForm = null;
let UnstractCloudLogo;
-let PRODUCT_NAMES = {};
-let SELECTED_PRODUCT;
-let selectedProductStore;
-let setSelectedProduct;
try {
LoginForm = require("../../plugins/login-form/LoginForm").LoginForm;
UnstractCloudLogo =
require("../../plugins/assets/llmWhisperer/index.js").UnstractCloudLogo;
- PRODUCT_NAMES = require("../../plugins/llm-whisperer/helper").PRODUCT_NAMES;
- SELECTED_PRODUCT =
- require("../../plugins/llm-whisperer/helper").SELECTED_PRODUCT;
- selectedProductStore = require("../../plugins/llm-whisperer/store/select-product-store.js");
} catch {
// The components will remain null of it is not available
}
function Login() {
- const location = useLocation();
- const queryParams = new URLSearchParams(location.search);
- const selectedProduct = queryParams.get(SELECTED_PRODUCT);
const baseUrl = getBaseUrl();
const newURL = baseUrl + "/api/v1/login";
const handleLogin = () => {
window.location.href = newURL;
};
- try {
- if (selectedProductStore?.useSelectedProductStore) {
- setSelectedProduct = selectedProductStore.useSelectedProductStore(
- (state) => state?.setSelectedProduct
- );
- }
- } catch (error) {
- // Do nothing
- }
-
- useEffect(() => {
- if (
- selectedProduct &&
- Object.values(PRODUCT_NAMES).includes(selectedProduct)
- ) {
- setSelectedProduct(selectedProduct);
- }
- }, [selectedProduct]);
-
return (
diff --git a/frontend/src/routes/Router.jsx b/frontend/src/routes/Router.jsx
index 455294dc..b0cf28fc 100644
--- a/frontend/src/routes/Router.jsx
+++ b/frontend/src/routes/Router.jsx
@@ -12,43 +12,16 @@ import { RequireAuth } from "../components/helpers/auth/RequireAuth.js";
import { ToolIdePage } from "../pages/ToolIdePage.jsx";
import { OutputAnalyzerPage } from "../pages/OutputAnalyzerPage.jsx";
-let TrialRoutes;
-let ManualReviewPage;
-let SimpleManualReviewPage;
-let ReviewLayout;
let PublicPromptStudioHelper;
-let PaymentSuccessful;
-let SelectProduct;
-try {
- TrialRoutes =
- require("../plugins/subscription/trial-page/TrialEndPage.jsx").TrialEndPage;
-} catch (err) {
- // Do nothing, Not-found Page will be triggered.
-}
-
-try {
- PaymentSuccessful =
- require("../plugins/payment-successful/PaymentSuccessful.jsx").PaymentSuccessful;
-} catch (err) {
- // Do nothing, Not-found Page will be triggered.
-}
-
-try {
- ManualReviewPage =
- require("../plugins/manual-review/page/ManualReviewPage.jsx").ManualReviewPage;
- ReviewLayout =
- require("../plugins/manual-review/review-layout/ReviewLayout.jsx").ReviewLayout;
- SimpleManualReviewPage =
- require("../plugins/manual-review/page/simple/SimpleManualReviewPage.jsx").SimpleManualReviewPage;
-} catch (err) {
- // Do nothing, Not-found Page will be triggered.
-}
// Import pages/components related to Simple Prompt Studio.
let SimplePromptStudioHelper;
let SimplePromptStudio;
let SpsLanding;
let SpsUpload;
+let TrialRoutes;
+let PaymentSuccessful;
+let SelectProduct;
try {
SimplePromptStudioHelper =
require("../plugins/simple-prompt-studio/SimplePromptStudioHelper.jsx").SimplePromptStudioHelper;
@@ -82,6 +55,21 @@ try {
} catch (err) {
// Do nothing, Not-found Page will be triggered.
}
+
+try {
+ TrialRoutes =
+ require("../plugins/subscription/trial-page/TrialEndPage.jsx").TrialEndPage;
+} catch (err) {
+ // Do nothing, Not-found Page will be triggered.
+}
+
+try {
+ PaymentSuccessful =
+ require("../plugins/payment-successful/PaymentSuccessful.jsx").PaymentSuccessful;
+} catch (err) {
+ // Do nothing, Not-found Page will be triggered.
+}
+
function Router() {
const MainAppRoute = useMainAppRoutes();
return (
@@ -125,48 +113,25 @@ function Router() {
{/* protected routes */}
} />
- {MainAppRoute}
- {llmWhispererRouter && (
- {llmWhispererRouter()}
- )}
}>
- {ReviewLayout && ManualReviewPage && (
- }>
- }
- >
- }
- >
- }
- >
- }
- />
- }
- />
-
+ {MainAppRoute}
+ {llmWhispererRouter && (
+ {llmWhispererRouter()}
+ )}
+ {TrialRoutes && (
+ } />
+ )}
+ {SelectProduct && (
+ } />
+ )}
+ {PaymentSuccessful && (
+ } />
)}
- {TrialRoutes && (
- } />
- )}
- } />
+
+ } />
} />
- {SelectProduct && (
- } />
- )}
- {PaymentSuccessful && (
- } />
- )}
);
}
diff --git a/frontend/src/routes/useMainAppRoutes.js b/frontend/src/routes/useMainAppRoutes.js
index e9272ae7..039591f2 100644
--- a/frontend/src/routes/useMainAppRoutes.js
+++ b/frontend/src/routes/useMainAppRoutes.js
@@ -20,7 +20,6 @@ import { CustomToolsHelper } from "../components/helpers/custom-tools/CustomTool
import { ToolIdePage } from "../pages/ToolIdePage.jsx";
import { OutputAnalyzerPage } from "../pages/OutputAnalyzerPage.jsx";
import { deploymentTypes } from "../helpers/GetStaticData.js";
-import { RequireAuth } from "../components/helpers/auth/RequireAuth.js";
let RequirePlatformAdmin;
let PlatformAdminPage;
@@ -30,6 +29,9 @@ let ChatAppLayout;
let ManualReviewSettings;
let OnboardProduct;
let PRODUCT_NAMES = {};
+let ManualReviewPage;
+let SimpleManualReviewPage;
+let ReviewLayout;
try {
RequirePlatformAdmin =
@@ -66,9 +68,20 @@ try {
// Do nothing.
}
+try {
+ ManualReviewPage =
+ require("../plugins/manual-review/page/ManualReviewPage.jsx").ManualReviewPage;
+ ReviewLayout =
+ require("../plugins/manual-review/review-layout/ReviewLayout.jsx").ReviewLayout;
+ SimpleManualReviewPage =
+ require("../plugins/manual-review/page/simple/SimpleManualReviewPage.jsx").SimpleManualReviewPage;
+} catch (err) {
+ // Do nothing, Not-found Page will be triggered.
+}
+
function useMainAppRoutes() {
const routes = (
- }>
+ <>
}>
} />
@@ -140,7 +153,31 @@ function useMainAppRoutes() {
)}
-
+ {ReviewLayout && ManualReviewPage && (
+ }>
+ }
+ >
+ }
+ >
+ }
+ >
+ }
+ />
+ }
+ />
+
+ )}
+ >
);
if (OnboardProduct && Object.keys(PRODUCT_NAMES)?.length) {