add coloring of inline buttons

This commit is contained in:
2026-03-12 16:31:29 +06:00
parent 18180e67f6
commit 028f1f48e8
7 changed files with 36 additions and 12 deletions

View File

@@ -33,6 +33,7 @@ import dev.inmo.tgbotapi.extensions.utils.extensions.sameMessage
import dev.inmo.tgbotapi.extensions.utils.types.buttons.dataButton
import dev.inmo.tgbotapi.extensions.utils.types.buttons.flatInlineKeyboard
import dev.inmo.tgbotapi.types.MilliSeconds
import dev.inmo.tgbotapi.types.buttons.KeyboardButtonStyle
import dev.inmo.tgbotapi.utils.bold
import kotlinx.coroutines.*
import kotlinx.coroutines.flow.filter
@@ -148,7 +149,7 @@ object Plugin : Plugin {
message,
text = "Are you sure want to trigger posts garbage collecting?",
replyMarkup = flatInlineKeyboard {
dataButton("Sure", yesData)
dataButton("Sure", yesData, style = KeyboardButtonStyle.Primary)
dataButton("No", noData)
}
)

View File

@@ -1,7 +1,9 @@
package dev.inmo.plaguposter.posts.panel
import com.benasher44.uuid.uuid4
import dev.inmo.micro_utils.coroutines.runCatchingLogging
import dev.inmo.micro_utils.coroutines.runCatchingSafely
import dev.inmo.micro_utils.coroutines.subscribeLoggingDropExceptions
import dev.inmo.micro_utils.coroutines.subscribeSafelyWithoutExceptions
import dev.inmo.micro_utils.koin.getAllDistinct
import dev.inmo.micro_utils.repos.*
@@ -32,6 +34,7 @@ import dev.inmo.tgbotapi.types.MessageId
import dev.inmo.tgbotapi.types.ReplyParameters
import dev.inmo.tgbotapi.types.buttons.InlineKeyboardButtons.CallbackDataInlineKeyboardButton
import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup
import dev.inmo.tgbotapi.types.buttons.KeyboardButtonStyle
import dev.inmo.tgbotapi.types.message.ParseMode
import dev.inmo.tgbotapi.utils.bold
import dev.inmo.tgbotapi.utils.buildEntities
@@ -69,7 +72,8 @@ object Plugin : Plugin {
PanelButtonBuilder {
CallbackDataInlineKeyboardButton(
text,
"refresh ${it.id.string}"
"refresh ${it.id.string}",
style = KeyboardButtonStyle.Primary
)
}
}
@@ -97,7 +101,7 @@ object Plugin : Plugin {
basePostsMessages
}
postsRepo.newObjectsFlow.subscribeSafelyWithoutExceptions(this) {
postsRepo.newObjectsFlow.subscribeLoggingDropExceptions(this) {
val firstContent = it.content.first()
val buttons = api.buttonsBuilders.chunked(config.buttonsPerRow).mapNotNull { row ->
row.mapNotNull { builder ->
@@ -162,7 +166,7 @@ object Plugin : Plugin {
edit(
query.message,
replyMarkup = flatInlineKeyboard {
dataButton("\uD83D\uDDD1", approveData)
dataButton("\uD83D\uDDD1", approveData, style = KeyboardButtonStyle.Danger)
api.RootPanelButtonBuilder.buildButton(post) ?.let(::add)
}
)
@@ -184,7 +188,7 @@ object Plugin : Plugin {
val postId = query.data.removePrefix("refresh ").let(::PostId)
val (chatId, messageId) = postsMessages.get(postId) ?: return@onMessageDataCallbackQuery
runCatchingSafely {
runCatching {
refreshPostMessage(
postId,
chatId,