Replace blocking About dialog with custom modal BrowserWindow#477
Replace blocking About dialog with custom modal BrowserWindow#477Power-Maverick merged 4 commits intodevfrom
Conversation
The About dialog previously used dialog.showMessageBoxSync which is not modal relative to the main app window and can be hidden behind it. Now it sends a SHOW_ABOUT IPC event to the renderer which shows a custom BrowserWindow-based modal (same pattern as the update dialog) with version info, environment details, and a copy-to-clipboard button. Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/51cb116a-9705-4972-8e3b-242f5767550e
Bundle Size Report 📦
Bundle Analysis ReportsThe detailed bundle analysis reports are available in the workflow artifacts:
Download the artifacts from the workflow run to view interactive visualizations. Bundle size tracking is now active! This helps prevent bundle bloat. |
|
@copilot show the info notification that the text was copied when clicking the copy to clipboard; otherwise there is no feedback to the user. |
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/5b424552-b2fb-4bce-adb3-1893b210285a
Done in 99afac5. After the clipboard write succeeds, |
Bundle Size Report 📦
Bundle Analysis ReportsThe detailed bundle analysis reports are available in the workflow artifacts:
Download the artifacts from the workflow run to view interactive visualizations. Bundle size tracking is now active! This helps prevent bundle bloat. |
There was a problem hiding this comment.
Pull request overview
Replaces the blocking, non-app-modal native About dialog with a BrowserWindow-backed modal, aligning About UX with the existing modal framework used for update notifications and preventing main-process blocking.
Changes:
- Added new IPC channels (
EVENT_CHANNELS.SHOW_ABOUT,UTIL_CHANNELS.GET_ABOUT_INFO) and wired a newonShowAboutlistener through the preload + shared API types. - Updated the main process About flow to send version/system info to the renderer instead of calling
dialog.showMessageBoxSync(). - Introduced a new renderer modal implementation (
modals/about/*) and a management module to open it and handle copy-to-clipboard + notifications.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/renderer/modules/initialization.ts | Registers onShowAbout and opens the About modal with theme-aware rendering. |
| src/renderer/modules/aboutManagement.ts | Creates/shows the About BrowserWindow modal and handles copy events + success notification. |
| src/renderer/modals/about/view.ts | Renders the About modal HTML + styles (Environment/System/Diagnostics sections). |
| src/renderer/modals/about/controller.ts | Modal controller script for close/OK and copy-to-clipboard message emission. |
| src/main/preload.ts | Exposes onShowAbout and adds utils.getAboutInfo() binding. |
| src/main/index.ts | Implements GET_ABOUT_INFO handler and switches About menu action to SHOW_ABOUT event. |
| src/common/types/api.ts | Extends ToolboxAPI type with onShowAbout. |
| src/common/ipc/channels.ts | Adds the new util/event channel constants. |
…nused GET_ABOUT_INFO IPC Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/a4e390e5-c47b-4e65-b9a4-6e47ed1385d3
Bundle Size Report 📦
Bundle Analysis ReportsThe detailed bundle analysis reports are available in the workflow artifacts:
Download the artifacts from the workflow run to view interactive visualizations. Bundle size tracking is now active! This helps prevent bundle bloat. |
The About dialog used
dialog.showMessageBoxSync()— a native OS dialog that is not modal relative to the app window, can hide behind it, and blocks the main process while open.Replaces it with a custom BrowserWindow-based modal following the same pattern as the update notification dialog.
Changes
IPC plumbing — Added
SHOW_ABOUTevent channel; addedonShowAbouttoToolboxAPItype and preload. Removed unusedGET_ABOUT_INFOutil channel, its IPC handler, and preload exposure.Main process (
index.ts) —showAboutDialog()now mirrors thesendWhatsNewRequestpattern: captureswebContents, guards withisDestroyed(), and defers the send viaonce('did-finish-load', ...)when the renderer is still loading; removed unusedclipboardimportNew modal (
src/renderer/modals/about/) —view.tsrenders a styled panel with Environment, System, and Diagnostics sections;controller.tshandles close and copy-to-clipboard viamodalBridgeNew module (
src/renderer/modules/aboutManagement.ts) — builds and shows the modal BrowserWindow; handles the copy channel by callingtoolboxAPI.utils.copyToClipboardand shows a success notification ("Copied to Clipboard") as user feedback after the copy completesInitialization (
initialization.ts) — registersonShowAboutlistener to open the modal on menu triggerUse a meaningful title for the pull request.
Follow the guidelines from the CONTRIBUTING.md.
Mention the bug or the feature number the PR will be targeting.
Test the change in your own code. (Compile and run)
Resolve all GH Copilot comments.
Original prompt
📍 Connect Copilot coding agent with Jira, Azure Boards or Linear to delegate work to Copilot in one click without leaving your project management tool.