diff --git a/packages/react/src/components/ChatHeader/ChatHeader.js b/packages/react/src/components/ChatHeader/ChatHeader.js index 0ec1a8183..c24e5c01e 100644 --- a/packages/react/src/components/ChatHeader/ChatHeader.js +++ b/packages/react/src/components/ChatHeader/ChatHeader.js @@ -354,7 +354,7 @@ const ChatHeader = ({ ) : ( <> - + { setFullScreen((prev) => !prev); diff --git a/packages/react/src/components/ChatInput/ChatInputFormattingToolbar.js b/packages/react/src/components/ChatInput/ChatInputFormattingToolbar.js index f7ccf700f..2a70ff215 100644 --- a/packages/react/src/components/ChatInput/ChatInputFormattingToolbar.js +++ b/packages/react/src/components/ChatInput/ChatInputFormattingToolbar.js @@ -111,7 +111,7 @@ const ChatInputFormattingToolbar = ({ messageRef, inputRef }) => { )} {formatter.map((item, index) => ( - + { ))} - + - + - + {' '} setOpen(!isOpen)} /> diff --git a/packages/react/src/components/Message/MessageToolbox.js b/packages/react/src/components/Message/MessageToolbox.js index 8826bc026..d16012d46 100644 --- a/packages/react/src/components/Message/MessageToolbox.js +++ b/packages/react/src/components/Message/MessageToolbox.js @@ -10,6 +10,7 @@ import { Modal } from '../Modal'; import { Icon } from '../Icon'; import { Button } from '../Button'; import { parseEmoji } from '../../lib/emoji'; +import { Tooltip } from '../Tooltip'; const MessageToolboxWrapperCss = css` display: none; @@ -88,30 +89,36 @@ export const MessageToolbox = ({ {...props} > {!isThreadMessage ? ( + + + + ) : null} + u._id === authenticatedUserId) + ? 'star-filled' + : 'star' + }`} + onClick={() => handleStarMessage(message)} /> - ) : null} - u._id === authenticatedUserId) - ? 'star-filled' - : 'star' - }`} - onClick={() => handleStarMessage(message)} - /> - setEmojiOpen(true)} - /> + + + setEmojiOpen(true)} + /> + {!isThreadMessage && ( - handlePinMessage(message)} - /> - )} - {message.u._id === authenticatedUserId && ( - <> - handleEditMessage(message)} - /> + handleClickDelete(message)} + icon={`${message.pinned ? 'pin-filled' : 'pin'}`} + onClick={() => handlePinMessage(message)} /> + + )} + {message.u._id === authenticatedUserId && ( + <> + + handleEditMessage(message)} + /> + + + handleClickDelete(message)} + /> + )} - handlerReportMessage(message)} - /> + + handlerReportMessage(message)} + /> + {showDeleteModal && ( diff --git a/packages/react/src/components/Tooltip/Tooltip.js b/packages/react/src/components/Tooltip/Tooltip.js index f014ae9dc..dbf38fb3e 100644 --- a/packages/react/src/components/Tooltip/Tooltip.js +++ b/packages/react/src/components/Tooltip/Tooltip.js @@ -1,19 +1,17 @@ import React, { useState } from 'react'; -const Tooltip = ({ children, text, position }) => { +const Tooltip = ({ children, text, position, X, Y }) => { const [isTooltipVisible, setTooltipVisible] = useState(false); - + let touchTimer; const tooltipStyle = { position: 'absolute', - left: '64%', - transform: 'translateX(-50%) ', - backgroundColor: 'rgba(97, 97, 97, 1)', + backgroundColor: 'black', color: 'white', - padding: '4px', + padding: '4.5px', borderRadius: '3px', - boxShadow: '0 2px 10px rgba(0, 0, 0, 0.2)', - zIndex: 9999, - fontSize: '12.5px', + boxShadow: '0 2px 10px rgba(0, 0, 0, 0.4)', + zIndex: 999, + fontSize: '13.8px', whiteSpace: 'nowrap', fontFamily: 'sans-serif', }; @@ -25,35 +23,50 @@ const Tooltip = ({ children, text, position }) => { marginLeft: '-5px', borderWidth: '6px', borderStyle: 'solid', - borderColor: 'rgba(97, 97, 97, 1) transparent transparent transparent', + borderColor: 'black transparent transparent transparent', + zIndex: 999, }; - // Add more positions according to your needs and modify tooltipStyle and tooltipArrowStyle accordingly + const Adjust = (A, B) => { + let AB = ''; + if (A != null) { + AB = `${AB}translateX(${A})`; + tooltipStyle.transform = AB; + } + if (B != null) { + AB = `${AB}translateY(${B})`; + tooltipStyle.transform = AB; + } + }; + // Add more positions according to your needs and modify tooltipStyle and tooltipArrowStyle accordingly if (position === 'top') { tooltipStyle.top = '-100%'; tooltipArrowStyle.top = '100%'; - tooltipArrowStyle.transform = 'translateX(-50%)'; + Adjust(X, Y); } else if (position === 'bottom') { tooltipStyle.top = '100%'; + tooltipStyle.transform = 'translateY(45%) translateX(-55%)'; tooltipArrowStyle.bottom = '100%'; - tooltipArrowStyle.transform = 'translateX(-50%) rotate(180deg)'; + tooltipArrowStyle.transform = 'rotate(180deg)'; + Adjust(X, Y); } const handleMouseEnter = () => { - setTooltipVisible(true); + touchTimer = setTimeout(() => { + setTooltipVisible(true); + }, 300); }; const handleMouseLeave = () => { + clearTimeout(touchTimer); setTooltipVisible(false); }; - let touchTimer; - const handleTouchStart = () => { touchTimer = setTimeout(() => { setTooltipVisible(true); - }, 500); + }, 400); }; const handleTouchEnd = () => {