mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
44 lines
1.7 KiB
Swift
44 lines
1.7 KiB
Swift
import Foundation
|
|
import UIKit
|
|
import TelegramPresentationData
|
|
import TelegramUIPreferences
|
|
|
|
struct WebSearchInterfaceInnerState: Equatable {
|
|
let scope: WebSearchScope
|
|
let query: String
|
|
}
|
|
|
|
struct WebSearchInterfaceState: Equatable {
|
|
let state: WebSearchInterfaceInnerState?
|
|
let presentationData: PresentationData
|
|
let gifProvider: String?
|
|
|
|
init (presentationData: PresentationData) {
|
|
self.state = nil
|
|
self.presentationData = presentationData
|
|
self.gifProvider = nil
|
|
}
|
|
|
|
init(state: WebSearchInterfaceInnerState?, presentationData: PresentationData, gifProvider: String? = nil) {
|
|
self.state = state
|
|
self.presentationData = presentationData
|
|
self.gifProvider = gifProvider
|
|
}
|
|
|
|
func withUpdatedScope(_ scope: WebSearchScope) -> WebSearchInterfaceState {
|
|
return WebSearchInterfaceState(state: WebSearchInterfaceInnerState(scope: scope, query: self.state?.query ?? ""), presentationData: self.presentationData, gifProvider: self.gifProvider)
|
|
}
|
|
|
|
func withUpdatedQuery(_ query: String) -> WebSearchInterfaceState {
|
|
return WebSearchInterfaceState(state: WebSearchInterfaceInnerState(scope: self.state?.scope ?? .images, query: query), presentationData: self.presentationData, gifProvider: self.gifProvider)
|
|
}
|
|
|
|
func withUpdatedPresentationData(_ presentationData: PresentationData) -> WebSearchInterfaceState {
|
|
return WebSearchInterfaceState(state: self.state, presentationData: presentationData, gifProvider: self.gifProvider)
|
|
}
|
|
|
|
func withUpdatedGifProvider(_ gifProvider: String?) -> WebSearchInterfaceState {
|
|
return WebSearchInterfaceState(state: self.state, presentationData: self.presentationData, gifProvider: gifProvider)
|
|
}
|
|
}
|