aboutsummaryrefslogtreecommitdiffstats
path: root/packages/main/src/initReactions.ts
Commit message (Collapse)AuthorAge
* feat(service-preload): Embed service-injectLibravatar Kristóf Marussy2022-05-16
| | | | | | | | Embed the service-inject script into the service-preload script to avoid having to load it manually and reduce IPC communication when a service loads. Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* refactor: Use i18next for language resolutionLibravatar Kristóf Marussy2022-05-16
| | | | | | | | | | | | | | | | | | | Due to https://github.com/i18next/i18next/issues/1564 we still have to implement our own language resolution, but we can rely on resolvedLanguage to determine which language to pass through to the renderer. We will use the language detected by chromium as the system locale, so there is no need to use os-locale for detection any more. We use i18next in the main process do resolve the language, then set the resolve (not requested!) language in the renderer process to avoid doing resolution twice. This avoids the need in the renderer process to know the list of supported languages. We set the language and the writing direction in HTML in the renderer. Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* feat(main): Language setting in config fileLibravatar Kristóf Marussy2022-05-16
| | | | | | | | | | | | | | | Load localization according to either the environment or the configuration file from the list of supported locales. Ideally, we would also set the chromium locale with --lang, but by the time we have read the config file (to known which locale to set), electron has already initialized the chromium resource bundle. So the chromium localization will always be auto-detected by chromium. Also makes startup hopefully a bit faster by doing more things concurrently while the localization and the main window is being loaded. Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* feat(main): Add localization supportLibravatar Kristóf Marussy2022-05-16
| | | | | | | | | | | | | | | | Add i18next with a custom backend to the main process to load localization from file. Missing localizations are written to a missing localizations file in debug mode, but silently fall back in production mode. We will also need to add a custom backend for the renderer process that communicates with the main process. (i18next-fs-electron-backend is not applicable here, because we need localizations both in the main and renderer processes.) Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* feat: Add custom menubarLibravatar Kristóf Marussy2022-05-16
| | | | | | | | | | | The menu is populated reactive from the store with no caching. This doesn't seem to cause any performance problems so far. Currently the menu is electron-specific. In the future, we'll need a more runtime-independent way to build the menu. Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* feat: Load and switch servicesLibravatar Kristóf Marussy2022-02-14
| | | | Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* refactor: Extract resource path managementLibravatar Kristóf Marussy2022-02-08
| | | | | | | Lets us access absolute paths and URLs without directly calling node APIs. Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* refactor: Extract config handlingLibravatar Kristóf Marussy2022-02-08
| | | | | | | Move the handling of the contents of the config file out of the stores and into dedicated files to simplify the code of the stores. Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* refactor: Coding conventionsLibravatar Kristóf Marussy2022-02-08
Make sure that files have a default import with the same name as the file whenever possible to reduce surprise. Also shuffles around some file names for better legibility. Signed-off-by: Kristóf Marussy <kristof@marussy.com>