complete adding of panel plugin

This commit is contained in:
2022-09-15 02:15:35 +06:00
parent 849df78238
commit 2a883c25ca
6 changed files with 142 additions and 17 deletions

View File

@@ -1,6 +1,8 @@
package dev.inmo.plaguposter.posts.panel
import dev.inmo.plaguposter.posts.models.PostId
import dev.inmo.tgbotapi.types.buttons.InlineKeyboardButtons.CallbackDataInlineKeyboardButton
import kotlinx.coroutines.flow.MutableSharedFlow
class PanelButtonsAPI(
private val preset: List<PanelButtonBuilder>,
@@ -11,6 +13,7 @@ class PanelButtonsAPI(
}
internal val buttonsBuilders: List<PanelButtonBuilder>
get() = _buttons.toList()
internal val forceRefreshFlow = MutableSharedFlow<PostId>()
val RootPanelButtonBuilder = PanelButtonBuilder {
CallbackDataInlineKeyboardButton(
@@ -21,6 +24,9 @@ class PanelButtonsAPI(
fun add(button: PanelButtonBuilder) = _buttons.add(button)
fun remove(button: PanelButtonBuilder) = _buttons.remove(button)
suspend fun forceRefresh(postId: PostId) {
forceRefreshFlow.emit(postId)
}
companion object {
internal const val openGlobalMenuData = "force_refresh_panel"