From 21f4d1aec82e41b15f7b367c29a83208a8e423db Mon Sep 17 00:00:00 2001
From: AlexGarrity <alexanderg@illycorp.com>
Date: Tue, 14 May 2024 13:39:44 +0100
Subject: [PATCH] Add Window Timeout text field to command editor, for commands
 that are flagged as opening new windows

---
 .../selenium-ide/src/browser/I18N/en/index.ts |  2 +
 .../selenium-ide/src/browser/I18N/zh/index.ts |  2 +
 .../tabs/Tests/TestCommandEditor.tsx          | 38 +++++++++++++------
 .../windows/ProjectEditor/tabs/Tests/types.ts |  2 +-
 4 files changed, 31 insertions(+), 13 deletions(-)

diff --git a/packages/selenium-ide/src/browser/I18N/en/index.ts b/packages/selenium-ide/src/browser/I18N/en/index.ts
index eb359785bf..3fe083d143 100644
--- a/packages/selenium-ide/src/browser/I18N/en/index.ts
+++ b/packages/selenium-ide/src/browser/I18N/en/index.ts
@@ -177,6 +177,8 @@ const testCore = {
   value: 'Value',
   windowHandleName: 'Window Handle Name',
   windowHandleNameNote: 'Variable name to set to the new window handle',
+  windowTimeout: 'Window Timeout',
+  windowTimeoutNote: 'The amount of time to wait for the window to open (in milliseconds)',
   commands: 'Commands',
   tabCommand: 'Cmd',
   tabTarget: 'Target',
diff --git a/packages/selenium-ide/src/browser/I18N/zh/index.ts b/packages/selenium-ide/src/browser/I18N/zh/index.ts
index 77669d1726..4301ccdf15 100644
--- a/packages/selenium-ide/src/browser/I18N/zh/index.ts
+++ b/packages/selenium-ide/src/browser/I18N/zh/index.ts
@@ -183,6 +183,8 @@ const testCore = {
   value: '指令值',
   windowHandleName: '窗口句柄名称',
   windowHandleNameNote: '要设置为新窗口句柄的变量名称',
+  windowTimeout: '窗口超时',
+  windowTimeoutNote: '等待窗口打开的时间量(以毫秒为单位)',
   commands: '指令集',
   tabCommand: '指令',
   tabTarget: '关键字',
diff --git a/packages/selenium-ide/src/browser/windows/ProjectEditor/tabs/Tests/TestCommandEditor.tsx b/packages/selenium-ide/src/browser/windows/ProjectEditor/tabs/Tests/TestCommandEditor.tsx
index 97cbaf982d..3dbf85027a 100644
--- a/packages/selenium-ide/src/browser/windows/ProjectEditor/tabs/Tests/TestCommandEditor.tsx
+++ b/packages/selenium-ide/src/browser/windows/ProjectEditor/tabs/Tests/TestCommandEditor.tsx
@@ -70,18 +70,32 @@ const CommandEditor: FC<CommandEditorProps> = ({
         <ArgField command={correctedCommand} {...props} fieldName="target" />
         <ArgField command={correctedCommand} {...props} fieldName="value" />
         {command.opensWindow && (
-          <CommandTextField
-            command={correctedCommand}
-            {...props}
-            fieldName={
-              intl.formatMessage({
-                id: languageMap.testCore.windowHandleName,
-              }) as 'windowHandleName'
-            }
-            note={intl.formatMessage({
-              id: languageMap.testCore.windowHandleNameNote,
-            })}
-          />
+          <>
+            <CommandTextField
+              command={correctedCommand}
+              {...props}
+              fieldName={
+                intl.formatMessage({
+                  id: languageMap.testCore.windowHandleName,
+                }) as 'windowHandleName'
+              }
+              note={intl.formatMessage({
+                id: languageMap.testCore.windowHandleNameNote,
+              })}
+            />
+            <CommandTextField
+              command={correctedCommand}
+              {...props}
+              fieldName={
+                intl.formatMessage({
+                  id: languageMap.testCore.windowTimeout,
+                }) as 'windowTimeout'
+              }
+              note={intl.formatMessage({
+                id: languageMap.testCore.windowTimeoutNote,
+              })}
+              />
+            </>
         )}
         <CommandTextField
           command={correctedCommand}
diff --git a/packages/selenium-ide/src/browser/windows/ProjectEditor/tabs/Tests/types.ts b/packages/selenium-ide/src/browser/windows/ProjectEditor/tabs/Tests/types.ts
index c387ded33a..c13a7fffe5 100644
--- a/packages/selenium-ide/src/browser/windows/ProjectEditor/tabs/Tests/types.ts
+++ b/packages/selenium-ide/src/browser/windows/ProjectEditor/tabs/Tests/types.ts
@@ -17,7 +17,7 @@ export interface CommandArgFieldProps extends CommandEditorProps {
 }
 
 export interface CommandFieldProps extends CommandEditorProps {
-  fieldName: 'comment' | 'windowHandleName' | LocatorFields
+  fieldName: 'comment' | 'windowHandleName' | 'windowTimeout' | LocatorFields
   note?: string
 }