From f6ac64aa0cdf07928a9f77230b9759295cacc266 Mon Sep 17 00:00:00 2001 From: Ben Allfree Date: Sat, 6 Dec 2025 22:02:04 -0800 Subject: [PATCH] feat: add plugin management features with new PluginCard and PluginsPage components, and introduce Plugin type definitions --- assets/custom-build.pxd | Bin 0 -> 199825 bytes components/BuildDownloadButton.tsx | 6 +- components/Navbar.tsx | 7 +- components/PluginCard.tsx | 304 +++++++++++++++++++++++++ components/PluginToggle.tsx | 96 -------- components/ProfileCard.tsx | 39 ---- components/ProfileEditor.tsx | 168 -------------- constants/targets.ts | 2 +- lib/utils.ts | 44 +++- pages/+Head.tsx | 12 +- pages/admin/+Page.tsx | 6 +- pages/builds/@buildHash/+Page.tsx | 10 +- pages/builds/new/Builder.tsx | 354 +++++++++++++++++++++++++---- pages/docs/+Layout.tsx | 2 +- pages/index/+Page.tsx | 66 +++++- pages/plugins/+Page.tsx | 52 +++++ public/custom-build.webp | Bin 0 -> 21124 bytes public/registry.json | 2 + types.ts | 17 ++ vendor/api | 2 +- vendor/firmware | 2 +- vendor/lobbs | 2 +- vendor/lodb | 2 +- vendor/mpm | 2 +- 24 files changed, 809 insertions(+), 388 deletions(-) create mode 100644 assets/custom-build.pxd create mode 100644 components/PluginCard.tsx delete mode 100644 components/PluginToggle.tsx delete mode 100644 components/ProfileCard.tsx delete mode 100644 components/ProfileEditor.tsx create mode 100644 pages/plugins/+Page.tsx create mode 100644 public/custom-build.webp create mode 100644 types.ts diff --git a/assets/custom-build.pxd b/assets/custom-build.pxd new file mode 100644 index 0000000000000000000000000000000000000000..bc57d0af68f7fb79c85b41508595868fb8ebd554 GIT binary patch literal 199825 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 literal 0 HcmV?d00001 diff --git a/components/BuildDownloadButton.tsx b/components/BuildDownloadButton.tsx index 31a287f..babd8d7 100644 --- a/components/BuildDownloadButton.tsx +++ b/components/BuildDownloadButton.tsx @@ -1,11 +1,11 @@ import { SourceAvailable } from "@/components/SourceAvailable" import { Button } from "@/components/ui/button" +import { api } from "@/convex/_generated/api" +import type { Doc } from "@/convex/_generated/dataModel" +import { ArtifactType } from "@/convex/builds" import { useMutation } from "convex/react" import { useState } from "react" import { toast } from "sonner" -import { api } from "../convex/_generated/api" -import type { Doc } from "../convex/_generated/dataModel" -import { ArtifactType } from "../convex/builds" interface BuildDownloadButtonProps { build: Doc<"builds"> diff --git a/components/Navbar.tsx b/components/Navbar.tsx index 3a6511b..e6a2db4 100644 --- a/components/Navbar.tsx +++ b/components/Navbar.tsx @@ -1,10 +1,10 @@ +import favicon from "@/assets/favicon-96x96.png" import { DiscordButton } from "@/components/DiscordButton" import { RedditButton } from "@/components/RedditButton" import { Button } from "@/components/ui/button" +import { api } from "@/convex/_generated/api" import { useAuthActions } from "@convex-dev/auth/react" import { Authenticated, Unauthenticated, useQuery } from "convex/react" -import favicon from "../assets/favicon-96x96.png" -import { api } from "../convex/_generated/api" export default function Navbar() { const { signOut, signIn } = useAuthActions() @@ -25,6 +25,9 @@ export default function Navbar() { Docs + + Plugins + {isAdmin && ( diff --git a/components/PluginCard.tsx b/components/PluginCard.tsx new file mode 100644 index 0000000..622b4bc --- /dev/null +++ b/components/PluginCard.tsx @@ -0,0 +1,304 @@ +import { Switch } from "@/components/ui/switch" +import { Download, Star, Zap } from "lucide-react" +import { navigate } from "vike/client/router" + +function getGitHubStarsBadgeUrl(repoUrl?: string): string | null { + if (!repoUrl) return null + try { + const url = new URL(repoUrl) + if (url.hostname === "github.com" || url.hostname === "www.github.com") { + const pathParts = url.pathname.split("/").filter(Boolean) + if (pathParts.length >= 2) { + const owner = pathParts[0] + const repo = pathParts[1] + return `https://img.shields.io/github/stars/${owner}/${repo}?style=flat&logo=github&logoColor=white&labelColor=rgb(0,0,0,0)&color=rgb(30,30,30)&label=★` + } + } + } catch { + // Invalid URL, return null + } + return null +} + +interface PluginCardBaseProps { + id: string + name: string + description: string + imageUrl?: string + featured?: boolean + repo?: string + homepage?: string + version?: string + downloads?: number + stars?: number + flashCount?: number + incompatibleReason?: string + prominent?: boolean +} + +interface PluginCardToggleProps extends PluginCardBaseProps { + variant: "toggle" + isEnabled: boolean + onToggle: (enabled: boolean) => void + disabled?: boolean + enabledLabel?: string +} + +interface PluginCardLinkProps extends PluginCardBaseProps { + variant: "link" + href?: string +} + +interface PluginCardLinkToggleProps extends PluginCardBaseProps { + variant: "link-toggle" + isEnabled: boolean + onToggle: (enabled: boolean) => void + disabled?: boolean + enabledLabel?: string +} + +type PluginCardProps = PluginCardToggleProps | PluginCardLinkProps | PluginCardLinkToggleProps + +export function PluginCard(props: PluginCardProps) { + const { + id, + name, + description, + imageUrl, + featured = false, + repo, + homepage, + version, + downloads, + stars, + flashCount, + incompatibleReason, + prominent = false, + } = props + + const starsBadgeUrl = getGitHubStarsBadgeUrl(repo) + const isIncompatible = !!incompatibleReason + const isToggle = props.variant === "toggle" + const isLink = props.variant === "link" + const isLinkToggle = props.variant === "link-toggle" + + const cardContent = ( + <> + {isToggle ? ( + <> + {/* Toggle layout: horizontal with switch on right */} +
+
+
+

{name}

+ {featured && } +
+

+ {description} +

+ {isIncompatible && incompatibleReason && ( +

{incompatibleReason}

+ )} +
+
+ +
+
+ {/* Metadata in bottom right for toggle */} +
+ {version && v{version}} + {flashCount !== undefined && ( +
+ + + + {flashCount} +
+ )} +
+ + ) : ( + <> + {/* Link/link-toggle layout: vertical with image */} +
+ {imageUrl && ( + {`${name} + )} +
+
+

+ {name} +

+ {featured && + (isLinkToggle ? ( + + ) : ( + + Featured + + ))} +
+

+ {description} +

+ {isIncompatible && incompatibleReason && ( +

{incompatibleReason}

+ )} +
+
+ + {/* Metadata row */} +
+ {/* Build Now button - absolutely positioned in lower right */} + {isLink && ( +
+ +
+ )} + {/* Toggle switch - absolutely positioned in lower right */} + {isLinkToggle && ( +
+
+ +
+
+ )} + + )} + + ) + + const baseClassName = `relative flex ${isToggle ? "items-start gap-4" : "flex-col gap-3"} p-4 rounded-lg border-2 transition-colors h-full ${ + isIncompatible + ? "border-slate-800 bg-slate-900/30 opacity-60 cursor-not-allowed" + : prominent + ? "border-cyan-400 bg-gradient-to-br from-cyan-500/30 via-cyan-600/20 to-blue-600/30 hover:from-cyan-500/40 hover:via-cyan-600/30 hover:to-blue-600/40 hover:border-cyan-300 shadow-xl shadow-cyan-500/30" + : "border-slate-700 bg-slate-900/50 hover:border-slate-600" + } ${isLink ? "group" : ""}` + + if (isLink) { + const href = props.href || `/builds/new?plugin=${id}` + return ( + + {cardContent} + + ) + } + + return
{cardContent}
+} + +// Export convenience wrappers for backward compatibility +export function PluginToggle(props: Omit) { + return +} diff --git a/components/PluginToggle.tsx b/components/PluginToggle.tsx deleted file mode 100644 index 8127dbb..0000000 --- a/components/PluginToggle.tsx +++ /dev/null @@ -1,96 +0,0 @@ -import { Switch } from "@/components/ui/switch" -import { ExternalLink, Star } from "lucide-react" - -interface PluginToggleProps { - id: string - name: string - description: string - isEnabled: boolean - onToggle: (enabled: boolean) => void - featured?: boolean - flashCount?: number - homepage?: string - version?: string - disabled?: boolean - enabledLabel?: string - incompatibleReason?: string -} - -export function PluginToggle({ - name, - description, - isEnabled, - onToggle, - featured = false, - flashCount = 0, - homepage, - version, - disabled = false, - enabledLabel = "Add", - incompatibleReason, -}: PluginToggleProps) { - const isIncompatible = !!incompatibleReason - - return ( -
- {/* Flash count and homepage links in lower right */} -
- {version && v{version}} -
- - - - {flashCount} -
- {homepage && ( - e.stopPropagation()} - > - - - )} -
-
-
-

{name}

- {featured && } -
-

- {description} -

- {isIncompatible && incompatibleReason && ( -

{incompatibleReason}

- )} -
-
- -
-
- ) -} diff --git a/components/ProfileCard.tsx b/components/ProfileCard.tsx deleted file mode 100644 index 9b7cb6e..0000000 --- a/components/ProfileCard.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import type { Doc } from "../convex/_generated/dataModel" - -export const profileCardClasses = "border border-slate-800 rounded-lg p-6 bg-slate-900/50 flex flex-col gap-4" - -interface ProfilePillsProps { - version: string - flashCount?: number - flashLabel?: string -} - -export function ProfileStatisticPills({ version, flashCount, flashLabel }: ProfilePillsProps) { - const normalizedCount = flashCount ?? 0 - const normalizedLabel = flashLabel ?? (normalizedCount === 1 ? "flash" : "flashes") - return ( -
- {version} - - {normalizedCount} {normalizedLabel} - -
- ) -} - -interface ProfileCardContentProps { - profile: Doc<"profiles"> -} - -export function ProfileCardContent({ profile }: ProfileCardContentProps) { - const flashCount = profile.flashCount ?? 0 - return ( - <> -
-

{profile.name}

-

{profile.description}

-
- - - ) -} diff --git a/components/ProfileEditor.tsx b/components/ProfileEditor.tsx deleted file mode 100644 index b134a59..0000000 --- a/components/ProfileEditor.tsx +++ /dev/null @@ -1,168 +0,0 @@ -import { Button } from "@/components/ui/button" -import { Checkbox } from "@/components/ui/checkbox" -import { Input } from "@/components/ui/input" -import { useMutation } from "convex/react" -import { useForm } from "react-hook-form" -import { VERSIONS } from "../constants/versions" -import { api } from "../convex/_generated/api" -import type { Doc } from "../convex/_generated/dataModel" -import modulesData from "../convex/modules.json" -import { ModuleToggle } from "./ModuleToggle" - -// Form values use flattened config for UI, but will be transformed to nested on submit -type ProfileFormValues = Omit, "_id" | "_creationTime" | "userId" | "flashCount" | "updatedAt"> - -interface ProfileEditorProps { - initialData?: Doc<"profiles"> - onSave: () => void - onCancel: () => void -} - -export default function ProfileEditor({ initialData, onSave, onCancel }: ProfileEditorProps) { - const upsertProfile = useMutation(api.profiles.upsert) - - const { - register, - handleSubmit, - setValue, - watch, - formState: { errors }, - } = useForm({ - defaultValues: { - name: initialData?.name || "", - description: initialData?.description || "", - config: { - version: VERSIONS[0], - modulesExcluded: {}, - target: "", - ...initialData?.config, - }, - isPublic: initialData?.isPublic ?? true, - }, - }) - - const onSubmit = async (data: ProfileFormValues) => { - await upsertProfile({ - id: initialData?._id, - name: data.name, - description: data.description, - config: data.config, - isPublic: data.isPublic, - }) - onSave() - } - - return ( -
-
-
- - - {errors.name &&

{errors.name.message}

} -
-
- - -
-
- -
- -