File tree Expand file tree Collapse file tree 2 files changed +9
-1
lines changed Expand file tree Collapse file tree 2 files changed +9
-1
lines changed Original file line number Diff line number Diff line change @@ -108,6 +108,10 @@ import Timer from "./timer"
108
108
* removeItem(keyName) { delete this.storage[keyName] }
109
109
* setItem(keyName, keyValue) { this.storage[keyName] = keyValue }
110
110
* }
111
+ *
112
+ * @param {boolean } [opts.disableWindowEventListeners] - Boolean that determines if window event listeners should be active
113
+ *
114
+ * Defaults to false.
111
115
*
112
116
*/
113
117
export default class Socket {
@@ -137,7 +141,8 @@ export default class Socket {
137
141
this . decode = this . defaultDecoder
138
142
}
139
143
let awaitingConnectionOnPageShow = null
140
- if ( phxWindow && phxWindow . addEventListener ) {
144
+ this . disableWindowEventListeners = opts . disableWindowEventListeners || false
145
+ if ( ! this . disableWindowEventListeners && phxWindow && phxWindow . addEventListener ) {
141
146
phxWindow . addEventListener ( "pagehide" , _e => {
142
147
if ( this . conn ) {
143
148
this . disconnect ( )
Original file line number Diff line number Diff line change @@ -39,6 +39,7 @@ describe("with transports", function (){
39
39
expect ( socket . longpollerTimeout ) . toBe ( 20000 )
40
40
expect ( socket . heartbeatIntervalMs ) . toBe ( 30000 )
41
41
expect ( socket . logger ) . toBeNull ( )
42
+ expect ( socket . disableWindowEventListeners ) . toBe ( false )
42
43
expect ( socket . binaryType ) . toBe ( "arraybuffer" )
43
44
expect ( typeof socket . reconnectAfterMs ) . toBe ( "function" )
44
45
} )
@@ -64,6 +65,7 @@ describe("with transports", function (){
64
65
logger : customLogger ,
65
66
reconnectAfterMs : customReconnect ,
66
67
params : { one : "two" } ,
68
+ disableWindowEventListeners : true
67
69
} )
68
70
69
71
expect ( socket . timeout ) . toBe ( 40000 )
@@ -72,6 +74,7 @@ describe("with transports", function (){
72
74
expect ( socket . transport ) . toBe ( customTransport )
73
75
expect ( socket . logger ) . toBe ( customLogger )
74
76
expect ( socket . params ( ) ) . toEqual ( { one : "two" } )
77
+ expect ( socket . disableWindowEventListeners ) . toBe ( true )
75
78
} )
76
79
77
80
describe ( "with Websocket" , function ( ) {
You can’t perform that action at this time.
0 commit comments