From 841cbfe0c6394692cee1309bf9a2aa0ef6ed0c1d Mon Sep 17 00:00:00 2001 From: Adrian Bonpin Date: Mon, 29 Jun 2026 00:01:57 +0800 Subject: [PATCH] feat(game page): add dismissible plugin CTA banner above Performance Entries Promotes the DeckyVault Decky plugin to Steam Deck owners browsing game pages. Soft primary-tinted card with Gamepad2 icon, value-prop copy, and 'Get the plugin' CTA linking to /plugin. Dismissible via localStorage (dv-plugin-cta-dismissed) so it stays gone across all games once closed. Controller-navigable (data-gamepad-focusable), responsive layout. --- apps/web/app/game/[id]/game-page-client.tsx | 51 +++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/apps/web/app/game/[id]/game-page-client.tsx b/apps/web/app/game/[id]/game-page-client.tsx index 82d63e2..941df4a 100644 --- a/apps/web/app/game/[id]/game-page-client.tsx +++ b/apps/web/app/game/[id]/game-page-client.tsx @@ -18,6 +18,7 @@ import { GaugeIcon, ChevronDownIcon, PencilIcon, + X as XIcon, } from "lucide-react" import Link from "next/link" import { useSession } from "@/lib/auth-client" @@ -641,6 +642,23 @@ export function GamePageClient({ ) const presetsRef = useRef(null) + // DeckyVault plugin CTA dismissal (persisted across games in localStorage) + const [showPluginCta, setShowPluginCta] = useState(false) + useEffect(() => { + if (typeof window === "undefined") return + if (localStorage.getItem("dv-plugin-cta-dismissed") !== "1") { + setShowPluginCta(true) + } + }, []) + const dismissPluginCta = () => { + setShowPluginCta(false) + try { + localStorage.setItem("dv-plugin-cta-dismissed", "1") + } catch { + // ignore + } + } + // On mount, auto-open preset from URL useEffect(() => { const presetId = searchParams.get("preset") @@ -1425,6 +1443,39 @@ export function GamePageClient({ className='px-4 md:px-[10svw]' >
+ {showPluginCta && ( +
+
+
+ +
+
+

+ Have a Steam Deck? Record benchmarks automatically with the DeckyVault Decky plugin — one tap, no manual screenshots. +

+
+
+
+ + Get the plugin + + + +
+
+ )}

Performance Entries