refactor(notification-macos): reorganize Swift file structure for better maintainability #2718
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
refactor(notification-macos): reorganize Swift file structure for maintainability
Summary
Refactors the Swift notification code in
crates/notification-macos/swift-lib/src/by splitting the monolithicNotificationManager+Helpers.swift(675 lines) into focused, single-responsibility extension files:NotificationManager+Layout.swiftNotificationManager+Creation.swiftNotificationManager+CompactView.swiftNotificationManager+ExpandedView.swiftNotificationManager+Animation.swiftNotificationManager+MouseTracking.swiftNotificationManager+Lifecycle.swiftAlso extracted button classes (
CloseButton,ActionButton,DetailsButton) fromNotificationViews.swiftintoNotificationButtons.swift.This is a pure refactoring with no functional changes - the diff shows 873 insertions and 872 deletions (essentially 1:1 code movement).
Review & Testing Checklist for Human
Recommended test plan: Build and run the desktop app on macOS, trigger a notification, and verify:
Notes
repositionNotificationsmethod was consolidated from two similar methods into one with ananimated: Boolparameter - this is the only minor logic change