* Add extension ability to add tray menu items.
Signed-off-by: Juho Heikka <juho.heikka@gmail.com>
* Add tray menu extension documentation
Signed-off-by: Juho Heikka <juho.heikka@gmail.com>
* Add tests to tray menu items. Fix autorun infinite loop.
Signed-off-by: Juho Heikka <juho.heikka@gmail.com>
* Fix documentation
Signed-off-by: Juho Heikka <juho.heikka@gmail.com>
* Remove unnecessary slice()
Signed-off-by: Juho Heikka <juho.heikka@gmail.com>
* Define a type for tray menu registration
Signed-off-by: Juho Heikka <juho.heikka@gmail.com>
* Change TrayMenuRegistration not to leak or depend on Electron Menu API
Signed-off-by: Juho Heikka <juho.heikka@gmail.com>
* Update trayMenus Extension API documentation
Signed-off-by: Juho Heikka <juho.heikka@gmail.com>
* Refactor all tests to use runInAction
Signed-off-by: Juho Heikka <juho.heikka@gmail.com>
* Show splash window until bundled extensions have been loaded
Signed-off-by: Juho Heikka <juho.heikka@gmail.com>
* Remove unnecessary variable.
Signed-off-by: Juho Heikka <juho.heikka@gmail.com>
* Refactor autoInitExtensions
Signed-off-by: Juho Heikka <juho.heikka@gmail.com>
* Add timeout to waiting for bundled extensions to load
Signed-off-by: Juho Heikka <juho.heikka@gmail.com>
Menu would bounce around in some cases because the
refreshPosition() would calculate different results
based on different state of the component and previous
render cycle CSS classes.
Also I found that the render function calls causes
in an infinite loop while open because of refreshPosition
will cause a state change which will rerender the function.
Fixed that with the shouldComponentUpdate which checks
if state has actually changed in between renders.
Signed-off-by: Juho Heikka <juho.heikka@gmail.com>