@@ -9,6 +9,7 @@ export default class GleapFrameManager {
9
9
frameURL = "https://frame.gleap.io" ;
10
10
markerManager = undefined ;
11
11
escListener = undefined ;
12
+ frameHeight = 0 ;
12
13
13
14
// GleapFrameManager singleton
14
15
static instance ;
@@ -56,7 +57,7 @@ export default class GleapFrameManager {
56
57
57
58
var elem = document . createElement ( "div" ) ;
58
59
elem . className = "gleap-frame-container gleap-frame-container--hidden gleap-hidden" ;
59
- elem . innerHTML = `<div class="gleap-frame-container-inner"><iframe src="${ this . frameURL } " class="gleap-frame" scrolling="no " title="Gleap Widget Window" allow="autoplay; encrypted-media; fullscreen;" frameborder="0"></iframe></div>` ;
60
+ elem . innerHTML = `<div class="gleap-frame-container-inner"><iframe src="${ this . frameURL } " class="gleap-frame" scrolling="yes " title="Gleap Widget Window" allow="autoplay; encrypted-media; fullscreen;" frameborder="0"></iframe></div>` ;
60
61
document . body . appendChild ( elem ) ;
61
62
62
63
this . gleapFrameContainer = elem ;
@@ -166,7 +167,23 @@ export default class GleapFrameManager {
166
167
} ) ;
167
168
}
168
169
170
+ calculateFrameHeight ( ) {
171
+ if ( this . gleapFrameContainer ) {
172
+ const flowConfig = GleapConfigManager . getInstance ( ) . getFlowConfig ( ) ;
173
+ var bottomOffset = 40 ;
174
+ if ( flowConfig . feedbackButtonPosition === GleapFeedbackButtonManager . FEEDBACK_BUTTON_BOTTOM_LEFT || flowConfig . feedbackButtonPosition === GleapFeedbackButtonManager . FEEDBACK_BUTTON_BOTTOM_RIGHT ) {
175
+ bottomOffset = 115 ;
176
+ }
177
+ var newMaxHeight = Math . min ( this . frameHeight , ( window . innerHeight - bottomOffset ) ) ;
178
+ this . gleapFrameContainer . style . maxHeight = newMaxHeight + "px" ;
179
+ }
180
+ }
181
+
169
182
startCommunication ( ) {
183
+ window . addEventListener ( 'resize' , ( event ) => {
184
+ this . calculateFrameHeight ( ) ;
185
+ } , true ) ;
186
+
170
187
// Listen for messages.
171
188
this . addMessageListener ( ( data ) => {
172
189
if ( data . name === "ping" ) {
@@ -180,7 +197,8 @@ export default class GleapFrameManager {
180
197
}
181
198
182
199
if ( data . name === "height-update" ) {
183
- this . gleapFrameContainer . style . maxHeight = data . data + "px" ;
200
+ this . frameHeight = data . data ;
201
+ this . calculateFrameHeight ( ) ;
184
202
}
185
203
186
204
if ( data . name === "notify-event" ) {
0 commit comments