Files
divkit/client/ios/DivKit/Tooltips/DivTooltipViewFactory.swift
burstein bcd5ec7ac0 Supported tooltip substrate_div on ios
commit_hash:b6b5aa5812ca906af059b56d472d054fccc44576
2026-01-21 14:56:23 +03:00

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
}