- 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.
5.4 KiB
Mixed Pattern Files Compliance Analysis
Executive Summary
Three Vue components have been identified as using mixed patterns - they implement PlatformServiceMixin but still contain legacy code patterns that need to be migrated to achieve full compliance.
Files requiring completion:
src/views/HomeView.vue- Legacy logging (9 calls)src/views/DIDView.vue- Legacy database utilities (2 calls)src/views/ContactsView.vue- Legacy logging (7 calls)
Total legacy patterns: 18 method calls across 3 files
File-by-File Analysis
1. HomeView.vue (1877 lines)
Current Status: Mixed Pattern - Uses PlatformServiceMixin but has legacy logging
Migration Required:
- Legacy Import:
import { logConsoleAndDb } from "../db/index";(line 292) - Legacy Calls: 9 instances of
logConsoleAndDb()usage
Specific Changes Needed:
- Remove legacy import:
// REMOVE THIS LINE:
import { logConsoleAndDb } from "../db/index";
- Replace logging calls:
// REPLACE ALL INSTANCES:
logConsoleAndDb(`[HomeView] Failed to retrieve DIDs: ${error}`, true);
// WITH:
this.$logAndConsole(`[HomeView] Failed to retrieve DIDs: ${error}`, true);
All affected lines:
- Line 488:
logConsoleAndDb(\[HomeView] Failed to retrieve DIDs: ${error}`, true);` - Line 501:
logConsoleAndDb(\[HomeView] Created new identity: ${newDid}`);` - Line 504:
logConsoleAndDb(\[HomeView] Failed to create new identity: ${error}`, true);` - Line 521:
logConsoleAndDb(\[HomeView] Failed to retrieve settings: ${error}`, true);` - Line 542:
logConsoleAndDb(\[HomeView] Failed to retrieve contacts: ${error}`, true);` - Line 593:
logConsoleAndDb(\[HomeView] Registration check failed: ${error}`, true);` - Line 605:
logConsoleAndDb(\[HomeView] Background feed update failed: ${error}`, true);` - Line 634:
logConsoleAndDb(\[HomeView] Failed to initialize feed/offers: ${error}`, true);` - Line 826: Additional logConsoleAndDb call
Complexity: Medium - Contains complex initialization logic and error handling
2. DIDView.vue (940 lines)
Current Status: Mixed Pattern - Uses PlatformServiceMixin but has legacy database utilities
Migration Required:
- Legacy Import:
import * as databaseUtil from "../db/databaseUtil";(line 268) - Legacy Calls: 2 instances of
databaseUtilmethod usage
Specific Changes Needed:
- Remove legacy import:
// REMOVE THIS LINE:
import * as databaseUtil from "../db/databaseUtil";
- Replace database utility calls:
// Line 357: REPLACE:
const settings = await databaseUtil.retrieveSettingsForActiveAccount();
// WITH:
const settings = await this.$accountSettings();
// Line 408: REPLACE:
const contacts = databaseUtil.mapQueryResultToValues(dbContacts) as unknown as Contact[];
// WITH:
const contacts = this.$mapQueryResultToValues(dbContacts) as unknown as Contact[];
Complexity: Low - Only 2 method calls to replace
3. ContactsView.vue (1538 lines)
Current Status: Mixed Pattern - Uses PlatformServiceMixin but has legacy logging
Migration Required:
- Legacy Import:
import { logConsoleAndDb } from "../db/index";(line 277) - Legacy Calls: 7 instances of
logConsoleAndDb()usage
Specific Changes Needed:
- Remove legacy import:
// REMOVE THIS LINE:
import { logConsoleAndDb } from "../db/index";
- Replace logging calls:
// REPLACE ALL INSTANCES:
logConsoleAndDb(fullError, true);
// WITH:
this.$logAndConsole(fullError, true);
All affected lines:
- Line 731:
logConsoleAndDb(fullError, true); - Line 820:
logConsoleAndDb(fullError, true); - Line 885:
logConsoleAndDb(fullError, true); - Line 981:
logConsoleAndDb(fullError, true); - Line 1037:
logConsoleAndDb(fullError, true); - Line 1223:
logConsoleAndDb(fullError, true); - Line 1372:
logConsoleAndDb(...);
Complexity: Medium - Large file with multiple error handling contexts
Migration Priority
Recommended Order:
- DIDView.vue (Lowest complexity - 2 calls only)
- ContactsView.vue (Medium complexity - 7 calls, all similar pattern)
- HomeView.vue (Highest complexity - 9 calls, complex initialization logic)
Post-Migration Validation
After completing each file migration:
- Remove legacy imports ✓
- Replace all legacy method calls ✓
- Verify no linter errors ✓
- Run validation script ✓ (should show as "Technically Compliant")
- Create human testing guide ✓
- Conduct user acceptance testing ✓
Security Considerations
- Error Handling: Ensure all error contexts maintain proper logging
- Data Access: Verify database operations maintain security patterns
- Type Safety: Maintain TypeScript type safety during migration
- Platform Compatibility: Ensure changes work across all platforms
Completion Impact
Before Migration:
- Mixed Pattern Files: 3
- Legacy Method Calls: 18
- Compliance Rate: 83% (78/94 components)
After Migration:
- Mixed Pattern Files: 0
- Legacy Method Calls: 0
- Compliance Rate: 100% (94/94 components)
Next Steps
- Begin with DIDView.vue (simplest migration)
- Test thoroughly on each platform
- Proceed to ContactsView.vue and HomeView.vue
- Update migration documentation with completion status
- Run full validation suite
Document Version: 1.0 Last Updated: $(date) Author: Migration Analysis System