Skip to content

Commit

Permalink
#153 - Replace CSS tooltips with shadcn tooltip in sidebar and respon…
Browse files Browse the repository at this point in the history
…se status to add consistent delay and improve tooltip behavior
  • Loading branch information
meminger committed Jan 18, 2025
1 parent 0605c42 commit 4a9c957
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
} from '@/components/mainWindow/responseStatus/ResponseStatusFormatter';
import { selectResponse, useResponseStore } from '@/state/responseStore';
import { selectRequest, useRequestStore } from '@/state/requestStore';
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';

export function ResponseStatus() {
const requestId = useRequestStore((state) => selectRequest(state)?.id);
Expand All @@ -25,13 +26,19 @@ export function ResponseStatus() {
<span className="response-status text-nowrap ml-auto truncate">
<span className={'text-sm ' + statusColorClass}>{statusText}</span>
<span className="ml-2 text-sm">{durationText}</span>
<span className="ml-2 text-sm tooltip">
{sizeText}
<div className="tooltip-text flex flex-col items-start">
<span>Headers: {getSizeText(metaInfo.size.headersSizeInBytes)}</span>
<span>Body: {getSizeText(metaInfo.size.bodySizeInBytes)}</span>
</div>
</span>
<TooltipProvider>
<Tooltip delayDuration={750}>
<TooltipTrigger asChild>
<span className="ml-2 text-sm">{sizeText}</span>
</TooltipTrigger>
<TooltipContent>
<div className="flex flex-col items-start">
<span>Headers: {getSizeText(metaInfo.size.headersSizeInBytes)}</span>
<span>Body: {getSizeText(metaInfo.size.bodySizeInBytes)}</span>
</div>
</TooltipContent>
</Tooltip>
</TooltipProvider>
</span>
);
}
15 changes: 11 additions & 4 deletions src/renderer/components/sidebar/SidebarRequestList/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { useRequestActions, useRequestStore } from '@/state/requestStore';
import { handleMouseEvent } from '@/util/callback-util';
import './index.css';
import { RequestContextMenu } from '@/components/sidebar/SidebarRequestList/ContextMenu/RequestContextMenu';
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';

export const SidebarRequestList = () => {
const { setSelectedRequest } = useRequestActions();
Expand Down Expand Up @@ -52,10 +53,16 @@ export const SidebarRequestList = () => {
<div className={joinClassNames('font-bold', httpMethodColor(request.method))}>
{request.method}
</div>
<div className="truncate tooltip flex-1">
{request.url}
<div className="tooltip-text">{request.url}</div>
</div>
<TooltipProvider>
<Tooltip delayDuration={750}>
<TooltipTrigger asChild>
<div className="truncate flex-1">{request.url}</div>
</TooltipTrigger>
<TooltipContent>
<p>{request.url}</p>
</TooltipContent>
</Tooltip>
</TooltipProvider>
<div className="items-center justify-center flex">
<RequestContextMenu index={index} />
</div>
Expand Down
19 changes: 0 additions & 19 deletions src/renderer/styles/global.css
Original file line number Diff line number Diff line change
Expand Up @@ -50,25 +50,6 @@
.response-status {
}

/* Tooltip */
.tooltip .tooltip-text {
font-size: small;
visibility: hidden;
background-color: black;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 0.25rem 0.5rem;

/* Position the tooltip */
position: fixed;
z-index: 1;
}

.tooltip:hover .tooltip-text {
visibility: visible;
}

body {
font-family: "Lato", sans-serif;
color: #EEEEEE;
Expand Down

0 comments on commit 4a9c957

Please sign in to comment.