From 94eb966d65019da602762d8f5e963251c6768fb1 Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Sat, 1 Feb 2025 14:04:55 +0800 Subject: [PATCH] feat: add tooltip component and integrate it into ServerDetailOverview --- bun.lockb | Bin 201239 -> 202629 bytes package.json | 11 ++++---- src/components/ServerDetailOverview.tsx | 32 ++++++++++++++++-------- src/components/ui/tooltip.tsx | 27 ++++++++++++++++++++ 4 files changed, 54 insertions(+), 16 deletions(-) create mode 100644 src/components/ui/tooltip.tsx diff --git a/bun.lockb b/bun.lockb index 1afa12cfafe0507cbe35eb15a8c58e7f77b6a737..495ab1bf06dd6bd40a29a298c5e689490d75880d 100755 GIT binary patch delta 35522 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 delta 34799 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 JuvV3u{{;<}L*oDd diff --git a/package.json b/package.json index 3b17f66..95a75a8 100644 --- a/package.json +++ b/package.json @@ -25,8 +25,9 @@ "@radix-ui/react-separator": "^1.1.1", "@radix-ui/react-slot": "^1.1.1", "@radix-ui/react-switch": "^1.1.2", - "@tanstack/react-query": "^5.65.1", - "@tanstack/react-query-devtools": "^5.65.1", + "@radix-ui/react-tooltip": "^1.1.7", + "@tanstack/react-query": "^5.66.0", + "@tanstack/react-query-devtools": "^5.66.0", "@tanstack/react-table": "^8.20.6", "@trivago/prettier-plugin-sort-imports": "^5.2.2", "@types/d3-geo": "^3.1.0", @@ -46,15 +47,15 @@ "react": "^19.0.0", "react-dom": "^19.0.0", "react-i18next": "^15.4.0", - "react-router-dom": "^7.1.3", + "react-router-dom": "^7.1.5", "recharts": "^2.15.1", - "sonner": "^1.7.3", + "sonner": "^1.7.4", "tailwind-merge": "^2.6.0", "tailwindcss-animate": "^1.0.7" }, "devDependencies": { "@eslint/js": "^9.19.0", - "@types/node": "^22.12.0", + "@types/node": "^22.13.0", "@types/react": "^19.0.8", "@types/react-dom": "^19.0.3", "@vitejs/plugin-react-swc": "^3.7.2", diff --git a/src/components/ServerDetailOverview.tsx b/src/components/ServerDetailOverview.tsx index b1ccc85..8f3d536 100644 --- a/src/components/ServerDetailOverview.tsx +++ b/src/components/ServerDetailOverview.tsx @@ -14,6 +14,7 @@ import { useTranslation } from "react-i18next" import { useNavigate } from "react-router-dom" import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "./ui/accordion" +import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./ui/tooltip" export default function ServerDetailOverview({ server_id }: { server_id: string }) { const { t } = useTranslation() @@ -165,17 +166,26 @@ export default function ServerDetailOverview({ server_id }: { server_id: string ) : null} {country_code && ( - - -
-

{t("serverDetail.region")}

-
-
{countries.getName(country_code?.toUpperCase(), "en")}
- {country_code && } -
-
-
-
+ + + + + +
+

{t("serverDetail.region")}

+
+
{country_code?.toUpperCase()}
+ {country_code && } +
+
+
+
+
+ +

{countries.getName(country_code?.toUpperCase(), "en")}

+
+
+
)}
diff --git a/src/components/ui/tooltip.tsx b/src/components/ui/tooltip.tsx new file mode 100644 index 0000000..79c7188 --- /dev/null +++ b/src/components/ui/tooltip.tsx @@ -0,0 +1,27 @@ +import { cn } from "@/lib/utils" +import * as TooltipPrimitive from "@radix-ui/react-tooltip" +import * as React from "react" + +const TooltipProvider = TooltipPrimitive.Provider + +const Tooltip = TooltipPrimitive.Root + +const TooltipTrigger = TooltipPrimitive.Trigger + +const TooltipContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, sideOffset = 4, ...props }, ref) => ( + +)) +TooltipContent.displayName = TooltipPrimitive.Content.displayName + +export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }