From c19f26a7d9aca4ce447f62726fcd09c82d5fb101 Mon Sep 17 00:00:00 2001 From: nassery318 Date: Tue, 10 Mar 2026 14:15:27 -0400 Subject: [PATCH 1/3] added alert primitive and used it in components Signed-off-by: nassery318 --- .../src/components/key-browser/KeyBrowser.tsx | 6 +- .../key-browser/key-details/key-details.tsx | 11 +-- .../src/components/key-browser/key-types.tsx | 15 ++-- apps/frontend/src/components/ui/alert.tsx | 71 +++++++++++++++++++ .../src/components/ui/connection-modal.tsx | 18 ++--- .../src/components/ui/delete-modal.tsx | 5 +- .../src/components/ui/search-input.tsx | 3 +- 7 files changed, 102 insertions(+), 27 deletions(-) create mode 100644 apps/frontend/src/components/ui/alert.tsx diff --git a/apps/frontend/src/components/key-browser/KeyBrowser.tsx b/apps/frontend/src/components/key-browser/KeyBrowser.tsx index f0c3552e..aff30bf3 100644 --- a/apps/frontend/src/components/key-browser/KeyBrowser.tsx +++ b/apps/frontend/src/components/key-browser/KeyBrowser.tsx @@ -155,7 +155,7 @@ export function KeyBrowser() { className="flex-1" label="Total Keys" tooltip={ - + } value={totalKeys} /> @@ -163,7 +163,7 @@ export function KeyBrowser() { className="flex-1" label="Memory Usage" tooltip={ - + } value={formatBytes(totalMemoryUsage)} /> @@ -206,7 +206,7 @@ export function KeyBrowser() { disabled={loading} onChange={(e) => setSearchPattern(e.target.value)} onClear={handleClearSearch} - placeholder="Search keys (use * to search patterns like user:*)" + placeholder="Search keys (use * to search patterns like user:* and press Enter)" value={searchPattern} /> diff --git a/apps/frontend/src/components/key-browser/key-details/key-details.tsx b/apps/frontend/src/components/key-browser/key-details/key-details.tsx index 0df3c51b..7cbbbad6 100644 --- a/apps/frontend/src/components/key-browser/key-details/key-details.tsx +++ b/apps/frontend/src/components/key-browser/key-details/key-details.tsx @@ -1,4 +1,4 @@ -import { Key, Trash, X } from "lucide-react" +import { Key, Trash, TriangleAlert, X } from "lucide-react" import { useState } from "react" import { convertTTL } from "@common/src/ttl-conversion" import { formatBytes } from "@common/src/bytes-conversion" @@ -17,6 +17,7 @@ import { useAppDispatch } from "@/hooks/hooks" import { deleteKeyRequested } from "@/state/valkey-features/keys/keyBrowserSlice" import { CustomTooltip } from "@/components/ui/tooltip" import { Typography } from "@/components/ui/typography" +import { Alert, AlertDescription } from "@/components/ui/alert" interface BaseKeyInfo { name: string; @@ -157,9 +158,11 @@ export default function KeyDetails({ selectedKey, selectedKeyInfo, connectionId, {selectedKeyInfo.elementsWarning ? ( -
- {selectedKeyInfo.elementsWarning} -
+ + + {selectedKeyInfo.elementsWarning} + + ) : ( <> {/* show different key types */} diff --git a/apps/frontend/src/components/key-browser/key-types.tsx b/apps/frontend/src/components/key-browser/key-types.tsx index 90c400e9..e2f0dc0a 100644 --- a/apps/frontend/src/components/key-browser/key-types.tsx +++ b/apps/frontend/src/components/key-browser/key-types.tsx @@ -1,4 +1,5 @@ import { Trash, Check, TriangleAlert } from "lucide-react" +import { Alert, AlertDescription } from "../ui/alert" import { Button } from "../ui/button" import { Input } from "../ui/input" import { Label } from "../ui/label" @@ -310,18 +311,14 @@ export function JsonFields({ value, setValue, jsonModuleAvailable = false }: Jso {/* JSON Module Indicator */} -
- {jsonModuleAvailable ? : } - + + {jsonModuleAvailable ? : } + {jsonModuleAvailable ? "JSON module is available" : "JSON module is not loaded on this Valkey instance"} - -
+ +