diff --git a/packages/ui/src/ui-component/cards/StarterPromptsCard.css b/packages/ui/src/ui-component/cards/StarterPromptsCard.css index 028b8b34..8fc6c07c 100644 --- a/packages/ui/src/ui-component/cards/StarterPromptsCard.css +++ b/packages/ui/src/ui-component/cards/StarterPromptsCard.css @@ -1,6 +1,4 @@ .button-container { - position: absolute; - z-index: 1000; display: flex; overflow-x: auto; -webkit-overflow-scrolling: touch; /* For momentum scroll on mobile devices */ @@ -9,5 +7,4 @@ .button { flex: 0 0 auto; /* Don't grow, don't shrink, base width on content */ - margin: 5px; /* Adjust as needed for spacing between buttons */ } diff --git a/packages/ui/src/ui-component/cards/StarterPromptsCard.js b/packages/ui/src/ui-component/cards/StarterPromptsCard.js index cfec4ba4..bb3fbdfa 100644 --- a/packages/ui/src/ui-component/cards/StarterPromptsCard.js +++ b/packages/ui/src/ui-component/cards/StarterPromptsCard.js @@ -5,7 +5,10 @@ import './StarterPromptsCard.css' const StarterPromptsCard = ({ isGrid, starterPrompts, sx, onPromptClick }) => { return ( - + {starterPrompts.map((sp, index) => ( onPromptClick(sp.prompt, e)} /> ))} diff --git a/packages/ui/src/views/chatmessage/ChatExpandDialog.js b/packages/ui/src/views/chatmessage/ChatExpandDialog.js index e2044ea3..9b526e56 100644 --- a/packages/ui/src/views/chatmessage/ChatExpandDialog.js +++ b/packages/ui/src/views/chatmessage/ChatExpandDialog.js @@ -7,7 +7,7 @@ import { ChatMessage } from './ChatMessage' import { StyledButton } from 'ui-component/button/StyledButton' import { IconEraser } from '@tabler/icons' -const ChatExpandDialog = ({ show, dialogProps, onClear, onCancel }) => { +const ChatExpandDialog = ({ show, dialogProps, onClear, onCancel, previews, setPreviews }) => { const portalElement = document.getElementById('portal') const customization = useSelector((state) => state.customization) @@ -47,7 +47,13 @@ const ChatExpandDialog = ({ show, dialogProps, onClear, onCancel }) => { className='cloud-dialog-wrapper' sx={{ display: 'flex', justifyContent: 'flex-end', flexDirection: 'column', p: 0 }} > - + ) : null @@ -59,7 +65,9 @@ ChatExpandDialog.propTypes = { show: PropTypes.bool, dialogProps: PropTypes.object, onClear: PropTypes.func, - onCancel: PropTypes.func + onCancel: PropTypes.func, + previews: PropTypes.array, + setPreviews: PropTypes.func } export default ChatExpandDialog diff --git a/packages/ui/src/views/chatmessage/ChatMessage.css b/packages/ui/src/views/chatmessage/ChatMessage.css index 91bb9efa..e1646c80 100644 --- a/packages/ui/src/views/chatmessage/ChatMessage.css +++ b/packages/ui/src/views/chatmessage/ChatMessage.css @@ -115,14 +115,14 @@ padding: 12px; } -.cloud-wrapper, -.cloud-dialog-wrapper { +.cloud-wrapper { width: 400px; - height: calc(100vh - 260px); + height: calc(100vh - 180px); } .cloud-dialog-wrapper { width: 100%; + height: calc(100vh - 120px); } .cloud-wrapper > div, @@ -198,3 +198,8 @@ z-index: 2000; /* Ensure it's above other content */ border: 2px dashed #0094ff; /* Example style */ } + +.center audio { + height: 100%; + border-radius: 0; +} diff --git a/packages/ui/src/views/chatmessage/ChatMessage.js b/packages/ui/src/views/chatmessage/ChatMessage.js index 1a9e6d35..89fd941a 100644 --- a/packages/ui/src/views/chatmessage/ChatMessage.js +++ b/packages/ui/src/views/chatmessage/ChatMessage.js @@ -58,7 +58,7 @@ const messageImageStyle = { objectFit: 'cover' } -export const ChatMessage = ({ open, chatflowid, isDialog }) => { +export const ChatMessage = ({ open, chatflowid, isDialog, previews, setPreviews }) => { const theme = useTheme() const customization = useSelector((state) => state.customization) @@ -90,7 +90,6 @@ export const ChatMessage = ({ open, chatflowid, isDialog }) => { // drag & drop and file input const fileUploadRef = useRef(null) const [isChatFlowAvailableForUploads, setIsChatFlowAvailableForUploads] = useState(false) - const [previews, setPreviews] = useState([]) const [isDragActive, setIsDragActive] = useState(false) // recording @@ -353,7 +352,8 @@ export const ChatMessage = ({ open, chatflowid, isDialog }) => { if (e) e.preventDefault() if (!promptStarterInput && userInput.trim() === '') { - if (!(previews.length === 1 && previews[0].type === 'audio')) { + const containsAudio = previews.filter((item) => item.type === 'audio').length > 0 + if (!(previews.length > 1 && containsAudio)) { return } } @@ -584,7 +584,8 @@ export const ChatMessage = ({ open, chatflowid, isDialog }) => { useEffect(() => { // wait for audio recording to load and then send - if (previews.length === 1 && previews[0].type === 'audio') { + const containsAudio = previews.filter((item) => item.type === 'audio').length > 0 + if (previews.length > 1 && containsAudio) { setIsRecording(false) setRecordingNotSupported(false) handlePromptClick('') @@ -669,7 +670,8 @@ export const ChatMessage = ({ open, chatflowid, isDialog }) => { display: 'flex', flexWrap: 'wrap', flexDirection: 'row', - width: '100%' + width: '100%', + gap: '4px' }} > {message.fileUploads.map((item, index) => { @@ -788,23 +790,22 @@ export const ChatMessage = ({ open, chatflowid, isDialog }) => { -
- {messages && messages.length === 1 && ( + {messages && messages.length === 1 && starterPrompts.length > 0 && ( +
0 ? 70 : 0 }} starterPrompts={starterPrompts || []} onPromptClick={handlePromptClick} isGrid={isDialog} /> - )} - -
+
+ )}
{previews && previews.length > 0 && ( - + {previews.map((item, index) => ( {item.mime.startsWith('image/') ? ( @@ -827,23 +828,18 @@ export const ChatMessage = ({ open, chatflowid, isDialog }) => { ) : ( - + handleDeletePreview(item)} size='small'> @@ -993,5 +989,7 @@ export const ChatMessage = ({ open, chatflowid, isDialog }) => { ChatMessage.propTypes = { open: PropTypes.bool, chatflowid: PropTypes.string, - isDialog: PropTypes.bool + isDialog: PropTypes.bool, + previews: PropTypes.array, + setPreviews: PropTypes.func } diff --git a/packages/ui/src/views/chatmessage/ChatPopUp.js b/packages/ui/src/views/chatmessage/ChatPopUp.js index 91ba73e2..74d4b908 100644 --- a/packages/ui/src/views/chatmessage/ChatPopUp.js +++ b/packages/ui/src/views/chatmessage/ChatPopUp.js @@ -35,6 +35,7 @@ export const ChatPopUp = ({ chatflowid }) => { const [open, setOpen] = useState(false) const [showExpandDialog, setShowExpandDialog] = useState(false) const [expandDialogProps, setExpandDialogProps] = useState({}) + const [previews, setPreviews] = useState([]) const anchorRef = useRef(null) const prevOpen = useRef(open) @@ -199,7 +200,7 @@ export const ChatPopUp = ({ chatflowid }) => { boxShadow shadow={theme.shadows[16]} > - + @@ -211,6 +212,8 @@ export const ChatPopUp = ({ chatflowid }) => { dialogProps={expandDialogProps} onClear={clearChat} onCancel={() => setShowExpandDialog(false)} + previews={previews} + setPreviews={setPreviews} > )