@@ -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)