From 05ec3b2ba707ea63017eb6f73d06a4437afad0d4 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Sat, 26 Apr 2025 00:49:31 +0800 Subject: [PATCH] :sparkles: Delete publisher --- assets/i18n/en-US.json | 4 +++- lib/screens/auth/account/me/publishers.dart | 24 +++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/assets/i18n/en-US.json b/assets/i18n/en-US.json index c4fcf0c..8e2ee07 100644 --- a/assets/i18n/en-US.json +++ b/assets/i18n/en-US.json @@ -35,5 +35,7 @@ "syncPublisher": "Use Account Data", "create": "Create", "edit": "Edit", - "delete": "Delete" + "delete": "Delete", + "deletePublisher": "Delete Publisher {}", + "deletePublisherHint": "Are you sure to delete this publisher? This will also deleted all the post and collections under this publisher." } diff --git a/lib/screens/auth/account/me/publishers.dart b/lib/screens/auth/account/me/publishers.dart index 5cbddd7..94321de 100644 --- a/lib/screens/auth/account/me/publishers.dart +++ b/lib/screens/auth/account/me/publishers.dart @@ -78,6 +78,30 @@ class ManagedPublisherScreen extends HookConsumerWidget { children: [ IconButton( padding: EdgeInsets.zero, + visualDensity: VisualDensity.compact, + icon: Icon(LucideIcons.trash, size: 16), + onPressed: () { + showConfirmAlert( + 'deletePublisherHint'.tr(), + 'deletePublisher'.tr( + args: ['@${value[item].name}'], + ), + ).then((confirm) { + if (confirm) { + final client = ref.watch( + apiClientProvider, + ); + client.delete( + '/publishers/${value[item].name}', + ); + ref.invalidate(publishersManagedProvider); + } + }); + }, + ), + IconButton( + padding: EdgeInsets.zero, + visualDensity: VisualDensity.compact, icon: Icon(LucideIcons.edit, size: 16), onPressed: () { context.router