File tree Expand file tree Collapse file tree 1 file changed +9
-14
lines changed
packages/react-on-rails/src Expand file tree Collapse file tree 1 file changed +9
-14
lines changed Original file line number Diff line number Diff line change @@ -58,19 +58,14 @@ function setupPageNavigationListeners(): void {
5858 }
5959}
6060
61- let isPageLifecycleInitialized = false ;
62- function initializePageEventListeners ( ) : void {
63- if ( typeof window === 'undefined' ) return ;
64-
65- if ( isPageLifecycleInitialized ) {
66- return ;
67- }
68- isPageLifecycleInitialized = true ;
69-
70- if ( document . readyState !== 'loading' ) {
71- setupPageNavigationListeners ( ) ;
61+ function onPageReady ( callback : ( ) => void ) {
62+ if ( document . readyState === 'complete' ) {
63+ callback ( ) ;
7264 } else {
73- document . addEventListener ( 'DOMContentLoaded' , setupPageNavigationListeners ) ;
65+ document . addEventListener ( 'readystatechange' , function onReadyStateChange ( ) {
66+ onPageReady ( callback ) ;
67+ document . removeEventListener ( 'readystatechange' , onReadyStateChange ) ;
68+ } ) ;
7469 }
7570}
7671
@@ -79,13 +74,13 @@ export function onPageLoaded(callback: PageLifecycleCallback): void {
7974 void callback ( ) ;
8075 }
8176 pageLoadedCallbacks . add ( callback ) ;
82- initializePageEventListeners ( ) ;
77+ onPageReady ( setupPageNavigationListeners ) ;
8378}
8479
8580export function onPageUnloaded ( callback : PageLifecycleCallback ) : void {
8681 if ( currentPageState === 'unload' ) {
8782 void callback ( ) ;
8883 }
8984 pageUnloadedCallbacks . add ( callback ) ;
90- initializePageEventListeners ( ) ;
85+ onPageReady ( setupPageNavigationListeners ) ;
9186}
You can’t perform that action at this time.
0 commit comments