2022-12-01 13:07:23 +01:00
import appContext from "./components/app_context.js" ;
2018-12-29 10:04:59 +01:00
import utils from './services/utils.js' ;
import noteTooltipService from './services/note_tooltip.js' ;
2020-04-12 14:22:51 +02:00
import bundleService from "./services/bundle.js" ;
2024-07-27 12:05:24 +03:00
import toastService from "./services/toast.js" ;
2018-12-29 10:04:59 +01:00
import noteAutocompleteService from './services/note_autocomplete.js' ;
2019-01-09 22:08:24 +01:00
import macInit from './services/mac_init.js' ;
2023-05-07 10:43:51 +02:00
import electronContextMenu from "./menus/electron_context_menu.js" ;
2021-03-21 23:05:31 +01:00
import DesktopLayout from "./layouts/desktop_layout.js" ;
2020-04-12 14:22:51 +02:00
import glob from "./services/glob.js" ;
2022-11-22 23:53:08 +01:00
bundleService . getWidgetBundlesByParent ( ) . then ( widgetBundles => {
2024-07-27 12:05:24 +03:00
appContext . setLayout ( new DesktopLayout ( widgetBundles ) ) ;
appContext . start ( )
. catch ( ( e ) => {
toastService . showPersistent ( {
title : "Critical error" ,
icon : "alert" ,
message : ` A critical error has occurred which prevents the client application from starting: \n \n ${ e . message } \n \n This is most likely caused by a script failing in an unexpected way. Try starting the application in safe mode and addressing the issue. ` ,
} ) ;
console . error ( "Critical error occured" , e ) ;
} ) ;
2022-11-22 23:53:08 +01:00
} ) ;
2020-04-12 14:22:51 +02:00
glob . setupGlobs ( ) ;
2018-03-24 11:18:46 -04:00
2018-03-26 22:29:14 -04:00
if ( utils . isElectron ( ) ) {
2023-05-07 10:43:51 +02:00
utils . dynamicRequire ( 'electron' ) . ipcRenderer . on ( 'globalShortcut' ,
async ( event , actionName ) => appContext . triggerCommand ( actionName ) ) ;
2018-03-26 22:29:14 -04:00
}
2018-03-25 22:37:02 -04:00
2020-02-14 20:18:09 +01:00
macInit . init ( ) ;
2019-01-25 22:18:34 +01:00
2018-12-22 20:57:09 +01:00
noteTooltipService . setupGlobalTooltip ( ) ;
2018-03-26 22:29:14 -04:00
2020-02-28 22:07:08 +01:00
noteAutocompleteService . init ( ) ;
if ( utils . isElectron ( ) ) {
2023-05-07 10:43:51 +02:00
electronContextMenu . setupContextMenu ( ) ;
2020-05-11 20:08:55 +02:00
}