diff --git a/android/build.gradle b/android/build.gradle index da48eaf..6f8fe5a 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -25,5 +25,5 @@ repositories { dependencies { implementation "com.facebook.react:react-native:${safeExtGet("reactNative", "+")}" // from node_modules - implementation group: 'com.zendesk', name: 'support', version: '3.0.2' + implementation group: 'com.zendesk', name: 'support', version: '5.0.1' } \ No newline at end of file diff --git a/android/src/main/java/io/dcvz/rnzendesk/RNZendeskBridge.java b/android/src/main/java/io/dcvz/rnzendesk/RNZendeskBridge.java index 3053e9f..44bde17 100644 --- a/android/src/main/java/io/dcvz/rnzendesk/RNZendeskBridge.java +++ b/android/src/main/java/io/dcvz/rnzendesk/RNZendeskBridge.java @@ -5,16 +5,6 @@ import androidx.annotation.RequiresApi; -import zendesk.commonui.UiConfig; -import zendesk.core.Zendesk; -import zendesk.core.Identity; -import zendesk.core.JwtIdentity; -import zendesk.core.AnonymousIdentity; -import zendesk.support.Support; -import zendesk.support.guide.HelpCenterActivity; -import zendesk.support.request.RequestActivity; -import zendesk.support.requestlist.RequestListActivity; - import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.ReadableMap; import com.facebook.react.bridge.ReactApplicationContext; @@ -23,6 +13,16 @@ import java.util.ArrayList; import java.util.Locale; +import zendesk.configurations.Configuration; +import zendesk.core.AnonymousIdentity; +import zendesk.core.Identity; +import zendesk.core.JwtIdentity; +import zendesk.core.Zendesk; +import zendesk.support.Support; +import zendesk.support.guide.HelpCenterActivity; +import zendesk.support.request.RequestActivity; +import zendesk.support.requestlist.RequestListActivity; + public class RNZendeskBridge extends ReactContextBaseJavaModule { public RNZendeskBridge(ReactApplicationContext reactContext) { @@ -68,13 +68,14 @@ public void identifyAnonymous(String name, String email) { @ReactMethod public void showHelpCenter(ReadableMap options) { -// Boolean hideContact = options.getBoolean("hideContactUs") || false; - UiConfig hcConfig = HelpCenterActivity.builder() - .withContactUsButtonVisible(!(options.hasKey("hideContactSupport") && options.getBoolean("hideContactSupport"))) + ArrayList tags = options.getArray("tags").toArrayList(); + + Configuration hcConfig = RequestActivity.builder() + .withTags(tags) .config(); Intent intent = HelpCenterActivity.builder() - .withContactUsButtonVisible(true) + .withContactUsButtonVisible(!(options.hasKey("hideContactSupport") && options.getBoolean("hideContactSupport"))) .intent(getReactApplicationContext(), hcConfig); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); @@ -95,10 +96,7 @@ public void showNewTicket(ReadableMap options) { @ReactMethod public void showTicketList() { - Intent intent = RequestListActivity.builder() - .intent(getReactApplicationContext()); - - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - getReactApplicationContext().startActivity(intent); + RequestListActivity.builder() + .show(getReactApplicationContext()); } } diff --git a/ios/RNZendesk/RNZendesk.swift b/ios/RNZendesk/RNZendesk.swift index e83b0f4..b411a6f 100644 --- a/ios/RNZendesk/RNZendesk.swift +++ b/ios/RNZendesk/RNZendesk.swift @@ -8,7 +8,7 @@ import UIKit import Foundation -import ZendeskSDK +import SupportSDK import ZendeskCoreSDK import CommonUISDK @@ -64,8 +64,22 @@ class RNZendesk: RCTEventEmitter { func showHelpCenter(with options: [String: Any]) { DispatchQueue.main.async { let hcConfig = HelpCenterUiConfiguration() - hcConfig.hideContactSupport = (options["hideContactSupport"] as? Bool) ?? false - let helpCenter = HelpCenterUi.buildHelpCenterOverviewUi(withConfigs: [hcConfig]) + let requestConfig = RequestUiConfiguration() + + if let hideContactSupport = options["hideContactSupport"] as? Bool { + hcConfig.showContactOptions = !hideContactSupport + } else { + hcConfig.showContactOptions = true + } + + if let subject = options["subject"] as? String { + requestConfig.subject = subject + } + + if let tags = options["tags"] as? [String] { + requestConfig.tags = tags + } + let helpCenter = HelpCenterUi.buildHelpCenterOverviewUi(withConfigs: [hcConfig,requestConfig]) let nvc = UINavigationController(rootViewController: helpCenter) UIApplication.shared.keyWindow?.rootViewController?.present(nvc, animated: true, completion: nil) diff --git a/react-native-zendesk.podspec b/react-native-zendesk.podspec index b867d98..e70317c 100644 --- a/react-native-zendesk.podspec +++ b/react-native-zendesk.podspec @@ -17,5 +17,5 @@ Pod::Spec.new do |s| s.swift_version = '5.0' s.dependency "React" - s.dependency "ZendeskSDK", "~> 3.0.3" + s.dependency "ZendeskSupportSDK", "~> 5.0.0" end