From a2d07bd67cea9ac4ccab893f168ef8887c3344bc Mon Sep 17 00:00:00 2001 From: anti Date: Thu, 9 Apr 2026 02:00:49 -0400 Subject: [PATCH] fix: refactor Bounty UI to match dashboard style and fix layout --- decnet_web/src/components/Bounty.tsx | 103 +++++++++++++++++---------- 1 file changed, 64 insertions(+), 39 deletions(-) diff --git a/decnet_web/src/components/Bounty.tsx b/decnet_web/src/components/Bounty.tsx index 23a3bd2..29c11c9 100644 --- a/decnet_web/src/components/Bounty.tsx +++ b/decnet_web/src/components/Bounty.tsx @@ -65,53 +65,72 @@ const Bounty: React.FC = () => { const totalPages = Math.ceil(total / limit); return ( -
-
-
- -

BOUNTY VAULT

+
+ {/* Page Header */} +
+
+ +

BOUNTY VAULT

- -
-
- - setType(e.target.value)} + style={{ background: 'transparent', border: 'none', color: 'inherit', fontSize: '0.8rem', outline: 'none' }} + >
-
- + + setSearchInput(e.target.value)} + style={{ background: 'transparent', border: 'none', padding: '4px', fontSize: '0.8rem', width: '200px' }} />
-
-
-
- {total} ARTIFACTS CAPTURED +
+
+
+ {total} ARTIFACTS CAPTURED
-
- - PAGE {page} OF {totalPages || 1} - + +
+ + Page {page} of {totalPages || 1} + +
+ + +
-
- +
+
@@ -123,35 +142,41 @@ const Bounty: React.FC = () => { - {bounties.map((b) => ( + {bounties.length > 0 ? bounties.map((b) => ( - + - ))} - {!loading && bounties.length === 0 && ( + )) : ( - )}
TIMESTAMP
{b.timestamp}{new Date(b.timestamp).toLocaleString()} {b.decky} {b.service} {b.attacker_ip} - + {b.bounty_type.toUpperCase()} -
+
{b.bounty_type === 'credential' ? ( - <> - user: {b.payload.username} - pass: {b.payload.password} - +
+ user:{b.payload.username} + pass:{b.payload.password} +
) : ( - JSON.stringify(b.payload) + {JSON.stringify(b.payload)} )}
- THE VAULT IS EMPTY + + {loading ? 'RETRIEVING ARTIFACTS...' : 'THE VAULT IS EMPTY'}