Skip to content

Commit d1655fa

Browse files
authored
force set view controller before display messenger (#370)
1 parent 23650ec commit d1655fa

1 file changed

Lines changed: 17 additions & 0 deletions

File tree

iOS/IntercomWrapper.m

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
#import "IntercomWrapper.h"
1010
#import "IntercomUserAttributesBuilder.h"
1111
#import <Intercom/Intercom.h>
12+
#import <React/RCTUtils.h>
13+
#import <React/RCTUtilsUIOverride.h>
1214

1315
@implementation IntercomWrapper
1416

@@ -103,6 +105,9 @@ @implementation IntercomWrapper
103105
// Available as NativeModules.IntercomWrapper.displayMessenger
104106
RCT_EXPORT_METHOD(displayMessenger :(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject) {
105107
NSLog(@"displayMessenger");
108+
109+
UIViewController *controller = RCTPresentedViewController();
110+
[RCTUtilsUIOverride setPresentedViewController:controller];
106111

107112
dispatch_async(dispatch_get_main_queue(), ^{
108113
[Intercom presentMessenger];
@@ -125,6 +130,9 @@ @implementation IntercomWrapper
125130
// Available as NativeModules.IntercomWrapper.displayMessageComposer
126131
RCT_EXPORT_METHOD(displayMessageComposer :(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject) {
127132
NSLog(@"displayMessageComposer");
133+
134+
UIViewController *controller = RCTPresentedViewController();
135+
[RCTUtilsUIOverride setPresentedViewController:controller];
128136

129137
dispatch_async(dispatch_get_main_queue(), ^{
130138
[Intercom presentMessageComposer];
@@ -135,6 +143,9 @@ @implementation IntercomWrapper
135143

136144
RCT_EXPORT_METHOD(displayMessageComposerWithInitialMessage:(NSString*)message resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
137145
NSLog(@"displayMessageComposerWithInitialMessage");
146+
147+
UIViewController *controller = RCTPresentedViewController();
148+
[RCTUtilsUIOverride setPresentedViewController:controller];
138149

139150
dispatch_async(dispatch_get_main_queue(), ^{
140151
[Intercom presentMessageComposerWithInitialMessage:message];
@@ -146,6 +157,9 @@ @implementation IntercomWrapper
146157
// Available as NativeModules.IntercomWrapper.displayConversationsList
147158
RCT_EXPORT_METHOD(displayConversationsList :(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject) {
148159
NSLog(@"displayConversationsList");
160+
161+
UIViewController *controller = RCTPresentedViewController();
162+
[RCTUtilsUIOverride setPresentedViewController:controller];
149163

150164
dispatch_async(dispatch_get_main_queue(), ^{
151165
[Intercom presentConversationList];
@@ -166,6 +180,9 @@ @implementation IntercomWrapper
166180
// Available as NativeModules.IntercomWrapper.displayHelpCenter
167181
RCT_EXPORT_METHOD(displayHelpCenter :(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject) {
168182
NSLog(@"displayHelpCenter");
183+
184+
UIViewController *controller = RCTPresentedViewController();
185+
[RCTUtilsUIOverride setPresentedViewController:controller];
169186

170187
dispatch_async(dispatch_get_main_queue(), ^{
171188
[Intercom presentHelpCenter];

0 commit comments

Comments
 (0)