diff --git a/packages/react/src/views/MessageAggregators/common/MessageAggregator.js b/packages/react/src/views/MessageAggregators/common/MessageAggregator.js
index 56d52a08c3..a4f22ca087 100644
--- a/packages/react/src/views/MessageAggregators/common/MessageAggregator.js
+++ b/packages/react/src/views/MessageAggregators/common/MessageAggregator.js
@@ -6,6 +6,7 @@ import {
Popup,
useTheme,
ActionButton,
+ Tooltip,
Icon,
} from '@embeddedchat/ui-elements';
import { MessageDivider } from '../../Message/MessageDivider';
@@ -181,18 +182,25 @@ export const MessageAggregator = ({
}}
/>
- setJumpToMessage(msg)}
- css={{
- position: 'relative',
- zIndex: 10,
- marginRight: '5px',
- }}
+
-
-
+ setJumpToMessage(msg)}
+ css={{
+ position: 'relative',
+ zIndex: 10,
+ marginRight: '5px',
+ marginTop: '6px',
+ }}
+ >
+
+
+
)}
diff --git a/packages/ui-elements/src/components/Tooltip/Tooltip.js b/packages/ui-elements/src/components/Tooltip/Tooltip.js
index b4f51bd1b5..6b8c0e29ff 100644
--- a/packages/ui-elements/src/components/Tooltip/Tooltip.js
+++ b/packages/ui-elements/src/components/Tooltip/Tooltip.js
@@ -1,13 +1,13 @@
import React, { useState } from 'react';
import { css } from '@emotion/react';
import { Box } from '../Box';
-import getToolTipStyles from './Tooltip.styles';
+import getTooltipStyles from './Tooltip.styles';
import { useTheme } from '../../hooks';
-const Tooltip = ({ children, text, position }) => {
+const Tooltip = ({ children, text, position = 'top' }) => {
const [isTooltipVisible, setTooltipVisible] = useState(false);
const { theme } = useTheme();
- const styles = getToolTipStyles(theme, position);
+ const styles = getTooltipStyles(theme, position);
const handleMouseEnter = () => {
setTooltipVisible(true);
diff --git a/packages/ui-elements/src/components/Tooltip/Tooltip.styles.js b/packages/ui-elements/src/components/Tooltip/Tooltip.styles.js
index 824eec5d49..2bce93b18f 100644
--- a/packages/ui-elements/src/components/Tooltip/Tooltip.styles.js
+++ b/packages/ui-elements/src/components/Tooltip/Tooltip.styles.js
@@ -1,11 +1,54 @@
import { css } from '@emotion/react';
-const getTooltipStyles = (theme, position) => {
- const styles = {
+const getTooltipStyles = (theme, position = 'top') => {
+ const positionMap = {
+ top: {
+ top: 'calc(-100% - 20px)',
+ left: '50%',
+ transform: 'translateX(-50%)',
+ arrowTop: '100%',
+ arrowLeft: '50%',
+ arrowTransform: 'translateX(-50%) rotate(0deg)',
+ },
+ bottom: {
+ top: 'calc(100% + 10px)',
+ left: '50%',
+ transform: 'translateX(-50%)',
+ arrowTop: 'auto',
+ arrowLeft: '50%',
+ arrowTransform: 'translateX(-50%) rotate(180deg)',
+ },
+ left: {
+ top: '50%',
+ left: 'calc(-100% - 80px)',
+ transform: 'translateY(-50%)',
+ arrowTop: '50%',
+ arrowLeft: '102%',
+ arrowTransform: 'translateY(-50%) rotate(-90deg)',
+ },
+ right: {
+ top: '50%',
+ left: 'calc(100% + 10px)',
+ transform: 'translateY(-50%)',
+ arrowTop: '50%',
+ arrowLeft: '-7px',
+ arrowTransform: 'translateY(-50%) rotate(90deg)',
+ },
+ center: {
+ top: '50%',
+ left: '64%',
+ transform: 'auto',
+ arrowTop: 'auto',
+ arrowLeft: '50%',
+ arrowTransform: 'translateX(-50%)',
+ },
+ };
+
+ const positionStyles = positionMap[position] || positionMap.top;
+
+ return {
tooltip: css`
position: absolute;
- left: 64%;
- transform: translateX(-50%);
background-color: ${theme.invertedColors.secondary};
color: ${theme.invertedColors.secondaryForeground};
padding: 8.5px;
@@ -16,26 +59,25 @@ const getTooltipStyles = (theme, position) => {
font-weight: 500;
white-space: nowrap;
font-family: sans-serif;
- top: ${position === 'top' ? 'calc(-100% - 20px)' : 'calc(100% + 10px)'};
+ top: ${positionStyles.top};
+ left: ${positionStyles.left};
+ transform: ${positionStyles.transform};
`,
+
tooltipArrow: css`
content: '';
position: absolute;
- left: 50%;
margin-left: -4px;
border-width: 6px;
border-style: solid;
border-color: ${theme.invertedColors.secondary} transparent transparent
transparent;
- top: ${position === 'top' ? '100%' : 'auto'};
- bottom: ${position === 'bottom' ? '100%' : 'auto'};
- transform: ${position === 'bottom'
- ? 'translateX(-50%) rotate(180deg)'
- : 'translateX(-50%)'};
+ top: ${positionStyles.arrowTop};
+ bottom: ${positionStyles.arrowTop === 'auto' ? '100%' : 'auto'};
+ left: ${positionStyles.arrowLeft};
+ transform: ${positionStyles.arrowTransform};
`,
};
-
- return styles;
};
export default getTooltipStyles;