2019-09-25 12:32:52 -06:00
export const appListeners = ( app , state , emitter ) => {
2020-09-16 14:16:50 -06:00
emitter . on ( state . events . DOMCONTENTLOADED , ( ) => {
emitter . emit ( state . events . DOMTITLECHANGE , app . siteConfig . siteName ) ;
2020-09-16 14:00:45 -06:00
2019-09-25 12:32:52 -06:00
// Emitter listeners
2020-09-16 14:16:50 -06:00
emitter . on ( state . events . RENDER , callback => {
2019-09-25 12:32:52 -06:00
// This is a dirty hack to get the callback to call *after* re-rendering.
if ( callback && typeof callback === "function" ) {
setTimeout ( ( ) => {
callback ( ) ;
} , 50 ) ;
}
} ) ;
2020-09-16 14:16:50 -06:00
emitter . on ( state . events . SET _LANGUAGE , newLanguage => {
2019-09-25 12:32:52 -06:00
app . setSettingsItem ( 'lang' , newLanguage ) ;
state . language = newLanguage ;
2019-10-28 00:01:27 -06:00
state . i18n . fetchLocaleUI ( ) . then ( ( ) => {
2020-09-16 14:16:50 -06:00
emitter . emit ( state . events . RENDER ) ;
2019-10-28 00:01:27 -06:00
} ) ;
2019-09-25 12:32:52 -06:00
} ) ;
2019-09-26 12:56:28 -06:00
2019-10-28 00:01:27 -06:00
state . i18n . fetchLocaleUI ( ) . then ( ( ) => {
app . checkIfLoggedIn ( state ) . then ( isLoggedIn => {
2020-09-16 14:16:50 -06:00
emitter . emit ( state . events . RENDER ) ; // This should hopefully only run once after the DOM is loaded. It prevents routing issues where 'render' hasn't been defined yet
2019-10-28 00:01:27 -06:00
} ) ;
} )
2019-09-25 12:32:52 -06:00
} ) ;
}