From 3531d1d5eae9504c7664b1527e25c68321d69e67 Mon Sep 17 00:00:00 2001 From: momo5502 Date: Tue, 29 Apr 2025 21:14:57 +0200 Subject: [PATCH] Add tooltips --- page/src/components/folder.tsx | 61 ++++++++++++++++++++++-------- page/src/components/ui/tooltip.tsx | 2 - 2 files changed, 46 insertions(+), 17 deletions(-) diff --git a/page/src/components/folder.tsx b/page/src/components/folder.tsx index 15d2080f..f3e19c01 100644 --- a/page/src/components/folder.tsx +++ b/page/src/components/folder.tsx @@ -2,6 +2,8 @@ import { FolderFill, FolderSymlinkFill, FileEarmark, + FiletypeExe, + FileEarmarkBinary, } from "react-bootstrap-icons"; import { ScrollArea } from "@/components/ui/scroll-area"; import { @@ -9,7 +11,15 @@ import { ContextMenuContent, ContextMenuItem, ContextMenuTrigger, + ContextMenuSeparator, + ContextMenuLabel, } from "@/components/ui/context-menu"; +import { + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, +} from "@/components/ui/tooltip"; export enum FolderElementType { Folder = 0, @@ -38,10 +48,15 @@ function elementComparator(e1: FolderElement, e2: FolderElement) { return e1.name.localeCompare(e2.name); } -function renderIcon(element: FolderElement) { - let className = "w-10 h-10"; +function getIcon(element: FolderElement, className: string = "") { switch (element.type) { case FolderElementType.File: + if (element.name.endsWith(".dll")) { + return ; + } + if (element.name.endsWith(".exe")) { + return ; + } return ; case FolderElementType.Folder: return element.name == ".." ? ( @@ -54,6 +69,11 @@ function renderIcon(element: FolderElement) { } } +function renderIcon(element: FolderElement) { + let className = "w-10 h-10"; + return getIcon(element, className); +} + function renderElement(element: FolderElement, clickHandler: ClickHandler) { return (
- {renderElement(element, clickHandler)} + + + {renderElement(element, clickHandler)} + + +

{element.name}

+
+
+ {element.name} + Rename Delete @@ -93,18 +122,20 @@ function renderElementWithContext( export function Folder(props: FolderProps) { return ( - - -
- {props.elements - .sort(elementComparator) - .map((e) => renderElementWithContext(e, props.clickHandler))} -
-
- - Create new folder - -
+ + + +
+ {props.elements + .sort(elementComparator) + .map((e) => renderElementWithContext(e, props.clickHandler))} +
+
+ + Create new folder + +
+
); } diff --git a/page/src/components/ui/tooltip.tsx b/page/src/components/ui/tooltip.tsx index bf4a342a..515ee323 100644 --- a/page/src/components/ui/tooltip.tsx +++ b/page/src/components/ui/tooltip.tsx @@ -1,5 +1,3 @@ -"use client"; - import * as React from "react"; import * as TooltipPrimitive from "@radix-ui/react-tooltip";