diff --git a/apps/dashboard/src/features/conversations/conversation-image-replacement.tsx b/apps/dashboard/src/features/conversations/conversation-image-replacement.tsx index 57a9cde..bf34c99 100644 --- a/apps/dashboard/src/features/conversations/conversation-image-replacement.tsx +++ b/apps/dashboard/src/features/conversations/conversation-image-replacement.tsx @@ -1,4 +1,4 @@ -import { useState } from 'react'; +import { useRef, useState } from 'react'; import { useConversationImageReplacementOptionsQuery, useGenerateConversationImageReplacementMutation, @@ -11,6 +11,7 @@ export function ConversationImageReplacement({ conversationId }: { conversationI const [isResultRevealed, setIsResultRevealed] = useState(false); const [sourceAssetId, setSourceAssetId] = useState(null); const [targetId, setTargetId] = useState(null); + const targetFieldsetRef = useRef(null); const optionsQuery = useConversationImageReplacementOptionsQuery(conversationId, isOpen); const generation = useGenerateConversationImageReplacementMutation(conversationId); const options = optionsQuery.data; @@ -53,6 +54,9 @@ export function ConversationImageReplacement({ conversationId }: { conversationI onChange={() => { setSourceAssetId(source.id); clearResult(); + window.requestAnimationFrame(() => { + targetFieldsetRef.current?.scrollIntoView?.({ behavior: 'smooth', block: 'nearest' }); + }); }} type="radio" /> @@ -68,7 +72,7 @@ export function ConversationImageReplacement({ conversationId }: { conversationI ) : null} {options?.targets.length ? ( -
+
2. Image to place on the green screen