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"
108108 * removeItem(keyName) { delete this.storage[keyName] }
109109 * setItem(keyName, keyValue) { this.storage[keyName] = keyValue }
110110 * }
111+ *
112+ * @param {boolean } [opts.disableWindowEventListeners] - Boolean that determines if window event listeners should be active
113+ *
114+ * Defaults to false.
111115 *
112116*/
113117export default class Socket {
@@ -137,7 +141,8 @@ export default class Socket {
137141 this . decode = this . defaultDecoder
138142 }
139143 let awaitingConnectionOnPageShow = null
140- if ( phxWindow && phxWindow . addEventListener ) {
144+ this . disableWindowEventListeners = opts . disableWindowEventListeners || false
145+ if ( ! this . disableWindowEventListeners && phxWindow && phxWindow . addEventListener ) {
141146 phxWindow . addEventListener ( "pagehide" , _e => {
142147 if ( this . conn ) {
143148 this . disconnect ( )
Original file line number Diff line number Diff line change @@ -39,6 +39,7 @@ describe("with transports", function (){
3939 expect ( socket . longpollerTimeout ) . toBe ( 20000 )
4040 expect ( socket . heartbeatIntervalMs ) . toBe ( 30000 )
4141 expect ( socket . logger ) . toBeNull ( )
42+ expect ( socket . disableWindowEventListeners ) . toBe ( false )
4243 expect ( socket . binaryType ) . toBe ( "arraybuffer" )
4344 expect ( typeof socket . reconnectAfterMs ) . toBe ( "function" )
4445 } )
@@ -64,6 +65,7 @@ describe("with transports", function (){
6465 logger : customLogger ,
6566 reconnectAfterMs : customReconnect ,
6667 params : { one : "two" } ,
68+ disableWindowEventListeners : true
6769 } )
6870
6971 expect ( socket . timeout ) . toBe ( 40000 )
@@ -72,6 +74,7 @@ describe("with transports", function (){
7274 expect ( socket . transport ) . toBe ( customTransport )
7375 expect ( socket . logger ) . toBe ( customLogger )
7476 expect ( socket . params ( ) ) . toEqual ( { one : "two" } )
77+ expect ( socket . disableWindowEventListeners ) . toBe ( true )
7578 } )
7679
7780 describe ( "with Websocket" , function ( ) {
You can’t perform that action at this time.
0 commit comments