@@ -17,6 +17,7 @@ import ChatListTitleView
1717import ComponentFlow
1818import SwiftUI
1919import ContactsUI
20+ import EdgeEffect
2021
2122private final class ContextControllerContentSourceImpl : ContextControllerContentSource {
2223 let controller : ViewController
@@ -48,6 +49,7 @@ private final class ContextControllerContentSourceImpl: ContextControllerContent
4849
4950final class ContactsControllerNode : ASDisplayNode , ASGestureRecognizerDelegate {
5051 let contactListNode : ContactListNode
52+ private let edgeEffectView : EdgeEffectView
5153
5254 private let context : AccountContext
5355 private( set) var searchDisplayController : SearchDisplayController ?
@@ -116,6 +118,8 @@ final class ContactsControllerNode: ASDisplayNode, ASGestureRecognizerDelegate {
116118 contextAction ? ( peer, node, gesture, location, isStories)
117119 } )
118120
121+ self . edgeEffectView = EdgeEffectView ( )
122+
119123 super. init ( )
120124
121125 self . setViewBlock ( {
@@ -125,6 +129,7 @@ final class ContactsControllerNode: ASDisplayNode, ASGestureRecognizerDelegate {
125129 self . backgroundColor = self . presentationData. theme. chatList. backgroundColor
126130
127131 self . addSubnode ( self . contactListNode)
132+ self . view. addSubview ( self . edgeEffectView)
128133
129134 self . presentationDataDisposable = ( context. sharedContext. presentationData
130135 |> deliverOnMainQueue) . start ( next: { [ weak self] presentationData in
@@ -442,6 +447,11 @@ final class ContactsControllerNode: ASDisplayNode, ASGestureRecognizerDelegate {
442447
443448 self . contactListNode. frame = CGRect ( origin: CGPoint ( ) , size: layout. size)
444449
450+ let edgeEffectHeight : CGFloat = layout. intrinsicInsets. bottom
451+ let edgeEffectFrame = CGRect ( origin: CGPoint ( x: 0.0 , y: layout. size. height - edgeEffectHeight) , size: CGSize ( width: layout. size. width, height: edgeEffectHeight) )
452+ transition. updateFrame ( view: self . edgeEffectView, frame: edgeEffectFrame)
453+ self . edgeEffectView. update ( content: self . presentationData. theme. list. plainBackgroundColor, rect: edgeEffectFrame, edge: . bottom, edgeSize: edgeEffectFrame. height, containerSize: layout. size, transition: ComponentTransition ( transition) )
454+
445455 self . updateNavigationScrolling ( transition: transition)
446456
447457 if let navigationBarComponentView = self . navigationBarView. view as? ChatListNavigationBar . View {
0 commit comments