mirror of
https://github.com/divkit/divkit.git
synced 2026-06-06 20:07:59 +00:00
Removed UserInterfaceAction.Payload.composite
54067c87d18632f8ab4aa065020b8759c6b39957
This commit is contained in:
@@ -205,7 +205,7 @@ extension DivView: ElementStateObserver {
|
||||
extension DivView: UIActionEventPerforming {
|
||||
public func perform(uiActionEvent event: UIActionEvent, from sender: AnyObject) {
|
||||
switch event.payload {
|
||||
case .composite, .empty, .url:
|
||||
case .empty, .url:
|
||||
break
|
||||
case let .menu(menu):
|
||||
nearestViewController?.showMenu(menu, actionPerformer: self)
|
||||
|
||||
@@ -9,7 +9,6 @@ public struct UserInterfaceAction: Equatable, Codable {
|
||||
case empty // means just analytics logging
|
||||
case url(URL)
|
||||
case menu(Menu)
|
||||
indirect case composite(Payload, Payload)
|
||||
case divAction(params: DivActionParams)
|
||||
}
|
||||
|
||||
@@ -97,27 +96,6 @@ public struct UserInterfaceAction: Equatable, Codable {
|
||||
)
|
||||
}
|
||||
|
||||
public init(
|
||||
payloads: [Payload],
|
||||
path: UIElementPath,
|
||||
accessibilityElement: AccessibilityElement? = nil
|
||||
) {
|
||||
let payload: Payload = payloads.reduce(.empty) {
|
||||
if $0 == .empty {
|
||||
return $1
|
||||
} else if $1 == .empty {
|
||||
return $0
|
||||
}
|
||||
|
||||
return .composite($0, $1)
|
||||
}
|
||||
self.init(
|
||||
payload: payload,
|
||||
path: path,
|
||||
accessibilityElement: accessibilityElement
|
||||
)
|
||||
}
|
||||
|
||||
public init(path: UIElementPath, accessibilityElement: AccessibilityElement? = nil) {
|
||||
self.init(payload: .empty, path: path, accessibilityElement: accessibilityElement)
|
||||
}
|
||||
@@ -129,7 +107,6 @@ extension UserInterfaceAction.Payload: Codable {
|
||||
case url
|
||||
case menu
|
||||
case divAction
|
||||
case composite
|
||||
}
|
||||
|
||||
private enum CodingKeys: String, CodingKey {
|
||||
@@ -138,8 +115,6 @@ extension UserInterfaceAction.Payload: Codable {
|
||||
case menu
|
||||
case json
|
||||
case cardId
|
||||
case firstPayload
|
||||
case secondPayload
|
||||
case divActionSource
|
||||
}
|
||||
|
||||
@@ -151,8 +126,6 @@ extension UserInterfaceAction.Payload: Codable {
|
||||
.url
|
||||
case .menu:
|
||||
.menu
|
||||
case .composite:
|
||||
.composite
|
||||
case .divAction:
|
||||
.divAction
|
||||
}
|
||||
@@ -177,10 +150,6 @@ extension UserInterfaceAction.Payload: Codable {
|
||||
case .menu?:
|
||||
let menu = try container.decode(Menu.self, forKey: .menu)
|
||||
self = .menu(menu)
|
||||
case .composite?:
|
||||
let first = try container.decode(type(of: self).self, forKey: .firstPayload)
|
||||
let second = try container.decode(type(of: self).self, forKey: .secondPayload)
|
||||
self = .composite(first, second)
|
||||
case .divAction?:
|
||||
let source = try container.decodeIfPresent(String.self, forKey: .divActionSource)
|
||||
let params = try UserInterfaceAction.DivActionParams(
|
||||
@@ -206,9 +175,6 @@ extension UserInterfaceAction.Payload: Codable {
|
||||
try container.encode(url, forKey: .url)
|
||||
case let .menu(menu):
|
||||
try container.encode(menu, forKey: .menu)
|
||||
case let .composite(first, second):
|
||||
try container.encode(first, forKey: .firstPayload)
|
||||
try container.encode(second, forKey: .secondPayload)
|
||||
case let .divAction(params):
|
||||
try container.encode(params.action, forKey: .json)
|
||||
try container.encode(params.cardId, forKey: .cardId)
|
||||
@@ -229,13 +195,6 @@ extension UserInterfaceAction.Payload: CustomDebugStringConvertible {
|
||||
"Menu: \(value)"
|
||||
case let .divAction(params):
|
||||
"DivAction: \(params.action)"
|
||||
case let .composite(lhs, rhs):
|
||||
"""
|
||||
Composite [
|
||||
\(lhs.debugDescription.indented())
|
||||
\(rhs.debugDescription.indented())
|
||||
]
|
||||
"""
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -273,14 +232,6 @@ extension UserInterfaceAction.Payload {
|
||||
return value
|
||||
case let .divAction(params):
|
||||
return params.source == .visibility ? nil : params.url
|
||||
case let .composite(lhs, rhs):
|
||||
let lhsURL = lhs.url
|
||||
let rhsURL = rhs.url
|
||||
assert(
|
||||
lhsURL == nil || rhsURL == nil,
|
||||
"Multiple URLs in payload are not supported"
|
||||
)
|
||||
return lhsURL ?? rhsURL
|
||||
case .empty, .menu:
|
||||
return nil
|
||||
}
|
||||
@@ -295,8 +246,6 @@ extension UserInterfaceAction.Payload {
|
||||
throw Error.notAnURL
|
||||
}
|
||||
return [url]
|
||||
case let .composite(lPayload, rPayload):
|
||||
return try lPayload.getComposedURLs() + rPayload.getComposedURLs()
|
||||
case .empty:
|
||||
return []
|
||||
case .menu:
|
||||
|
||||
@@ -64,14 +64,14 @@ extension [UIActionEvent] {
|
||||
}
|
||||
|
||||
extension UIActionEvent {
|
||||
public func removingURLPayload() -> UIActionEvent? {
|
||||
fileprivate func removingURLPayload() -> UIActionEvent? {
|
||||
guard let uiAction = uiAction.removingURLPayload() else { return nil }
|
||||
return UIActionEvent(uiAction: uiAction, originalSender: originalSender)
|
||||
}
|
||||
}
|
||||
|
||||
extension UserInterfaceAction {
|
||||
public func removingURLPayload() -> UserInterfaceAction? {
|
||||
fileprivate func removingURLPayload() -> UserInterfaceAction? {
|
||||
guard let payload = payload.removingURLPayload() else { return nil }
|
||||
return UserInterfaceAction(
|
||||
payload: payload,
|
||||
@@ -82,20 +82,12 @@ extension UserInterfaceAction {
|
||||
}
|
||||
|
||||
extension UserInterfaceAction.Payload {
|
||||
public func removingURLPayload() -> UserInterfaceAction.Payload? {
|
||||
fileprivate func removingURLPayload() -> UserInterfaceAction.Payload? {
|
||||
switch self {
|
||||
case .url:
|
||||
return nil
|
||||
case .divAction:
|
||||
return nil
|
||||
case let .composite(lhs, rhs):
|
||||
guard let leftPayload = lhs.removingURLPayload() else {
|
||||
return rhs.removingURLPayload()
|
||||
}
|
||||
guard let rightPayload = rhs.removingURLPayload() else {
|
||||
return leftPayload
|
||||
}
|
||||
return .composite(leftPayload, rightPayload)
|
||||
case .empty, .menu:
|
||||
return self
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user