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