From bd23d3fbdba575378ed710e53f633c3e619fc32f Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Tue, 3 May 2022 23:12:03 +0600 Subject: [PATCH] hotfixes --- CHANGELOG.md | 3 +++ .../behaviour_builder/BehaviourContextWithFSM.kt | 4 +++- .../BehaviourWithFSMStateHandlerHolder.kt | 13 ++----------- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fe13a60008..3e046ea721 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## 0.38.20 +* `BehaviourBuilder FSM`: + * Hotfixes + ## 0.38.19 * `BehaviourBuilder`: diff --git a/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContextWithFSM.kt b/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContextWithFSM.kt index 6212a4134a..2bb6b3ea89 100644 --- a/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContextWithFSM.kt +++ b/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContextWithFSM.kt @@ -28,7 +28,9 @@ interface BehaviourContextWithFSM : BehaviourContext, StatesMachine> ): T? { return handlers.firstOrNull { it.checkHandleable(state) } ?.run { - handleState(contextUpdatesFlow, state) + doInSubContext(updatesUpstreamFlow = contextUpdatesFlow) { + handleState(state) + } } } diff --git a/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourWithFSMStateHandlerHolder.kt b/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourWithFSMStateHandlerHolder.kt index 788c1cf3c1..fa3bdbd0e2 100644 --- a/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourWithFSMStateHandlerHolder.kt +++ b/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourWithFSMStateHandlerHolder.kt @@ -34,20 +34,11 @@ class BehaviourWithFSMStateHandlerHolder( /** * Handling of state :) - * - * @param contextUpdatesFlow This [Flow] will be used as source of updates. By contract, this [Flow] must be common - * for all [State]s of incoming [state] [State.context] and for the whole chain inside of [BehaviourContextWithFSM] */ suspend fun BehaviourContextWithFSM.handleState( - contextUpdatesFlow: Flow, state: O - ): O? { - val subscope = scope.LinkedSupervisorScope() - return with(copy(scope = subscope, upstreamUpdatesFlow = contextUpdatesFlow)) { - with(delegateTo) { - handleState(state as I) - } - } + ): O? = with(delegateTo) { + handleState(state as I) } }