Files
ghostgram/submodules/ChatListUI/Sources/ChatListCompatibility.swift
2026-03-07 18:15:32 +01:00

64 lines
2.1 KiB
Swift

import Foundation
import UIKit
import ObjectiveC.runtime
import Display
import ComponentFlow
import Postbox
import TelegramCore
import TelegramPresentationData
import AccountContext
import ContextUI
import ChatListHeaderComponent
private var chatListNodePinnedHeaderDisplayFractionUpdatedKey: UInt8 = 0
private var chatListNodePinnedScrollFractionKey: UInt8 = 0
extension ChatListNavigationBar.View {
func openEmojiStatusSetup() {
}
func updateEdgeEffectForPinnedFraction(pinnedFraction: CGFloat, transition: ComponentTransition) {
}
}
extension ChatListNode {
var pinnedHeaderDisplayFractionUpdated: ((ContainedViewLayoutTransition) -> Void)? {
get {
return objc_getAssociatedObject(self, &chatListNodePinnedHeaderDisplayFractionUpdatedKey) as? ((ContainedViewLayoutTransition) -> Void)
}
set {
objc_setAssociatedObject(self, &chatListNodePinnedHeaderDisplayFractionUpdatedKey, newValue, .OBJC_ASSOCIATION_COPY_NONATOMIC)
}
}
var pinnedScrollFraction: CGFloat {
get {
return CGFloat((objc_getAssociatedObject(self, &chatListNodePinnedScrollFractionKey) as? NSNumber)?.doubleValue ?? 0.0)
}
set {
objc_setAssociatedObject(self, &chatListNodePinnedScrollFractionKey, NSNumber(value: Double(newValue)), .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
}
}
}
extension ChatListNodeInteraction {
func openSGAnnouncement(_ id: String, _ url: String, _ needAuth: Bool, _ permanent: Bool) {
self.openUrl(url)
}
}
extension PeerInfoScreen {
public func tabBarItemContextActionRawUIView(sourceView: UIView, gesture: ContextGesture?) {
guard let sourceView = sourceView as? ContextExtractedContentContainingView, let gesture else {
return
}
self.tabBarItemContextAction(sourceView: sourceView, gesture: gesture)
}
}
extension ChatListControllerImpl {
func presentLeaveChannelConfirmation(peer: EnginePeer, nextCreator: EnginePeer, completion: @escaping (Bool) -> Void) {
completion(true)
}
}