From 389872d491a148a6cee277857d3645c1c6e28bbd Mon Sep 17 00:00:00 2001
From: shuaiplus <2327005759@qq.com>
Date: Sat, 28 Feb 2026 23:55:25 +0800
Subject: [PATCH] feat: enhance VaultPage and App layout with new UI components
and styles
---
public/index.html | 4 +-
webapp/src/App.tsx | 273 +++++++++++++++-------------
webapp/src/components/VaultPage.tsx | 32 +++-
webapp/src/styles.css | 191 ++++++++++++++-----
4 files changed, 325 insertions(+), 175 deletions(-)
diff --git a/public/index.html b/public/index.html
index 2fad72b..1331f6d 100644
--- a/public/index.html
+++ b/public/index.html
@@ -4,8 +4,8 @@
NodeWarden
-
-
+
+
diff --git a/webapp/src/App.tsx b/webapp/src/App.tsx
index f902340..126a6fa 100644
--- a/webapp/src/App.tsx
+++ b/webapp/src/App.tsx
@@ -1,7 +1,7 @@
import { useEffect, useMemo, useState } from 'preact/hooks';
import { Link, Route, Switch, useLocation } from 'wouter';
import { useQuery } from '@tanstack/react-query';
-import { Lock, LogOut } from 'lucide-preact';
+import { CircleHelp, LogOut, Plus, Settings as SettingsIcon, Shield, ShieldUser, Vault } from 'lucide-preact';
import AuthViews from '@/components/AuthViews';
import ConfirmDialog from '@/components/ConfirmDialog';
import ToastHost from '@/components/ToastHost';
@@ -291,6 +291,13 @@ export default function App() {
});
}
+ function handleQuickAdd() {
+ navigate('/vault');
+ window.setTimeout(() => {
+ window.dispatchEvent(new Event('nodewarden:add-item'));
+ }, 0);
+ }
+
const ciphersQuery = useQuery({
queryKey: ['ciphers', session?.accessToken],
queryFn: () => getCiphers(authedFetch),
@@ -638,129 +645,151 @@ export default function App() {
return (
<>
-
-
- NodeWarden
-