diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index f2871aea..a11989bd 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -1,4 +1,4 @@ -import React, { useState, useCallback, useEffect } from 'react'; +import React, { useState, useCallback, useEffect, useMemo } from 'react'; import { Button, Paper, Box, TextField, IconButton } from "@mui/material"; import EditIcon from '@mui/icons-material/Edit'; import TextFieldsIcon from '@mui/icons-material/TextFields'; @@ -373,6 +373,20 @@ export const RightSidePanel: React.FC = ({ onFinishCapture stopGetScreenshot(); }; + const isConfirmCaptureDisabled = useMemo(() => { + // Check if we are in the initial stage and if there are no browser steps or no valid list selectors with fields + if (captureStage !== 'initial') return false; + + const hasValidListSelector = browserSteps.some(step => + step.type === 'list' && + step.listSelector && + Object.keys(step.fields).length > 0 + ); + + // Disable the button if there are no valid list selectors or if there are unconfirmed list text fields + return !hasValidListSelector || hasUnconfirmedListTextFields; + }, [captureStage, browserSteps, hasUnconfirmedListTextFields]); + return ( {/* @@ -387,7 +401,7 @@ export const RightSidePanel: React.FC = ({ onFinishCapture