From baa5145ff1b95341681349d353eeddd281e2fd94 Mon Sep 17 00:00:00 2001 From: Danish Arora Date: Mon, 11 Nov 2024 16:05:14 +0700 Subject: [PATCH] chore: connection status --- examples/buddybook/src/App.tsx | 4 ++ .../src/components/ConnectionStatus.tsx | 53 +++++++++++++++++++ .../buddybook/src/components/ui/dialog.tsx | 12 +++-- 3 files changed, 65 insertions(+), 4 deletions(-) create mode 100644 examples/buddybook/src/components/ConnectionStatus.tsx diff --git a/examples/buddybook/src/App.tsx b/examples/buddybook/src/App.tsx index 34f8f5d..30b0c29 100644 --- a/examples/buddybook/src/App.tsx +++ b/examples/buddybook/src/App.tsx @@ -12,6 +12,7 @@ import { BlockPayload, getMessagesFromStore, subscribeToFilter } from './lib/wak import TelemetryOptIn from './components/TelemetryOptIn'; import TelemetryPage from './components/TelemetryPage'; import SignSharedChain from './components/Chain/SignSharedChain' +import ConnectionStatus from '@/components/ConnectionStatus'; type Status = 'success' | 'in-progress' | 'error'; @@ -132,6 +133,9 @@ function App() { return (
+
+ +
} /> diff --git a/examples/buddybook/src/components/ConnectionStatus.tsx b/examples/buddybook/src/components/ConnectionStatus.tsx new file mode 100644 index 0000000..dd1ab32 --- /dev/null +++ b/examples/buddybook/src/components/ConnectionStatus.tsx @@ -0,0 +1,53 @@ +import React from 'react'; +import { Card } from "@/components/ui/card"; +import { Loader2, CheckCircle2, XCircle } from "lucide-react"; +import type { Status } from '@/App'; + +interface ConnectionStatusProps { + filter: Status; + store: Status; +} + +const StatusIndicator: React.FC<{ status: Status; label: string }> = ({ status, label }) => { + const getStatusIcon = () => { + switch (status) { + case 'success': + return ; + case 'error': + return ; + case 'in-progress': + return ; + } + }; + + const getStatusColor = () => { + switch (status) { + case 'success': + return 'bg-green-500/10 text-green-500'; + case 'error': + return 'bg-red-500/10 text-red-500'; + case 'in-progress': + return 'bg-yellow-500/10 text-yellow-500'; + } + }; + + return ( +
+ {getStatusIcon()} + {label} +
+ ); +}; + +const ConnectionStatus: React.FC = ({ filter, store }) => { + return ( + +
+ + +
+
+ ); +}; + +export default ConnectionStatus; \ No newline at end of file diff --git a/examples/buddybook/src/components/ui/dialog.tsx b/examples/buddybook/src/components/ui/dialog.tsx index f2ca1ce..0e36c68 100644 --- a/examples/buddybook/src/components/ui/dialog.tsx +++ b/examples/buddybook/src/components/ui/dialog.tsx @@ -1,6 +1,5 @@ import * as React from "react" import * as DialogPrimitive from "@radix-ui/react-dialog" -import { Cross2Icon } from "@radix-ui/react-icons" import { cn } from "@/lib/utils" @@ -36,9 +35,14 @@ const DialogContent = React.forwardRef<