diff --git a/frontend/src/org/jetbrains/react/ReactComponent.kt b/frontend/src/org/jetbrains/react/ReactComponent.kt
index 82bb327..a9049e9 100644
--- a/frontend/src/org/jetbrains/react/ReactComponent.kt
+++ b/frontend/src/org/jetbrains/react/ReactComponent.kt
@@ -93,7 +93,7 @@ abstract class ReactComponent
: ReactExtensionProvider {
}
- open fun componentDidUpdate(prevProps: P, prevState: S) {
+ open fun componentDidUpdate(prevProps: RProps, prevState: RState) {
}
@@ -185,7 +185,10 @@ class ReactComponentWrapper(var props: P, val updater
}
@JsName("componentDidUpdate")
- fun componentDidUpdate(prevProps: P, prevState: S) {
+ fun componentDidUpdate(prevProps: RProps, prevState: RState) {
+ subscribers.forEach {
+ it.reactComponentDidUpdate(prevProps, prevState)
+ }
delegate.componentDidUpdate(prevProps, prevState)
}
diff --git a/frontend/src/org/jetbrains/react/ReactExtensions.kt b/frontend/src/org/jetbrains/react/ReactExtensions.kt
index 9052052..0e2cf47 100644
--- a/frontend/src/org/jetbrains/react/ReactExtensions.kt
+++ b/frontend/src/org/jetbrains/react/ReactExtensions.kt
@@ -6,6 +6,8 @@ import kotlin.reflect.*
interface ReactComponentLifecycleListener {
fun reactComponentWillUpdate()
+ fun reactComponentDidUpdate(prevProps: RProps, prevState: RState)
+
fun reactComponentWillUnmount()
fun reactComponentWillMount()
@@ -25,6 +27,10 @@ abstract class BaseReactExtension(val provider: ReactExtensionProvider) {
componentWillUpdate()
}
+ override fun reactComponentDidUpdate(prevProps: RProps, prevState: RState) {
+ componentDidUpdate(prevProps, prevState)
+ }
+
override fun reactComponentWillUnmount() {
provider.unsubscribe(this)
componentWillUnmount()
@@ -43,6 +49,8 @@ abstract class BaseReactExtension(val provider: ReactExtensionProvider) {
provider.subscribe(listener)
}
+ open fun componentDidUpdate(prevProps: RProps, prevState: RState) {}
+
open fun componentWillUpdate() {}
open fun componentWillUnmount() {}