You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
					
						
							4.5 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							4.5 KiB
						
					
					
				HomeView.vue Notification Migration
Migration Type: Notification Helpers Pattern
Component: src/views/HomeView.vue
Migration Date: 2025-07-07
Status: ✅ Complete
Overview
HomeView.vue has been migrated from legacy this.$notify() calls to the modern notification helpers pattern using createNotifyHelpers(). This standardizes notification patterns across the application and provides better type safety.
Changes Made
1. Added Imports
import { createNotifyHelpers, TIMEOUTS } from "@/utils/notify";
import {
  NOTIFY_CONTACT_LOADING_ISSUE,
  NOTIFY_FEED_LOADING_ISSUE,
  NOTIFY_CONFIRMATION_ERROR,
} from "@/constants/notifications";
2. Added Property Declaration
notify!: ReturnType<typeof createNotifyHelpers>;
3. Added Initialization in created()
created() {
  this.notify = createNotifyHelpers(this.$notify);
}
4. Migrated 8 Notification Calls
| Line | Old Pattern | New Pattern | Type | 
|---|---|---|---|
| 550 | this.$notify({group: "alert", type: "warning", title: "Contact Loading Issue", text: "Some contact information may be unavailable."}, 5000) | 
this.notify.warning(NOTIFY_CONTACT_LOADING_ISSUE.message, TIMEOUTS.LONG) | 
Warning | 
| 641 | this.$notify({group: "alert", type: "warning", title: "Feed Loading Issue", text: "Some feed data may be unavailable. Pull to refresh."}, 5000) | 
this.notify.warning(NOTIFY_FEED_LOADING_ISSUE.message, TIMEOUTS.LONG) | 
Warning | 
| 833 | this.$notify({group: "alert", type: "danger", title: "Error", text: userMessage || "There was an error loading your data. Please try refreshing the page."}, 5000) | 
this.notify.error(userMessage || "There was an error loading your data. Please try refreshing the page.", TIMEOUTS.LONG) | 
Error | 
| 1341 | this.$notify({group: "alert", type: "danger", title: "Feed Error", text: (e as FeedError)?.userMessage || "There was an error retrieving feed data."}, -1) | 
this.notify.error((e as FeedError)?.userMessage || "There was an error retrieving feed data.", TIMEOUTS.MODAL) | 
Error | 
| 1672 | this.$notify({group: "alert", type: "toast", title: "FYI", text: message}, 2000) | 
this.notify.toast("FYI", message, TIMEOUTS.SHORT) | 
Toast | 
| 1795 | this.$notify({group: "modal", type: "confirm", title: "Confirm", text: "Do you personally confirm that this is true?", onYes: async () => {...}}, -1) | 
this.notify.confirm("Do you personally confirm that this is true?", async () => {...}) | 
Confirm | 
| 1826 | this.$notify({group: "alert", type: "success", title: "Success", text: "Confirmation submitted."}, 3000) | 
this.notify.confirmationSubmitted() | 
Success | 
| 1840 | this.$notify({group: "alert", type: "danger", title: "Error", text: "There was a problem submitting the confirmation."}, 5000) | 
this.notify.error(NOTIFY_CONFIRMATION_ERROR.message, TIMEOUTS.LONG) | 
Error | 
Benefits Achieved
1. Consistency
- Standardized notification patterns across the application
 - Consistent timeout values using 
TIMEOUTSconstants 
2. Type Safety
- Full TypeScript support for notification helpers
 - Compile-time checking of notification parameters
 
3. Code Reduction
- Reduced verbose notification object creation by ~70%
 - Eliminated repetitive 
group,type,titleboilerplate 
4. Maintainability
- Centralized notification logic in helper functions
 - Easy to update notification behavior across all components
 
Examples
Before (Legacy Pattern)
this.$notify({
  group: "alert",
  type: "warning", 
  title: "Contact Loading Issue",
  text: "Some contact information may be unavailable."
}, 5000);
After (Modern Pattern)
this.notify.warning(
  NOTIFY_CONTACT_LOADING_ISSUE.message,
  TIMEOUTS.LONG
);
Validation
✅ No ESLint errors
✅ All this.$notify() calls replaced
✅ Proper timeout constants used
✅ Type safety maintained
Notes
- The legacy 
$notifyproperty declaration is kept for compatibility - Complex notifications (like confirmations) now use dedicated helper methods
 - All hardcoded timeout values replaced with semantic 
TIMEOUTSconstants 
Pattern for Future Migrations
This migration follows the established pattern used in:
src/views/ClaimView.vuesrc/views/AccountViewView.vuesrc/components/GiftedDialog.vuesrc/components/ActivityListItem.vuesrc/components/DataExportSection.vuesrc/components/ChoiceButtonDialog.vue
The pattern should be added to all component migrations going forward.