Various improvements

This commit is contained in:
Ilya Laktyushin
2025-03-23 03:56:44 +04:00
parent fa93715135
commit f720277d29
19 changed files with 851 additions and 631 deletions

View File

@@ -2093,6 +2093,37 @@ public extension TelegramEngine.EngineData.Item {
}
}
public struct BotStorageValue: TelegramEngineDataItem, TelegramEngineMapKeyDataItem, PostboxViewDataItem {
public typealias Result = String?
fileprivate var id: EnginePeer.Id
fileprivate var storageKey: String
public var mapKey: EnginePeer.Id {
return self.id
}
public init(id: EnginePeer.Id, key: String) {
self.id = id
self.storageKey = key
}
var key: PostboxViewKey {
return .preferences(keys: Set([PreferencesKeys.botStorageState(peerId: self.id)]))
}
func extract(view: PostboxView) -> Result {
guard let view = view as? PreferencesView else {
preconditionFailure()
}
if let state = view.values[PreferencesKeys.botStorageState(peerId: self.id)]?.get(TelegramBotStorageState.self) {
return state.data[self.storageKey]
} else {
return nil
}
}
}
public struct BusinessChatLinks: TelegramEngineDataItem, TelegramEngineMapKeyDataItem, PostboxViewDataItem {
public typealias Result = TelegramBusinessChatLinks?