mirror of
https://github.com/divkit/divkit.git
synced 2026-06-06 20:07:59 +00:00
70 lines
1.6 KiB
Swift
70 lines
1.6 KiB
Swift
import VGSL
|
|
|
|
public struct DivTooltipViewFactory {
|
|
private let divKitComponents: DivKitComponents
|
|
private let cardId: DivCardID
|
|
|
|
init(
|
|
divKitComponents: DivKitComponents,
|
|
cardId: DivCardID
|
|
) {
|
|
self.divKitComponents = divKitComponents
|
|
self.cardId = cardId
|
|
}
|
|
|
|
#if os(iOS)
|
|
@MainActor
|
|
func makeView(div: Div, tooltipId: String) async -> VisibleBoundsTrackingView {
|
|
let view = DivView(divKitComponents: divKitComponents)
|
|
let divData = DivData(
|
|
functions: nil,
|
|
logId: tooltipId,
|
|
states: [.init(div: div, stateId: 0)],
|
|
timers: nil,
|
|
transitionAnimationSelector: nil,
|
|
variableTriggers: nil,
|
|
variables: nil
|
|
)
|
|
await view.setSource(
|
|
DivViewSource(
|
|
kind: .divData(divData),
|
|
cardId: cardId,
|
|
additionalId: tooltipId
|
|
)
|
|
)
|
|
return view
|
|
}
|
|
|
|
@MainActor
|
|
func makeSubstrateView(div: Div, tooltipId: String) async -> VisibleBoundsTrackingView {
|
|
let view = DivView(divKitComponents: divKitComponents)
|
|
let divData = DivData(
|
|
functions: nil,
|
|
logId: "\(tooltipId)_substrate",
|
|
states: [.init(div: div, stateId: 0)],
|
|
timers: nil,
|
|
transitionAnimationSelector: nil,
|
|
variableTriggers: nil,
|
|
variables: nil
|
|
)
|
|
await view.setSource(
|
|
DivViewSource(
|
|
kind: .divData(divData),
|
|
cardId: cardId,
|
|
additionalId: "\(tooltipId)_substrate"
|
|
)
|
|
)
|
|
return view
|
|
}
|
|
|
|
#else
|
|
func makeView(div _: Div, tooltipId _: String) async -> ViewType {
|
|
self as AnyObject
|
|
}
|
|
|
|
func makeSubstrateView(div _: Div, tooltipId _: String) async -> ViewType {
|
|
self as AnyObject
|
|
}
|
|
#endif
|
|
}
|