Commit Graph

157 Commits

Author SHA1 Message Date
Devin Binnie
f64e9ab048 [MM-62395] Don't attempt to set boundaries for a window that is no longer attached (#3278)
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-01-08 14:56:05 +00:00
Devin Binnie
8aa0b86c7a [MM-22555] Auto-fill server URLs when deep linking into the Desktop App and the server isn't configured (#3200)
* Allow deep linking to non-configured servers by auto filling the modal

* Fall back to base URL if URL with path name does not work

* Allow deep linking directly into a new server with a permalink

* Support welcome screen/no server case

* Some cleanup
2024-11-18 14:08:00 -05:00
Devin Binnie
1fe94eb167 Fixed issues with loading the app from cold when deep linking (#3201)
* Fixed issues with loading the app from cold when deep linking

* Don't call show() before the window is created on Windows
2024-11-13 10:46:32 -05:00
Devin Binnie
5fccd0f837 [MM-59823] Migrate BrowserView to WebContentsView (#3177)
* Migrate to WebContentsView from BrowserView

* A bit of cleanup, stop holding reference to the loading screen

* Fix tests

* Fix i18n

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-10-30 09:05:51 -04:00
Devin Binnie
6d37cc2dbb [MM-59483] Remove legacy preload and custom login code (#3174)
* Remove legacy preload script code

* Remove custom login code

* FIx i18n
2024-10-25 10:02:56 -04:00
Devin Binnie
14bb75eaed [MM-61271] Upgrade to Electron v33.0.2 (#3181)
* [MM-61271] Upgrade to Electron v33.0.2

* Fix node-abi

* Fix and patch nan
2024-10-25 09:35:13 -04:00
Devin Binnie
10295162e0 [MM-60086][MM-60610] Implement performanceMonitor, collect CPU/memory usage data and send via API (#3165)
* [MM-60086][MM-60610] Implement performanceMonitor, collect CPU/memory usage data and send via API

* Translations

* PR feedback

* Update api-types package
2024-10-18 10:13:39 -04:00
Pablo Vélez
da88b8643e MM-60782 - use default download directory on windows (#3161)
* MM-60782 - use default download directory on windows

* fix unit tests
2024-10-18 09:39:56 -04:00
Claudio Costa
071e9d32cc [MM-61040] Handle custom protocols in plugins popouts (#3166)
* Handle custom protocols in plugins popouts

* Improve
2024-10-14 08:16:40 -06:00
Claudio Costa
b03bb69a0d [MM-60226] Allow plugins to open blank popup windows (#3136)
* Allow plugins to open blank popup windows

* Simplify with arrow function method

* Handle console messages and render process exit

* Allow opening external links in browser

* Allow routing internal links

* Fix test failure

* Remove allow for potential returns
2024-09-18 09:11:44 -06:00
Devin Binnie
42a0bc4759 [MM-60308] Add a set of "Developer Mode" settings that allow the user to turn off systems or force the app to behave a certain way (#3144)
* Add developer mode manager, implement browser-only mode

* Add indicator when developer mode is enabled

* Add switch to disable notification storage

* Add setting to disable the user activity monitor

* Add switchOff method for easily creating switches to disable/enable functionality, added setting to disable context menu

* Add setting to force legacy API

* Add force new API to remove any support for legacy mode, fix i18n

* Fix lint

* Use one call to `push`
2024-09-18 10:02:20 -04:00
Devin Binnie
c9f671d82a [MM-59552] Remove unsafe-inline from internal CSP, replace with nonce and rework some dynamic styling (#3120)
* Remove unsafe-inline

* Fix dynamic dark mode loading

* Include nonce generator for CSP for styles

* Add nonce provider for react-select

* Fix test
2024-08-12 09:38:59 -04:00
Devin Binnie
a00cb4c814 [MM-59489] Change logged in tracking code for new API, check for / when navigating tabs (#3105)
* [MM-59489] Change logged in tracking code for new API, check for `/` when navigating tabs

* Better naming
2024-07-24 18:36:36 -04:00
Devin Binnie
080e4bf727 [MM-59543] Disallow use of file: protocol in the app, remove all references to it, add mattermost-desktop: protocol to read local files (#3095) 2024-07-18 16:01:44 -04:00
Devin Binnie
0d4800fd61 [MM-54863] Add permissions manager UI in Edit Server modal, improve permission checks to be less missable (#3059)
* [MM-54863] Add permissions manager UI in Edit Server modal, improve permission checks to be less missable

* Removing this for E2E (which was having issues anyways)

* PR feedback

* Disable permissions dialog for current E2E tests

* Fixed the dark mode CSS

* Update icon
2024-06-19 09:19:24 -04:00
Devin Binnie
bf07674d68 [MM-58593] Ensure desktop app reloads the current URL when reloading manually (#3061) 2024-06-13 09:03:10 -04:00
Devin Binnie
02704177c0 Move Settings Window into Modal (#3007)
* Move Settings Window into modal

* Re-add for E2E tests
2024-04-16 09:53:55 -04:00
Devin Binnie
e1c957e774 Various QoL fixes for Desktop App (#2999)
* Some ESLint fixes

* Add login/logout signal to API, clear mentions on logout and flush cookies on login/logout

* Fix issue where local and HTTP-only servers would not validate correctly

* Reduce noise of renderer logging, adjust a few local renderer logs to be louder when needed

* Fallback to beginning of hostname for servers that don't change the site name

* Fix Save Image crash

* Update the name for insecure servers too

* Fix test

* Fix lint

* Reduce repetition
2024-04-08 09:12:35 -04:00
Devin Binnie
da59e13477 Use .close() instead of the private .destroy() to stop leaking WebContents (#2990)
* Use `.close()` instead of the private `.destroy()` to stop leaking WebContents

* Fix tests
2024-03-22 12:26:51 -04:00
Devin Binnie
6d02c5a528 Some further ESLint cleanup, remove some unnecessary scripts and lines (#2984) 2024-03-18 14:46:12 -04:00
Devin Binnie
ab014c26a2 Stop constant reloading of BrowserViews for servers that are not available (#2980) 2024-03-13 08:53:07 -04:00
Devin Binnie
9b36c25e4e [MM-52696] Upgrade and clean up Desktop App dev dependencies (#2970)
* Upgrade to ESLint v8

* Upgrade TypeScript, api-types, react-intl

* Remove unnecessary dependencies

* Update to React 17.0.2

* npm audit fixes, remove storybook

* Lock some packages

* Remove nan patch

* Remove some deprecated dependencies

* Fix lint/type/tests

* Merge'd

* Fix bad use of spawn

* Fix notarize

* Fix afterpack, switch to tsc es2020

* Fix api types

* Use @mattermost/eslint-plugin
2024-03-07 15:55:33 -05:00
Devin Binnie
12d59cd81c [MM-48518] Include renderer logs in main log (#2969) 2024-03-06 09:42:34 -05:00
Devin Binnie
113fda79b1 Fixed a crash when the view loads for the first time (#2931) 2023-12-15 11:32:32 -05:00
Devin Binnie
0cab09b7f5 [MM-55152] Add new Desktop API endpoints, improve preload script, some clean-up (#2900)
* Add constants for app info, add to API

* Migrate history button

* Converted calls API over to context bridge, removed some unnecessary logging

* Convert to TS, add types for web app to consume

* Fix tests, prune

* Fix lint

* More changes to support the legacy API

* Force legacy code off, add support for unreads/mentions/expired through the API

* Fix issues with cross-tab login, removed need for log in/log out signalling

* Fixed test, typos

* Change package name for types

* Add some other stuff to the types

* PR feedback

* More feedback

* Use npm package

* Change types and API to provide off listeners

* Version number

* Lock

* Fix typo

* Add sessionID for calls
2023-12-13 09:39:46 -05:00
Devin Binnie
762324b596 [MM-55317] Force deep linking to use formatted path names when rewriting the URL (#2907)
* [MM-55317] Force deep linking to use formatted path names when rewriting the URL

* PR feedback
2023-11-10 10:48:26 -05:00
Devin Binnie
9c3febd4c9 [MM-53847] Expose isDev API to allow webapp to check if the app is in dev mode (#2800)
* [MM-53847] Expose isDev API to allow webapp to check if the app is in dev mode

* Fix test
2023-08-29 10:07:33 -04:00
Florian Apolloner
f581f439df Upgrade to Electron v26.1.0 (#2808)
* Upgrade to Electron v26.1.0

* Fix TS issues

---------

Co-authored-by: Devin Binnie <devin.binnie@mattermost.com>
2023-08-29 09:19:29 -04:00
Devin Binnie
0519a119d7 [MM-50536] Add workaround for Dev Tools not opening correctly on Mac (#2777) 2023-06-30 11:46:44 -04:00
Devin Binnie
21e3044ff2 [MM-52333] Create Server View State module, move into new app module (#2739)
* Create Server View State Module

* Move currentServerId to serverViewState

* Move view state into server view state module

* PR feedback/bug fixes
2023-06-12 08:35:14 -04:00
Devin Binnie
a7c25ee95e [MM-53056] Force a pathname when checking for deep links (#2748) 2023-06-07 11:16:04 -04:00
Devin Binnie
2ed851c2a4 [MM-52879] Fixed calls popout URL checking (#2725) 2023-05-18 12:58:05 -04:00
Devin Binnie
316beba950 [MM-14093] Rename 'team' to 'server' and 'tab' to 'view' in most cases, some additional cleanup (#2711)
* Rename MattermostTeam -> UniqueServer, MattermostTab -> UniqueView

* Rename 'team' to 'server'

* Some further cleanup

* Rename weirdly named function

* Rename 'tab' to 'view' in most instances

* Fix i18n

* PR feedback
2023-05-08 09:17:01 -04:00
Devin Binnie
c20088f6fa [MM-52625] Rework tray icon code into a class, make the behaviour of the tray icon consistent with the OS it's running on (#2708)
* Rework tray into a class, make click behaviour consistent

* Fix issue where app wouldn't switch to workspace where the app was visible

* Fixed an issue where the app would show the window with hideOnStart enabled

* Add comment about StatusIconLinuxDbus

* Fix tests
2023-05-04 09:21:50 -04:00
Devin Binnie
e227c6bf1d [MM-52587] Clean up URL utils, use isInternalURL when possible (#2702) 2023-05-03 08:48:41 -04:00
Devin Binnie
73edb2fe48 Fixed bad mention counts in the dropdown menu (#2687) 2023-04-21 16:57:44 -04:00
Devin Binnie
f4f4511cc7 Remove WindowManager, separate functionality into smaller modules (#2682)
* Move sendToRenderer to respective singletons

* Move to using ViewManager call for getting view by webContentsId

* Move show and create logic to main window, handle deep linking seperately

* Move resizing logic and event handing to mainWindow

* Move server switching logic to main/app

* Move tab switching logic to main/app, rely on showById for most usage

* Migrate remaining functions, remove windowManager objects, set up imports for self-contained singletons

* Fix E2E tests

* Update src/main/app/servers.ts

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>

---------

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2023-04-19 11:04:26 -04:00
Devin Binnie
a141d3cde4 Migrate downloads dropdown menus to singletons (#2680) 2023-04-18 09:14:18 -04:00
Devin Binnie
b71322a682 Migrate teamDropdownView to singleton (#2677) 2023-04-14 12:14:11 -04:00
Devin Binnie
1428ba694b Clean up appState module, move to common, simplify events (#2676)
* Refactor appState into class, simplify events

* Move appState to common module, make case for object consistent

* Naming change

* Update name
2023-04-14 12:09:33 -04:00
Devin Binnie
686b4ac9f1 [MM-50485] Migrate app to ServerManager, remove view names and replace with IDs (#2672)
* Migrate app to ServerManager, remove view names and replace with IDs

* Fixed a test

* Fixed a bug when adding the initial server

* Merge'd

* Bug fixes and PR feedback
2023-04-12 12:52:34 -04:00
Devin Binnie
661099dd28 [MM-51961] Migrate calls widget to singleton (#2667)
* Migrate callsWidgetWindow to singleton

* REVERT ME: removed references to ServerManager
2023-04-12 07:50:34 -04:00
Devin Binnie
741087cb55 Refactor config, move ipc calls to app module, some cleanup (#2669) 2023-04-06 11:24:57 -04:00
Devin Binnie
88eb2e2c70 [MM-51964] Clean up MattermostView, remove tuple in preparation for id (#2668)
undefined
2023-04-06 11:17:33 -04:00
Devin Binnie
53fb8c8fd3 [MM-50485] Implement ServerManager, introduce id concept for identifying servers/views (#2654)
* Implement ServerManager, introduce id concept for identifying servers/views

* REVERT ME (eventually): Move back to old logging

* PR feedback

* PR feedback

* Revert "REVERT ME (eventually): Move back to old logging"

This reverts commit 46954a5bbed4dd29e89ca9d5217bb75af2837bb3.

* Merge'd

* Use the correct method for Logger in ServerManager
2023-04-05 16:30:50 -04:00
Devin Binnie
862287edff Migrate viewManager to singleton (#2656) 2023-04-05 13:01:09 -04:00
Devin Binnie
245215c678 [MM-51873] Create central logging module for adding prefixes to differentiate logs between modules (#2652)
* Create central logging module for adding prefixes to differentiate logs between modules

* Turn logger into class

* Merge'd

* Rework to use class more intelligently

* Fix modalView

* Fix webContentEvents

* Update src/main/app/intercom.ts

Co-authored-by: Daniel Espino García <larkox@gmail.com>

* Shorten prefixes on object creation

---------

Co-authored-by: Daniel Espino García <larkox@gmail.com>
2023-04-05 12:09:56 -04:00
Devin Binnie
39150137b6 [MM-51874] Migrate loading screen to singleton (#2655)
* Migrate loadingScreen to singleton

* REVERT ME when MainWindow singleton changes are merged

* Revert "REVERT ME when MainWindow singleton changes are merged"

This reverts commit 2de5520117b9aefb8eeb161d493de7cb275f7a5b.
2023-04-04 11:49:40 -04:00
Devin Binnie
22ec280945 [MM-51871] Migrate mainWindow and settingsWindow to singletons (#2650)
* Migrate mainWindow to singleton

* Migrate settingsWindow to singleton

* PR feedback

* Missed a couple unwrapping cases
2023-04-04 10:01:40 -04:00
Devin Binnie
37e7fb1100 [MM-51406] Check for other server URLs when trying to navigate (#2616) 2023-03-15 09:08:33 -04:00