Swiftgram/TelegramUI/ChatMediaInputGridEntries.swift
2016-10-22 22:53:47 +03:00

40 lines
1.6 KiB
Swift

import Postbox
import TelegramCore
import SwiftSignalKit
import Display
struct ChatMediaInputGridEntryStableId: Hashable {
let collectionId: ItemCollectionId
let itemId: ItemCollectionItemIndex.Id
static func ==(lhs: ChatMediaInputGridEntryStableId, rhs: ChatMediaInputGridEntryStableId) -> Bool {
return lhs.collectionId == rhs.collectionId && lhs.itemId == rhs.itemId
}
var hashValue: Int {
return self.itemId.hashValue
}
}
struct ChatMediaInputGridEntry: Comparable, Identifiable {
let index: ItemCollectionViewEntryIndex
let stickerItem: StickerPackItem
let stickerPackInfo: StickerPackCollectionInfo?
var stableId: ChatMediaInputGridEntryStableId {
return ChatMediaInputGridEntryStableId(collectionId: self.index.collectionId, itemId: self.stickerItem.index.id)
}
static func ==(lhs: ChatMediaInputGridEntry, rhs: ChatMediaInputGridEntry) -> Bool {
return lhs.index == rhs.index && lhs.stickerItem == rhs.stickerItem
}
static func <(lhs: ChatMediaInputGridEntry, rhs: ChatMediaInputGridEntry) -> Bool {
return lhs.index < rhs.index
}
func item(account: Account, interfaceInteraction: ChatControllerInteraction, inputNodeInteraction: ChatMediaInputNodeInteraction) -> GridItem {
return ChatMediaInputStickerGridItem(account: account, collectionId: self.index.collectionId, stickerPackInfo: self.stickerPackInfo, index: self.index, stickerItem: self.stickerItem, interfaceInteraction: interfaceInteraction, inputNodeInteraction: inputNodeInteraction, selected: { })
}
}