From b579aa1c88994807d2d1552b90cba79ac68acd46 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Fri, 29 May 2026 12:10:27 -0400 Subject: [PATCH] feat(trash): TrashView page, nav links, and g+x shortcut --- frontend/src/App.vue | 7 +++ frontend/src/components/AppHeader.vue | 8 ++- frontend/src/router/index.ts | 5 ++ frontend/src/views/TrashView.vue | 88 +++++++++++++++++++++++++++ 4 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 frontend/src/views/TrashView.vue diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 5a908a5..1aac6f0 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -82,6 +82,7 @@ function onGlobalKeydown(e: KeyboardEvent) { case "r": router.push("/rules"); break; case "g": router.push("/graph"); break; case "l": router.push("/calendar"); break; + case "x": router.push("/trash"); break; } return; } @@ -195,6 +196,12 @@ onUnmounted(() => { l Calendar +
+ g + + + x + Trash +
Esc Unfocus field → go home diff --git a/frontend/src/components/AppHeader.vue b/frontend/src/components/AppHeader.vue index 95dc35b..5de4c6a 100644 --- a/frontend/src/components/AppHeader.vue +++ b/frontend/src/components/AppHeader.vue @@ -6,7 +6,7 @@ import { useShortcuts } from "@/composables/useShortcuts"; import { useAuthStore } from "@/stores/auth"; import AppLogo from "@/components/AppLogo.vue"; import NotificationBell from "@/components/NotificationBell.vue"; -import { Sun, Moon, Settings } from "lucide-vue-next"; +import { Sun, Moon, Settings, Trash2 } from "lucide-vue-next"; const { theme, toggleTheme } = useTheme(); const { toggleShortcuts } = useShortcuts(); @@ -63,6 +63,11 @@ router.afterEach(() => { + + + + + @@ -91,6 +96,7 @@ router.afterEach(() => { Rulebooks Shared
+ Trash Settings
diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts index a4eb030..6df4f04 100644 --- a/frontend/src/router/index.ts +++ b/frontend/src/router/index.ts @@ -113,6 +113,11 @@ const router = createRouter({ name: "settings", component: () => import("@/views/SettingsView.vue"), }, + { + path: "/trash", + name: "trash", + component: () => import("@/views/TrashView.vue"), + }, { path: "/admin/users", redirect: "/settings" }, { path: "/admin/logs", redirect: "/settings" }, ], diff --git a/frontend/src/views/TrashView.vue b/frontend/src/views/TrashView.vue new file mode 100644 index 0000000..2033d19 --- /dev/null +++ b/frontend/src/views/TrashView.vue @@ -0,0 +1,88 @@ + + + + +