Time Tracking Integration: Add mandatory timing steps and performance analysis
Performance Targets: Include realistic complexity-based duration estimates
Quality Gates: Require time data in commits and performance comparison
Project Estimates: Update to 2-3 weeks based on actual performance data
Time: 15 minutes | Complexity: Simple | Issues: None
Testing: Manual | Validation: Template review complete
Time Tracking Integration: Add mandatory timing steps and performance analysis
Performance Targets: Include realistic complexity-based duration estimates
Quality Gates: Require time data in commits and performance comparison
Project Estimates: Update to 2-3 weeks based on actual performance data
Time: 15 minutes | Complexity: Simple | Issues: None
Testing: Manual | Validation: Template review complete
Apply full database migration (databaseUtil → PlatformServiceMixin), replace
raw SQL with service methods, migrate 3 notifications to helper methods.
Preserve 1 complex modal for advanced routing features while extracting
all literal strings to NOTIFY_CAMERA_SHARE_METHOD constant.
Add computed properties (offerTabClasses, projectTabClasses) to streamline
template logic and comprehensive JSDoc documentation for all methods.
Update migration templates to mandate literal extraction from complex modals.
ProjectsView.vue now appropriately incomplete: helper methods for simple
notifications, raw $notify preserved only where advanced features required.
Apply full database migration (databaseUtil → PlatformServiceMixin), replace
raw SQL with service methods, migrate 3 notifications to helper methods.
Preserve 1 complex modal for advanced routing features while extracting
all literal strings to NOTIFY_CAMERA_SHARE_METHOD constant.
Add computed properties (offerTabClasses, projectTabClasses) to streamline
template logic and comprehensive JSDoc documentation for all methods.
Update migration templates to mandate literal extraction from complex modals.
ProjectsView.vue now appropriately incomplete: helper methods for simple
notifications, raw $notify preserved only where advanced features required.
- Human testing confirmed UserProfileView.vue works correctly
- Updated testing tracker with 21 complete migrations (88% success)
- Added ImportAccountView.vue to ready-for-testing list
- Migration progress: 4 components human tested, 17 ready for testing
- Human testing confirmed UserProfileView.vue works correctly
- Updated testing tracker with 21 complete migrations (88% success)
- Added ImportAccountView.vue to ready-for-testing list
- Migration progress: 4 components human tested, 17 ready for testing
- Add NOTIFY_CONTACT_LOADING_ISSUE, NOTIFY_FEED_LOADING_ISSUE, and NOTIFY_CONFIRMATION_ERROR constants to notifications.ts
- Update HomeView.vue to import and use notification constants instead of literal strings
- Update migration templates to document constants vs literal strings pattern
- Add comprehensive documentation for notification constants usage
Ensures consistency with established pattern used in ActivityListItem.vue and other migrated components. Linter passes without errors.
- Add NOTIFY_CONTACT_LOADING_ISSUE, NOTIFY_FEED_LOADING_ISSUE, and NOTIFY_CONFIRMATION_ERROR constants to notifications.ts
- Update HomeView.vue to import and use notification constants instead of literal strings
- Update migration templates to document constants vs literal strings pattern
- Add comprehensive documentation for notification constants usage
Ensures consistency with established pattern used in ActivityListItem.vue and other migrated components. Linter passes without errors.
Add notify helper property and initialize in created() with createNotifyHelpers(this.$notify)
Replace direct $notify call in open() with this.notify.confirm(...) and use TIMEOUTS.MODAL for duration
Remove unused NotificationIface import
Add $notify property for Vue runtime injection to satisfy type checker
Ensure all notification usage is consistent with project best practices
This ensures maintainable, type-safe, and consistent notification handling in the ChoiceButtonDialog component.
Add notify helper property and initialize in created() with createNotifyHelpers(this.$notify)
Replace direct $notify call in open() with this.notify.confirm(...) and use TIMEOUTS.MODAL for duration
Remove unused NotificationIface import
Add $notify property for Vue runtime injection to satisfy type checker
Ensure all notification usage is consistent with project best practices
This ensures maintainable, type-safe, and consistent notification handling in the ChoiceButtonDialog component.
Move all user-facing notification messages to src/constants/notifications.ts
Use TIMEOUTS constants from src/utils/notify.ts for all notification durations
Refactor ActivityListItem.vue:
Use notification message and duration constants
Initialize notify helper in created() with createNotifyHelpers(this.$notify)
Add $notify property for Vue runtime injection to satisfy type checker
Use type guards or 'as any' for unknown notification payloads
Wrap notifyWhyCannotConfirm calls to match expected function signature
Fix type import for GiveRecordWithContactInfo
Add 'Notification Best Practices and Nuances' section to migration-progress-tracker.md:
Document message/duration constants, notify helper pattern, type safety, and wrapper function usage
Remove all hardcoded notification strings and durations from components
Move all user-facing notification messages to src/constants/notifications.ts
Use TIMEOUTS constants from src/utils/notify.ts for all notification durations
Refactor ActivityListItem.vue:
Use notification message and duration constants
Initialize notify helper in created() with createNotifyHelpers(this.$notify)
Add $notify property for Vue runtime injection to satisfy type checker
Use type guards or 'as any' for unknown notification payloads
Wrap notifyWhyCannotConfirm calls to match expected function signature
Fix type import for GiveRecordWithContactInfo
Add 'Notification Best Practices and Nuances' section to migration-progress-tracker.md:
Document message/duration constants, notify helper pattern, type safety, and wrapper function usage
Remove all hardcoded notification strings and durations from components
- Refactor notify usage in GiftedDialog.vue, AccountViewView.vue, ClaimView.vue, and DataExportSection.vue:
• Use notify as a property initialized in created() with createNotifyHelpers(this.$notify)
• Remove getter-based notify patterns for consistency and lifecycle safety
• Fix linter/type errors related to notify property initialization
- Add mandatory per-file migration workflow to doc/migration-progress-tracker.md:
• For each file: (1) migrate to PlatformServiceMixin, (2) immediately standardize notify usage and fix linter/type errors
• Clarifies this two-step process is required for every file, not as a global sweep
All migrated files are now consistent, maintainable, and ready for further migration work.
- Refactor notify usage in GiftedDialog.vue, AccountViewView.vue, ClaimView.vue, and DataExportSection.vue:
• Use notify as a property initialized in created() with createNotifyHelpers(this.$notify)
• Remove getter-based notify patterns for consistency and lifecycle safety
• Fix linter/type errors related to notify property initialization
- Add mandatory per-file migration workflow to doc/migration-progress-tracker.md:
• For each file: (1) migrate to PlatformServiceMixin, (2) immediately standardize notify usage and fix linter/type errors
• Clarifies this two-step process is required for every file, not as a global sweep
All migrated files are now consistent, maintainable, and ready for further migration work.
- Added ref="userNameDialog" to UserNameDialog in AccountViewView.vue template
- Patched onEditName() to check for dialog ref and open() method before calling
- Improved error notification to use NotificationIface fields (group, type, title, text)
- Prevents "Cannot read properties of undefined (reading 'open')" error if dialog is missing
- Added ref="userNameDialog" to UserNameDialog in AccountViewView.vue template
- Patched onEditName() to check for dialog ref and open() method before calling
- Improved error notification to use NotificationIface fields (group, type, title, text)
- Prevents "Cannot read properties of undefined (reading 'open')" error if dialog is missing
- Removed all vestigial Dexie/USE_DEXIE_DB references from code and docs
- Centralized DB logic in PlatformServiceMixin; resolved logger/databaseUtil circular dependency
- Modularized SQL helpers (`$generateInsertStatement`, `$generateUpdateStatement`) and added unit tests
- Created/updated migration tracking docs and helper script for cross-machine progress
- Confirmed all lint/type checks and tests pass; ready for systematic file migration
- Removed all vestigial Dexie/USE_DEXIE_DB references from code and docs
- Centralized DB logic in PlatformServiceMixin; resolved logger/databaseUtil circular dependency
- Modularized SQL helpers (`$generateInsertStatement`, `$generateUpdateStatement`) and added unit tests
- Created/updated migration tracking docs and helper script for cross-machine progress
- Confirmed all lint/type checks and tests pass; ready for systematic file migration