From 4cf990816817c009a512356373fdb1c4baa5e63b Mon Sep 17 00:00:00 2001 From: MohamedBassem Date: Sat, 6 Apr 2024 01:35:37 +0100 Subject: ui(web): Add a tooltip explaining what archived means --- apps/web/app/dashboard/archive/page.tsx | 10 +++++- apps/web/app/dashboard/tags/page.tsx | 34 ++++--------------- .../components/dashboard/bookmarks/EditorCard.tsx | 25 ++++---------- apps/web/components/ui/info-tooltip.tsx | 38 ++++++++++++++++++++++ 4 files changed, 60 insertions(+), 47 deletions(-) create mode 100644 apps/web/components/ui/info-tooltip.tsx diff --git a/apps/web/app/dashboard/archive/page.tsx b/apps/web/app/dashboard/archive/page.tsx index 3c3520cc..b2b4df4f 100644 --- a/apps/web/app/dashboard/archive/page.tsx +++ b/apps/web/app/dashboard/archive/page.tsx @@ -1,9 +1,17 @@ import Bookmarks from "@/components/dashboard/bookmarks/Bookmarks"; +import InfoTooltip from "@/components/ui/info-tooltip"; export default async function ArchivedBookmarkPage() { return ( 🗄️ Archive

} + header={ + +

🗄️ Archive

+ +

Archived bookmarks won't appear in the homepage

+
+
+ } query={{ archived: true }} showDivider={true} /> diff --git a/apps/web/app/dashboard/tags/page.tsx b/apps/web/app/dashboard/tags/page.tsx index 7afe691d..9f5038e7 100644 --- a/apps/web/app/dashboard/tags/page.tsx +++ b/apps/web/app/dashboard/tags/page.tsx @@ -1,13 +1,7 @@ import Link from "next/link"; +import InfoTooltip from "@/components/ui/info-tooltip"; import { Separator } from "@/components/ui/separator"; -import { - Tooltip, - TooltipContent, - TooltipProvider, - TooltipTrigger, -} from "@/components/ui/tooltip"; import { api } from "@/server/api/client"; -import { Info } from "lucide-react"; function TagPill({ name, count }: { name: string; count: number }) { return ( @@ -48,16 +42,9 @@ export default async function TagsPage() {

Your Tags

- - - - - - -

Tags that were attached at least once by you

-
-
-
+ +

Tags that were attached at least once by you

+
{tagsToPill(humanTags)}
@@ -65,16 +52,9 @@ export default async function TagsPage() {

AI Tags

- - - - - - -

Tags that were only attached automatically (by AI)

-
-
-
+ +

Tags that were only attached automatically (by AI)

+
{tagsToPill(aiTags)}
diff --git a/apps/web/components/dashboard/bookmarks/EditorCard.tsx b/apps/web/components/dashboard/bookmarks/EditorCard.tsx index 6858255a..b9e46a30 100644 --- a/apps/web/components/dashboard/bookmarks/EditorCard.tsx +++ b/apps/web/components/dashboard/bookmarks/EditorCard.tsx @@ -2,20 +2,14 @@ import type { SubmitErrorHandler, SubmitHandler } from "react-hook-form"; import { useEffect, useImperativeHandle, useRef } from "react"; import { ActionButton } from "@/components/ui/action-button"; import { Form, FormControl, FormItem } from "@/components/ui/form"; +import InfoTooltip from "@/components/ui/info-tooltip"; import { Separator } from "@/components/ui/separator"; import { Textarea } from "@/components/ui/textarea"; -import { - Tooltip, - TooltipContent, - TooltipProvider, - TooltipTrigger, -} from "@/components/ui/tooltip"; import { toast } from "@/components/ui/use-toast"; import { useClientConfig } from "@/lib/clientConfig"; import { api } from "@/lib/trpc"; import { cn } from "@/lib/utils"; import { zodResolver } from "@hookform/resolvers/zod"; -import { Info } from "lucide-react"; import { useForm } from "react-hook-form"; import { z } from "zod"; @@ -97,18 +91,11 @@ export default function EditorCard({ className }: { className?: string }) { >

NEW ITEM

- - - - - - -

- You can quickly focus on this field by pressing ⌘ + E -

-
-
-
+ +

+ You can quickly focus on this field by pressing ⌘ + E +

+
diff --git a/apps/web/components/ui/info-tooltip.tsx b/apps/web/components/ui/info-tooltip.tsx new file mode 100644 index 00000000..abaf8197 --- /dev/null +++ b/apps/web/components/ui/info-tooltip.tsx @@ -0,0 +1,38 @@ +import { + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, +} from "@/components/ui/tooltip"; +import { cn } from "@/lib/utils"; +import { HelpCircle, Info } from "lucide-react"; + +export default function InfoTooltip({ + className, + children, + size, + variant = "tip", +}: { + className?: string; + size?: number; + children?: React.ReactNode; + variant?: "tip" | "explain"; +}) { + return ( + + + + {variant === "tip" ? ( + + ) : ( + + )} + + {children} + + + ); +} -- cgit v1.2.3-70-g09d2