mirror of
https://github.com/DayuanJiang/next-ai-draw-io.git
synced 2026-01-02 22:32:27 +08:00
fix: enable UI retry when Bedrock returns early 503 error (#94)
- Add error prop to ChatInput to detect error state - Update isDisabled logic to allow retry when there's an error - Pass combined error (SDK error + streamingError) to ChatInput When Bedrock returns 503 ServiceUnavailableException before streaming starts, AI SDK's onError fires but status may not transition to "ready". This fix ensures the input is re-enabled when an error occurs, allowing users to retry their request.
This commit is contained in:
@@ -29,6 +29,7 @@ interface ChatInputProps {
|
||||
onFileChange?: (files: File[]) => void;
|
||||
showHistory?: boolean;
|
||||
onToggleHistory?: (show: boolean) => void;
|
||||
error?: Error | null;
|
||||
}
|
||||
|
||||
export function ChatInput({
|
||||
@@ -41,6 +42,7 @@ export function ChatInput({
|
||||
onFileChange = () => {},
|
||||
showHistory = false,
|
||||
onToggleHistory = () => {},
|
||||
error = null,
|
||||
}: ChatInputProps) {
|
||||
const { diagramHistory, saveDiagramToFile } = useDiagram();
|
||||
const textareaRef = useRef<HTMLTextAreaElement>(null);
|
||||
@@ -49,7 +51,8 @@ export function ChatInput({
|
||||
const [showClearDialog, setShowClearDialog] = useState(false);
|
||||
const [showSaveDialog, setShowSaveDialog] = useState(false);
|
||||
|
||||
const isDisabled = status === "streaming" || status === "submitted";
|
||||
// Allow retry when there's an error (even if status is still "streaming" or "submitted")
|
||||
const isDisabled = (status === "streaming" || status === "submitted") && !error;
|
||||
|
||||
useEffect(() => {
|
||||
console.log('[ChatInput] Status changed to:', status, '| Input disabled:', isDisabled);
|
||||
|
||||
Reference in New Issue
Block a user