// // Copyright 2025 Element Creations Ltd. // Copyright 2022-2025 New Vector Ltd. // // SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial. // Please see LICENSE files in the repository root for full details. // import Foundation import UIKit nonisolated protocol RoomTimelineItemProtocol: Sendable { var id: TimelineItemIdentifier { get } } nonisolated extension RoomTimelineItemProtocol { var isReactable: Bool { guard let eventItem = self as? EventBasedTimelineItemProtocol else { return false } return !eventItem.isRedacted && !eventItem.hasFailedToSend && !eventItem.hasFailedDecryption } }