From 1c4781e620ea1b256f5098e8a36de0e7d74e1b03 Mon Sep 17 00:00:00 2001
From: Linus Rath <139418639+rathlinus@users.noreply.github.com>
Date: Tue, 3 Nov 2026 05:19:50 +0100
Subject: [PATCH] fix: give the update and manage buttons their own line in the
marketplace installed list on phones
---
app/(main)/admin/_pages/marketplace.tsx | 1 +
components/admin/list.tsx | 13 ++++++++++---
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/app/(main)/admin/_pages/marketplace.tsx b/app/(main)/admin/_pages/marketplace.tsx
index c70d65354..25385f963 100644
--- a/app/(main)/admin/_pages/marketplace.tsx
+++ b/app/(main)/admin/_pages/marketplace.tsx
@@ -594,6 +594,7 @@ function InstalledView({
href={fromMarketplace ? detailHref(entry.id) : undefined}
icon={entry.kind === 'plugin' ? : }
title={entry.name}
+ wideControl
titleExtra={(
<>
v{entry.version}
diff --git a/components/admin/list.tsx b/components/admin/list.tsx
index ad3269c1d..d988f7dbd 100644
--- a/components/admin/list.tsx
+++ b/components/admin/list.tsx
@@ -31,17 +31,20 @@ interface AdminListRowProps {
meta?: ReactNode;
/** Controls on the end side; they sit above the row link. */
control?: ReactNode;
+ /** The control is wider than a switch: on a phone it gets its own line under the text. */
+ wideControl?: boolean;
className?: string;
'data-testid'?: string;
}
-export function AdminListRow({ href, icon, title, titleExtra, description, meta, control, className, ...rest }: AdminListRowProps) {
+export function AdminListRow({ href, icon, title, titleExtra, description, meta, control, wideControl, className, ...rest }: AdminListRowProps) {
return (
@@ -50,7 +53,7 @@ export function AdminListRow({ href, icon, title, titleExtra, description, meta,
{icon}
)}
-
+
{href ? (
{description}}
{meta && {meta}
}
- {control &&
{control}
}
+ {control && (
+
+ {control}
+
+ )}
{href &&
}
);