From 8ac04ac0bcd93ea3da2193b5c935d06060510c9f Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Thu, 20 Aug 2026 20:14:51 +0100 Subject: [PATCH] Implement Tooltip System and Enhance UI Components - Introduced a new Tooltip component to standardize tooltip functionality across the application, improving consistency and usability. - Refactored existing components to utilize the new Tooltip implementation, enhancing user interactions with clearer feedback. - Added a CursorTooltip for dynamic tooltip positioning based on mouse movement, improving user experience. - Updated CSS styles for tooltips and related components to enhance visual clarity and responsiveness. - Integrated TooltipProvider to manage tooltip state and visibility, streamlining tooltip management across the application. --- assets/stylesheets/App.css | 5 + src/App.jsx | 29 ++-- .../Dashboard/common/CopyButton.jsx | 5 +- .../Dashboard/common/CursorTooltip.jsx | 142 ++++++++++++++++++ .../Dashboard/common/DashboardNavigation.jsx | 105 +++++++------ .../Dashboard/common/DashboardSidebar.jsx | 6 +- .../Dashboard/common/EmailDisplay.jsx | 5 +- .../Dashboard/common/MarkdownToolbar.jsx | 22 +-- .../Dashboard/common/ObjectTable.jsx | 4 +- .../Dashboard/common/PermissionsMatrix.jsx | 5 +- .../Dashboard/common/SecretDisplay.jsx | 5 +- src/components/Dashboard/common/Tooltip.jsx | 72 +++++++++ .../Dashboard/common/UrlDisplay.jsx | 5 +- .../Dashboard/common/WindowAppMenu.jsx | 6 +- .../Dashboard/context/ActionsContext.jsx | 7 + .../Dashboard/context/TooltipContext.jsx | 84 +++++++++++ 16 files changed, 419 insertions(+), 88 deletions(-) create mode 100644 src/components/Dashboard/common/CursorTooltip.jsx create mode 100644 src/components/Dashboard/common/Tooltip.jsx create mode 100644 src/components/Dashboard/context/TooltipContext.jsx diff --git a/assets/stylesheets/App.css b/assets/stylesheets/App.css index 2da2489a..c49b782f 100644 --- a/assets/stylesheets/App.css +++ b/assets/stylesheets/App.css @@ -361,6 +361,11 @@ code { padding: 8px !important; } +.cursor-tooltip .ant-card { + box-shadow: 0 6px 16px 0 rgba(0, 0, 0, 0.08), + 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05); +} + /* --- Start of src/index.css --- */ body { margin: 0; diff --git a/src/App.jsx b/src/App.jsx index d88b4cf8..fc55d159 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -30,6 +30,7 @@ import { ApiServerProvider } from './components/Dashboard/context/ApiServerConte import { NotificationProvider } from './components/Dashboard/context/NotificationContext.jsx' import { ElectronProvider } from './components/Dashboard/context/ElectronContext.jsx' import { MessageProvider } from './components/Dashboard/context/MessageContext.jsx' +import { TooltipProvider } from './components/Dashboard/context/TooltipContext.jsx' import { AppUpdateProvider } from './components/Dashboard/context/AppUpdateContext.jsx' import AuthCallback from './components/App/AuthCallback.jsx' import EmailNotificationTemplate from './components/Email/EmailNotificationTemplate.jsx' @@ -85,13 +86,14 @@ const AppContent = () => { - - - - - - - + + + + + + + + } @@ -162,12 +164,13 @@ const AppContent = () => { } /> - - - - - - + + + + + + + diff --git a/src/components/Dashboard/common/CopyButton.jsx b/src/components/Dashboard/common/CopyButton.jsx index 8e9a9a0f..3987974d 100644 --- a/src/components/Dashboard/common/CopyButton.jsx +++ b/src/components/Dashboard/common/CopyButton.jsx @@ -1,6 +1,7 @@ import PropTypes from 'prop-types' -import { Button, Tooltip } from 'antd' +import { Button } from 'antd' import { useMessageContext } from '../context/MessageContext' +import Tooltip from './Tooltip' import CopyIcon from '../../Icons/CopyIcon' const CopyButton = ({ @@ -49,7 +50,7 @@ const CopyButton = ({ return ( <> - +