@@ -247,7 +247,7 @@ const AudioModelPage: NextPageWithLayout = () => { /> - + setPrompt(content)} /> { >
- + setPrompt(content)} />
@@ -234,6 +234,7 @@ const ImageModelPage: NextPageWithLayout = () => { getMessagesPagination={fetchMessages} onPinImageFromUrl={pinImageFromUrl} canAttachFile={showFileExample} + onPromptClick={(content) => setPrompt(content)} /> { getMessagesPagination={fetchMessages} onPinImageFromUrl={pinImageFromUrl} canAttachFile={showFileExample} + onPromptClick={(content) => setPrompt(content)} /> @@ -244,6 +244,7 @@ const VideoModelPage: NextPageWithLayout = () => { device={deviceType} videos={messages} getMessagesPagination={fetchMessages} + onPromptClick={(content) => setPrompt(content)} /> { device={deviceType} videos={messages} getMessagesPagination={fetchMessages} + onPromptClick={(content) => setPrompt(content)} /> @@ -11,9 +11,10 @@ interface MessagesList { device: 'mobile' | 'desktop' audios: Message[] | null | undefined getMessagesPagination?: () => Promise + onPromptClick?: (content: string) => void } -export const AudioMessagesList: React.FC = memo(({ device, audios }) => { +export const AudioMessagesList: React.FC = memo(({ device, audios, onPromptClick }) => { const [loadedAudios, setLoadedAudios] = useState>(new Set()) const [currentlyPlaying, setCurrentlyPlaying] = useState(null) const audioRefs = useRef<{ [key: string]: (HTMLAudioElement & AudioPlayerRef) | null }>({}) @@ -162,6 +163,7 @@ export const AudioMessagesList: React.FC = memo(({ device, audios title={hasMoreContent ? fullTextForTooltip : ''} > onPromptClick?.(message.content)} sx={{ fontSize: '15px', color: '#D4D4D4', @@ -170,6 +172,7 @@ export const AudioMessagesList: React.FC = memo(({ device, audios textOverflow: 'ellipsis', whiteSpace: 'nowrap', width: isDesktop ? '100%' : '90%', + cursor: onPromptClick ? 'pointer' : 'default', }} > {displayText} @@ -23,9 +23,10 @@ interface MessagesList { isComplete: boolean onPinImageFromUrl?: (url: string) => void canAttachFile?: boolean + onPromptClick?: (content: string) => void } -export const ImageMessagesList: React.FC = memo(({ device, images, getMessagesPagination, onPinImageFromUrl, canAttachFile }) => { +export const ImageMessagesList: React.FC = memo(({ device, images, getMessagesPagination, onPinImageFromUrl, canAttachFile, onPromptClick }) => { const { showMessage } = useShowDataStore() const [modal, setModal] = useState(false) @@ -230,11 +231,13 @@ export const ImageMessagesList: React.FC = memo(({ device, images, title={message.content.length > 30 ? message.content : ''} > message.content.length > 0 && onPromptClick?.(message.content)} sx={{ fontSize: '15px', maxWidth: device === 'desktop' ? '250px' : '100%', marginTop: '12px', color: '#A4AAB5', + cursor: onPromptClick && message.content.length > 0 ? 'pointer' : 'default', }} > {!loaded @@ -15,9 +15,10 @@ interface MessagesList { videos: VideoMessage[] | null | undefined getMessagesPagination?: () => Promise isComplete: boolean + onPromptClick?: (content: string) => void } -export const VideoMessagesList: React.FC = memo(({ device, videos, getMessagesPagination }) => { +export const VideoMessagesList: React.FC = memo(({ device, videos, getMessagesPagination, onPromptClick }) => { const [loadedVideos, setLoadedVideos] = useState>(new Set()) const videoRefs = useRef<{ [key: string]: HTMLVideoElement | null }>({}) const [isModalOpen, setIsModalOpen] = useState(false) @@ -140,11 +141,13 @@ export const VideoMessagesList: React.FC = memo(({ device, videos, title={message.content.length > 30 ? message.content : ''} > message.content.length > 0 && onPromptClick?.(message.content)} sx={{ fontSize: '15px', maxWidth: device === 'desktop' ? '250px' : '100%', marginTop: '12px', color: '#A4AAB5', + cursor: onPromptClick && message.content.length > 0 ? 'pointer' : 'default', }} > {!loadedVideos.has(message.uid)