From fbc455033a60c730db5c77722c85d887be50c525 Mon Sep 17 00:00:00 2001 From: RyosukeCla Date: Mon, 25 Mar 2024 21:43:40 +0900 Subject: [PATCH 1/2] [ios] Refactor event dispatching and compilation --- .../component/action-listener.swift | 20 +++++++++++++++- .../Nativebrik/component/page.swift | 24 +++---------------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/ios/Nativebrik/Nativebrik/component/action-listener.swift b/ios/Nativebrik/Nativebrik/component/action-listener.swift index 52999e6..a3fa2f6 100644 --- a/ios/Nativebrik/Nativebrik/component/action-listener.swift +++ b/ios/Nativebrik/Nativebrik/component/action-listener.swift @@ -52,7 +52,25 @@ func configureOnClickGesture(target: UIView, action: Selector, context: UIBlockC let gesture = ClickListener(target: target, action: action) gesture.onClick = { if let event = event { - context.dipatch(event: event) + let variable = context.getVariable() + let deepLink = event.deepLink + let name = event.name + let compiledEvent = UIBlockEventDispatcher( + name: (name != nil) ? compile(name ?? "", variable) : nil, + destinationPageId: event.destinationPageId, + deepLink: (deepLink != nil) ? compile(deepLink ?? "", variable) : nil, + payload: event.payload?.map({ prop in + return Property( + name: prop.name ?? "", + value: compile(prop.value ?? "", variable), + ptype: prop.ptype ?? PropertyType.STRING + ) + }), + httpRequest: event.httpRequest, + httpResponseAssertion: event.httpResponseAssertion + ) + + context.dipatch(event: compiledEvent) } } if event != nil { diff --git a/ios/Nativebrik/Nativebrik/component/page.swift b/ios/Nativebrik/Nativebrik/component/page.swift index 468482b..c1b6fce 100644 --- a/ios/Nativebrik/Nativebrik/component/page.swift +++ b/ios/Nativebrik/Nativebrik/component/page.swift @@ -141,32 +141,14 @@ class PageView: UIView { base: self?.data, self?.container.createVariableForTemplate(data: nil, properties: self?.props) ) - - // compile event - let deepLink = dispatchedEvent.deepLink - let name = dispatchedEvent.name - let compiledEvent = UIBlockEventDispatcher( - name: (name != nil) ? compile(name ?? "", variable) : nil, - destinationPageId: dispatchedEvent.destinationPageId, - deepLink: (deepLink != nil) ? compile(deepLink ?? "", variable) : nil, - payload: dispatchedEvent.payload?.map({ prop in - return Property( - name: prop.name ?? "", - value: compile(prop.value ?? "", variable), - ptype: prop.ptype ?? PropertyType.STRING - ) - }), - httpRequest: dispatchedEvent.httpRequest, - httpResponseAssertion: dispatchedEvent.httpResponseAssertion - ) - let assertion = compiledEvent.httpResponseAssertion + let assertion = dispatchedEvent.httpResponseAssertion let handleEvent = { () -> () in DispatchQueue.main.async { - parentEventManager?.dispatch(event: compiledEvent) + parentEventManager?.dispatch(event: dispatchedEvent) } } - if let httpRequest = compiledEvent.httpRequest { + if let httpRequest = dispatchedEvent.httpRequest { Task { Task.detached { [weak self] in let result = await self?.container.sendHttpRequest( From 98a4f221eb213f0afd6bc98a67dd69508685ff9c Mon Sep 17 00:00:00 2001 From: RyosukeCla Date: Mon, 25 Mar 2024 21:44:26 +0900 Subject: [PATCH 2/2] [ios] Update Nativebrik version to 0.5.4 --- Nativebrik.podspec | 2 +- ios/Nativebrik/Nativebrik/sdk.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Nativebrik.podspec b/Nativebrik.podspec index 16440f2..8e83565 100644 --- a/Nativebrik.podspec +++ b/Nativebrik.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'Nativebrik' - s.version = '0.5.3' + s.version = '0.5.4' s.summary = 'Nativebrik SDK' s.description = <<-DESC Nativebrik SDK for iOS. diff --git a/ios/Nativebrik/Nativebrik/sdk.swift b/ios/Nativebrik/Nativebrik/sdk.swift index 6c6157f..5d73a60 100644 --- a/ios/Nativebrik/Nativebrik/sdk.swift +++ b/ios/Nativebrik/Nativebrik/sdk.swift @@ -9,7 +9,7 @@ import Foundation import SwiftUI import Combine -public let nativebrikSdkVersion = "0.5.3" +public let nativebrikSdkVersion = "0.5.4" public let isNativebrikAvailable: Bool = { if #available(iOS 15.0, *) { return true