From b3e96d4ad689d938654a201ad1430c06d225fc89 Mon Sep 17 00:00:00 2001 From: Sayali Joshi Date: Sat, 7 Dec 2024 18:14:07 +0530 Subject: [PATCH] Create Test stack button condition added to disable when come from Dashboard --- ui/src/components/TestMigration/index.tsx | 35 +++++++++++++---------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/ui/src/components/TestMigration/index.tsx b/ui/src/components/TestMigration/index.tsx index a6388da76..3f63aa0ac 100644 --- a/ui/src/components/TestMigration/index.tsx +++ b/ui/src/components/TestMigration/index.tsx @@ -48,10 +48,12 @@ const TestMigration = () => { const [data, setData] = useState({}); const [isLoading, setIsLoading] = useState(newMigrationData?.isprojectMapped); const [isStackLoading, setIsStackLoading] = useState(false); - const [disableTestMigration, setdisableTestMigration] = useState(newMigrationData?.test_migration?.isMigrationStarted); + const [disableTestMigration, setDisableTestMigration] = useState(newMigrationData?.test_migration?.isMigrationStarted); - const [disableCreateStack, setDisableCreateStack] = useState(newMigrationData?.test_migration?.stack_api_key && ! newMigrationData?.testStacks?.find((stack)=>stack?.stackUid === newMigrationData?.test_migration?.stack_api_key)?.isMigrated || newMigrationData?.test_migration?.isMigrationStarted ); + const [disableCreateStack, setDisableCreateStack] = useState(false); const [stackLimitReached, setStackLimitReached] = useState(false); + + // Extract project ID from URL parameters const { projectId = '' } = useParams(); @@ -78,28 +80,31 @@ const TestMigration = () => { * to disable Create Test Stack and Start Test Migration buttons as per isMigrated state */ useEffect(() => { - if (!newMigrationData?.testStacks?.find((stack) => stack?.stackUid === newMigrationData?.test_migration?.stack_api_key)?.isMigrated && !disableTestMigration) { - //setDisableCreateStack(false); - } + // Check if the stack_api_key exists and evaluate the logic + const shouldDisable = newMigrationData?.test_migration?.stack_api_key + ? !newMigrationData?.testStacks?.some( + (stack) => + stack?.stackUid === newMigrationData?.test_migration?.stack_api_key && + stack.isMigrated + ) || newMigrationData?.test_migration?.isMigrationStarted + : false; + + setDisableCreateStack(shouldDisable); if (newMigrationData?.testStacks?.find((stack) => stack?.stackUid === newMigrationData?.test_migration?.stack_api_key)?.isMigrated === true) { - setdisableTestMigration(true); + setDisableTestMigration(true); } - }, [newMigrationData?.testStacks]); + }, [newMigrationData]); useEffect(() => { - // Retrieve and apply saved state from sessionStorage const savedState = getStateFromLocalStorage(projectId); if (savedState) { - setdisableTestMigration(savedState?.isTestMigrationStarted); + setDisableTestMigration(savedState?.isTestMigrationStarted); setDisableCreateStack(savedState?.isTestMigrationStarted); } - },[]); - - /** * Handles create test stack function */ @@ -152,7 +157,7 @@ const TestMigration = () => { if (res?.status === 200) { setIsStackLoading(false); setDisableCreateStack(true); - setdisableTestMigration(false) + setDisableTestMigration(false) Notification({ notificationContent: { text: 'Test Stack created successfully' }, notificationProps: { @@ -185,7 +190,7 @@ const TestMigration = () => { ); if (testRes?.status === 200) { - setdisableTestMigration(true); + setDisableTestMigration(true); //dispatch test migration started flag in redux const newMigrationDataObj : INewMigration = { @@ -225,7 +230,7 @@ const TestMigration = () => { const handleMigrationState = (newState: boolean) => { setDisableCreateStack(newState); if (newMigrationData?.testStacks?.find((stack) => stack?.stackUid === newMigrationData?.test_migration?.stack_api_key)?.isMigrated === true) { - setdisableTestMigration(!newState); + setDisableTestMigration(!newState); } } ;