diff --git a/frontend/src/components/command-menu.tsx b/frontend/src/components/command-menu.tsx index bd3945848..e23933a83 100644 --- a/frontend/src/components/command-menu.tsx +++ b/frontend/src/components/command-menu.tsx @@ -139,34 +139,54 @@ export default function CommandMenu() { {isLoading ? "Loading..." : "No scripts found."} - {links.map(category => ( - - {category.scripts.map(script => ( - { - setOpen(false); - router.push(`/scripts?id=${script.slug}`); - }} - > -
setOpen(false)}> - ((e.currentTarget as HTMLImageElement).src = `/${basePath}/logo.png`)} - unoptimized - width={16} - height={16} - alt="" - className="h-5 w-5" - /> - {script.name} - {formattedBadge(script.type)} -
-
- ))} -
- ))} + {(() => { + // Track seen scripts globally to avoid duplicates across all categories + const globalSeenScripts = new Set(); + + return links.map((category) => { + const uniqueScripts = category.scripts.filter((script) => { + if (globalSeenScripts.has(script.slug)) { + return false; + } + globalSeenScripts.add(script.slug); + return true; + }); + + // Only render category if it has unique scripts + if (uniqueScripts.length === 0) { + return null; + } + + return ( + + {uniqueScripts.map(script => ( + { + setOpen(false); + router.push(`/scripts?id=${script.slug}`); + }} + > +
setOpen(false)}> + ((e.currentTarget as HTMLImageElement).src = `/${basePath}/logo.png`)} + unoptimized + width={16} + height={16} + alt="" + className="h-5 w-5" + /> + {script.name} + {formattedBadge(script.type)} +
+
+ ))} +
+ ); + }); + })()}