"use client"; import { Badge } from "@kandev/ui/badge"; import { Button } from "@kandev/ui/button"; import { PluginStatusBadge } from "./plugin-status-badge"; import type { PluginRecord } from "@/lib/types/plugins"; type PluginRowProps = { plugin: PluginRecord; busy: boolean; onEnable: (plugin: PluginRecord) => void; onDisable: (plugin: PluginRecord) => void; onUninstall: (plugin: PluginRecord) => void; }; /** * One plugin's row. Div-based (not a ``) so it wraps/stacks naturally * on narrow viewports and inside the mobile settings sheet — no separate * mobile layout needed. */ export function PluginRow({ plugin, busy, onEnable, onDisable, onUninstall }: PluginRowProps) { const canEnable = plugin.status === "disabled" || plugin.status === "registered"; const canDisable = plugin.status === "active" || plugin.status === "error"; return (
{plugin.display_name} {plugin.signed === false && ( unsigned )}
{plugin.id} · v{plugin.version}
{plugin.description && (
{plugin.description}
)} {plugin.categories.length > 0 && (
{plugin.categories.map((category) => ( {category} ))}
)}
{canEnable && ( )} {canDisable && ( )}
); }