fciannella's picture
Working with service run on 7860
53ea588
// SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-License-Identifier: BSD 2-Clause License
import React, { useState, useEffect } from "react";
interface PromptInputProps {
defaultValue?: string;
onChange?: (prompt: string) => void;
disabled?: boolean;
}
export const PromptInput: React.FC<PromptInputProps> = ({
defaultValue = " ",
onChange,
disabled = false
}) => {
const [prompt, setPrompt] = useState(defaultValue);
// Update prompt state when defaultValue prop changes
useEffect(() => {
setPrompt(defaultValue);
}, [defaultValue]);
// Notify parent component when prompt changes
const handlePromptChange = (newPrompt: string) => {
setPrompt(newPrompt);
onChange?.(newPrompt);
};
return (
<div className="h-full flex flex-col bg-gray-50 p-3">
<textarea
value={prompt}
onChange={(e) => handlePromptChange(e.target.value)}
disabled={disabled}
className={`flex-1 p-6 border-2 rounded-xl focus:outline-none resize-none text-lg leading-relaxed shadow-sm min-h-0 ${
disabled
? 'border-gray-300 bg-gray-100 text-gray-500 cursor-not-allowed'
: 'border-gray-400 bg-white focus:ring-2 focus:ring-blue-500 focus:border-transparent'
}`}
placeholder={disabled ? "Prompt locked during conversation..." : "Start typing your prompt here..."}
/>
</div>
);
};