Send message menu improvements

This commit is contained in:
Isaac
2024-05-14 16:33:44 +04:00
parent e786ff8238
commit c6ca23181e
2 changed files with 12 additions and 0 deletions

View File

@@ -168,6 +168,7 @@ final class ChatSendMessageContextScreenComponent: Component {
private var isLoadingEffectAnimationTimerDisposable: Disposable?
private var loadEffectAnimationDisposable: Disposable?
private var animateInTimestamp: Double?
private var presentationAnimationState: PresentationAnimationState = .initial
private var appliedAnimationState: PresentationAnimationState = .initial
private var animateOutToEmpty: Bool = false
@@ -224,6 +225,8 @@ final class ChatSendMessageContextScreenComponent: Component {
if case .initial = self.presentationAnimationState {
HapticFeedback().impact()
self.animateInTimestamp = CFAbsoluteTimeGetCurrent()
self.presentationAnimationState = .animatedIn
self.state?.updated(transition: .spring(duration: 0.42))
}
@@ -279,12 +282,20 @@ final class ChatSendMessageContextScreenComponent: Component {
guard let self, let actionsStackNode = self.actionsStackNode else {
return
}
guard let animateInTimestamp = self.animateInTimestamp, animateInTimestamp < CFAbsoluteTimeGetCurrent() - 0.35 else {
return
}
actionsStackNode.highlightGestureMoved(location: actionsStackNode.view.convert(location, from: view))
}
component.gesture.externalEnded = { [weak self] viewAndLocation in
guard let self, let actionsStackNode = self.actionsStackNode else {
return
}
guard let animateInTimestamp = self.animateInTimestamp, animateInTimestamp < CFAbsoluteTimeGetCurrent() - 0.35 else {
actionsStackNode.highlightGestureFinished(performAction: false)
return
}
if let (view, location) = viewAndLocation {
actionsStackNode.highlightGestureMoved(location: actionsStackNode.view.convert(location, from: view))
actionsStackNode.highlightGestureFinished(performAction: true)