Files
divkit/client/ios/DivKit/Actions/FocusElementActionHandler.swift
pkurchatov 93113c7bb3 Added download action handler
commit_hash:356512da68f2ed46479425dd365d06a9ca266514
2025-01-24 19:48:07 +03:00

22 lines
620 B
Swift

import LayoutKit
final class FocusElementActionHandler {
func handle(_ action: DivActionFocusElement, context: DivActionHandlingContext) {
guard let elementId = action.resolveElementId(context.expressionResolver) else {
return
}
let cardId = context.cardId
if let previousCard = context.blockStateStorage.getFocusedElement()?.cardId,
previousCard != cardId {
context.updateCard(.state(previousCard))
}
context.blockStateStorage.setFocused(
isFocused: true,
element: IdAndCardId(id: elementId, cardId: cardId)
)
context.updateCard(.state(cardId))
}
}