mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 22:25:57 +00:00
[WIP] Stories
This commit is contained in:
@@ -100,7 +100,7 @@ public final class ChatListNodeInteraction {
|
||||
let openPremiumIntro: () -> Void
|
||||
let openChatFolderUpdates: () -> Void
|
||||
let hideChatFolderUpdates: () -> Void
|
||||
let openStories: (EnginePeer.Id) -> Void
|
||||
let openStories: (EnginePeer.Id, ASDisplayNode?) -> Void
|
||||
|
||||
public var searchTextHighightState: String?
|
||||
var highlightedChatLocation: ChatListHighlightedLocation?
|
||||
@@ -148,7 +148,7 @@ public final class ChatListNodeInteraction {
|
||||
openPremiumIntro: @escaping () -> Void,
|
||||
openChatFolderUpdates: @escaping () -> Void,
|
||||
hideChatFolderUpdates: @escaping () -> Void,
|
||||
openStories: @escaping (EnginePeer.Id) -> Void
|
||||
openStories: @escaping (EnginePeer.Id, ASDisplayNode?) -> Void
|
||||
) {
|
||||
self.activateSearch = activateSearch
|
||||
self.peerSelected = peerSelected
|
||||
@@ -241,7 +241,7 @@ public struct ChatListNodeState: Equatable {
|
||||
public var foundPeers: [(EnginePeer, EnginePeer?)]
|
||||
public var selectedPeerMap: [EnginePeer.Id: EnginePeer]
|
||||
public var selectedThreadIds: Set<Int64>
|
||||
public var peersWithNewStories: Set<EnginePeer.Id>
|
||||
public var peerStoryMapping: [EnginePeer.Id: Bool]
|
||||
|
||||
public init(
|
||||
presentationData: ChatListPresentationData,
|
||||
@@ -257,7 +257,7 @@ public struct ChatListNodeState: Equatable {
|
||||
hiddenItemShouldBeTemporaryRevealed: Bool,
|
||||
hiddenPsaPeerId: EnginePeer.Id?,
|
||||
selectedThreadIds: Set<Int64>,
|
||||
peersWithNewStories: Set<EnginePeer.Id>
|
||||
peerStoryMapping: [EnginePeer.Id: Bool]
|
||||
) {
|
||||
self.presentationData = presentationData
|
||||
self.editing = editing
|
||||
@@ -272,7 +272,7 @@ public struct ChatListNodeState: Equatable {
|
||||
self.hiddenItemShouldBeTemporaryRevealed = hiddenItemShouldBeTemporaryRevealed
|
||||
self.hiddenPsaPeerId = hiddenPsaPeerId
|
||||
self.selectedThreadIds = selectedThreadIds
|
||||
self.peersWithNewStories = peersWithNewStories
|
||||
self.peerStoryMapping = peerStoryMapping
|
||||
}
|
||||
|
||||
public static func ==(lhs: ChatListNodeState, rhs: ChatListNodeState) -> Bool {
|
||||
@@ -315,7 +315,7 @@ public struct ChatListNodeState: Equatable {
|
||||
if lhs.selectedThreadIds != rhs.selectedThreadIds {
|
||||
return false
|
||||
}
|
||||
if lhs.peersWithNewStories != rhs.peersWithNewStories {
|
||||
if lhs.peerStoryMapping != rhs.peerStoryMapping {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
@@ -396,7 +396,7 @@ private func mappedInsertEntries(context: AccountContext, nodeInteraction: ChatL
|
||||
forumTopicData: forumTopicData,
|
||||
topForumTopicItems: topForumTopicItems,
|
||||
autoremoveTimeout: peerEntry.autoremoveTimeout,
|
||||
hasNewStories: peerEntry.hasNewStories
|
||||
storyState: peerEntry.storyState
|
||||
)),
|
||||
editing: editing,
|
||||
hasActiveRevealControls: hasActiveRevealControls,
|
||||
@@ -742,7 +742,7 @@ private func mappedUpdateEntries(context: AccountContext, nodeInteraction: ChatL
|
||||
forumTopicData: forumTopicData,
|
||||
topForumTopicItems: topForumTopicItems,
|
||||
autoremoveTimeout: peerEntry.autoremoveTimeout,
|
||||
hasNewStories: peerEntry.hasNewStories
|
||||
storyState: peerEntry.storyState
|
||||
)),
|
||||
editing: editing,
|
||||
hasActiveRevealControls: hasActiveRevealControls,
|
||||
@@ -1086,7 +1086,7 @@ public final class ChatListNode: ListView {
|
||||
public var toggleArchivedFolderHiddenByDefault: (() -> Void)?
|
||||
public var hidePsa: ((EnginePeer.Id) -> Void)?
|
||||
public var activateChatPreview: ((ChatListItem, Int64?, ASDisplayNode, ContextGesture?, CGPoint?) -> Void)?
|
||||
public var openStories: ((EnginePeer.Id) -> Void)?
|
||||
public var openStories: ((EnginePeer.Id, ASDisplayNode?) -> Void)?
|
||||
|
||||
private var theme: PresentationTheme
|
||||
|
||||
@@ -1210,7 +1210,7 @@ public final class ChatListNode: ListView {
|
||||
isSelecting = true
|
||||
}
|
||||
|
||||
self.currentState = ChatListNodeState(presentationData: ChatListPresentationData(theme: theme, fontSize: fontSize, strings: strings, dateTimeFormat: dateTimeFormat, nameSortOrder: nameSortOrder, nameDisplayOrder: nameDisplayOrder, disableAnimations: disableAnimations), editing: isSelecting, peerIdWithRevealedOptions: nil, selectedPeerIds: Set(), foundPeers: [], selectedPeerMap: [:], selectedAdditionalCategoryIds: Set(), peerInputActivities: nil, pendingRemovalItemIds: Set(), pendingClearHistoryPeerIds: Set(), hiddenItemShouldBeTemporaryRevealed: false, hiddenPsaPeerId: nil, selectedThreadIds: Set(), peersWithNewStories: Set())
|
||||
self.currentState = ChatListNodeState(presentationData: ChatListPresentationData(theme: theme, fontSize: fontSize, strings: strings, dateTimeFormat: dateTimeFormat, nameSortOrder: nameSortOrder, nameDisplayOrder: nameDisplayOrder, disableAnimations: disableAnimations), editing: isSelecting, peerIdWithRevealedOptions: nil, selectedPeerIds: Set(), foundPeers: [], selectedPeerMap: [:], selectedAdditionalCategoryIds: Set(), peerInputActivities: nil, pendingRemovalItemIds: Set(), pendingClearHistoryPeerIds: Set(), hiddenItemShouldBeTemporaryRevealed: false, hiddenPsaPeerId: nil, selectedThreadIds: Set(), peerStoryMapping: [:])
|
||||
self.statePromise = ValuePromise(self.currentState, ignoreRepeated: true)
|
||||
|
||||
self.theme = theme
|
||||
@@ -1549,11 +1549,11 @@ public final class ChatListNode: ListView {
|
||||
let _ = self.context.engine.peers.hideChatFolderUpdates(folderId: localFilterId).start()
|
||||
}
|
||||
})
|
||||
}, openStories: { [weak self] peerId in
|
||||
}, openStories: { [weak self] peerId, itemNode in
|
||||
guard let self else {
|
||||
return
|
||||
}
|
||||
self.openStories?(peerId)
|
||||
self.openStories?(peerId, itemNode)
|
||||
})
|
||||
nodeInteraction.isInlineMode = isInlineMode
|
||||
|
||||
|
||||
Reference in New Issue
Block a user