Web app improvements

This commit is contained in:
Ilya Laktyushin
2022-04-08 18:38:04 +04:00
parent 845cc48c61
commit af9dcd2f19
3 changed files with 35 additions and 18 deletions

View File

@@ -298,21 +298,32 @@ public final class WebAppController: ViewController, AttachmentContainable {
}
return nil
}
var didTransitionIn = false
private func animateTransitionIn() {
guard !self.didTransitionIn, let webView = self.webView else {
return
}
self.didTransitionIn = true
let transition = ContainedViewLayoutTransition.animated(duration: 0.2, curve: .linear)
transition.updateAlpha(layer: webView.layer, alpha: 1.0)
if let placeholderNode = self.placeholderNode {
self.placeholderNode = nil
transition.updateAlpha(node: placeholderNode, alpha: 0.0, completion: { [weak placeholderNode] _ in
placeholderNode?.removeFromSupernode()
})
}
if let (layout, navigationBarHeight) = self.validLayout {
self.containerLayoutUpdated(layout, navigationBarHeight: navigationBarHeight, transition: .immediate)
}
}
func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) {
Queue.mainQueue().after(0.6, {
let transition = ContainedViewLayoutTransition.animated(duration: 0.2, curve: .linear)
transition.updateAlpha(layer: webView.layer, alpha: 1.0)
if let placeholderNode = self.placeholderNode {
self.placeholderNode = nil
transition.updateAlpha(node: placeholderNode, alpha: 0.0, completion: { [weak placeholderNode] _ in
placeholderNode?.removeFromSupernode()
})
}
if let (layout, navigationBarHeight) = self.validLayout {
self.containerLayoutUpdated(layout, navigationBarHeight: navigationBarHeight, transition: .immediate)
}
self.animateTransitionIn()
})
}
@@ -402,6 +413,8 @@ public final class WebAppController: ViewController, AttachmentContainable {
}
switch eventName {
case "web_app_ready":
self.animateTransitionIn()
case "web_app_data_send":
if let eventData = body["eventData"] as? String {
self.handleSendData(data: eventData)