@@ -2246,6 +2246,9 @@ public final class WebAppController: ViewController, AttachmentContainable {
22462246 self ? . startDownload ( url: url, fileName: fileName, fileSize: fileSize, isMedia: isMedia)
22472247 } )
22482248 ] , parseMarkdown: true )
2249+ alertController. dismissed = { [ weak self] byOutsideTap in
2250+ self ? . webView? . sendEvent ( name: " file_download_requested " , data: " {status: \" cancelled \" } " )
2251+ }
22492252 controller. present ( alertController, in: . window( . root) )
22502253 } )
22512254 }
@@ -2447,6 +2450,9 @@ public final class WebAppController: ViewController, AttachmentContainable {
24472450 }
24482451 }
24492452 )
2453+ alertController. dismissed = { [ weak self] byOutsideTap in
2454+ self ? . webView? . sendEvent ( name: " emoji_status_access_requested " , data: " {status: \" cancelled \" } " )
2455+ }
24502456 controller. present ( alertController, in: . window( . root) )
24512457 } )
24522458 }
@@ -2477,7 +2483,22 @@ public final class WebAppController: ViewController, AttachmentContainable {
24772483 guard let self else {
24782484 return
24792485 }
2480- if result {
2486+ if result, let controller {
2487+ let context = self . context
2488+ if !context. isPremium {
2489+ var replaceImpl : ( ( ViewController ) -> Void ) ?
2490+ let demoController = context. sharedContext. makePremiumDemoController ( context: context, subject: . emojiStatus, forceDark: false , action: {
2491+ let controller = context. sharedContext. makePremiumIntroController ( context: context, source: . animatedEmoji, forceDark: false , dismissed: nil )
2492+ replaceImpl ? ( controller)
2493+ } , dismissed: nil )
2494+ replaceImpl = { [ weak demoController] c in
2495+ demoController? . replace ( with: c)
2496+ }
2497+ controller. parentController ( ) ? . push ( demoController)
2498+ self . webView? . sendEvent ( name: " emoji_status_failed " , data: " {error: \" USER_DECLINED \" } " )
2499+ return
2500+ }
2501+
24812502 let _ = ( self . context. engine. accountData. setEmojiStatus ( file: file, expirationDate: expirationDate)
24822503 |> deliverOnMainQueue) . start ( completed: { [ weak self] in
24832504 self ? . webView? . sendEvent ( name: " emoji_status_set " , data: nil )
@@ -2494,7 +2515,7 @@ public final class WebAppController: ViewController, AttachmentContainable {
24942515 return true
24952516 }
24962517 )
2497- controller? . present ( resultController, in: . window( . root) )
2518+ controller. present ( resultController, in: . window( . root) )
24982519 } else {
24992520 self . webView? . sendEvent ( name: " emoji_status_failed " , data: " {error: \" USER_DECLINED \" } " )
25002521 }
0 commit comments