From 47f63baa8a9491ca1f8cdcd89712855e2ced1fdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20My=C5=9Bli=C5=84ski?= Date: Sat, 28 Feb 2026 07:15:52 +0100 Subject: [PATCH] nicolium: show admin status delete action only on supported backends --- .../components/statuses/status-action-bar.tsx | 2 +- packages/pl-api/lib/client/admin.ts | 22 +++++++------------ packages/pl-api/lib/features.ts | 7 ++++++ 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/packages/nicolium/src/components/statuses/status-action-bar.tsx b/packages/nicolium/src/components/statuses/status-action-bar.tsx index eb9b9f05b..4565b738f 100644 --- a/packages/nicolium/src/components/statuses/status-action-bar.tsx +++ b/packages/nicolium/src/components/statuses/status-action-bar.tsx @@ -1292,7 +1292,7 @@ const MenuButton: React.FC = ({ }); } - if (!ownAccount) { + if (!ownAccount && features.adminDeleteStatus) { menu.push({ text: intl.formatMessage(messages.deleteStatus), action: handleDeleteStatus, diff --git a/packages/pl-api/lib/client/admin.ts b/packages/pl-api/lib/client/admin.ts index 88eb917b4..bf3d8edaf 100644 --- a/packages/pl-api/lib/client/admin.ts +++ b/packages/pl-api/lib/client/admin.ts @@ -805,24 +805,18 @@ const admin = (client: PlApiBaseClient) => { /** * Delete an individual reported status * - * Requires features{@link Features.pleromaAdminStatuses}. + * Requires features{@link Features.adminDeleteStatus}. * @see {@link https://docs.pleroma.social/backend/development/API/admin_api/#delete-apiv1pleromaadminstatusesid} */ deleteStatus: async (statusId: string) => { - let response; - - if (client.features.version.software === MITRA) { - response = await client.request(`/api/v1/admin/posts/${statusId}`, { + const response = await client.request( + client.features.version.software === MITRA + ? `/api/v1/admin/posts/${statusId}` + : `/api/v1/pleroma/admin/statuses/${statusId}`, + { method: 'DELETE', - }); - } else { - response = await client.request( - `/api/v1/pleroma/admin/statuses/${statusId}`, - { - method: 'DELETE', - }, - ); - } + }, + ); return response.json; }, diff --git a/packages/pl-api/lib/features.ts b/packages/pl-api/lib/features.ts index 83c5390e5..be5bc534f 100644 --- a/packages/pl-api/lib/features.ts +++ b/packages/pl-api/lib/features.ts @@ -340,6 +340,13 @@ const getFeatures = (instance: Instance) => { */ adminCustomEmojis: v.software === GOTOSOCIAL, + /** + * Ability to delete statuses by admins. + * @see DELETE /api/v1/pleroma/admin/statuses/:id + * @see DELETE /api/v1/admin/posts/:id + */ + adminDeleteStatus: any([v.software === AKKOMA, v.software === MITRA, v.software === PLEROMA]), + /** * Ability to manage instance rules by admins. * @see GET /api/v1/pleroma/admin/rules