- Complete ContactGiftingView, ContactQRScanShowView migrations
- Complete OfferDetailsView, ShareMyContactInfoView from Batch 5
- Ensure all components from Batches 3-6 are properly migrated
- Add consistent migration comments for future reference
This commit completes the migration of components that were
started in previous batches but not fully committed.
- Eliminate all remaining any types in Priority 2 components (activity, gifts, usage limits, QR scanning, discovery, meetings)
- Implement proper TypeScript types using existing interfaces (GiveActionClaim, EndorserRateLimits, ImageRateLimits)
- Replace any types with unknown + proper type guards for error handling
- Fix type assertions for external library integrations (QR scanning, mapping)
- Maintain backward compatibility while improving type safety
Resolves 7 Priority 2 type safety warnings, achieving 100% type safety for critical user-facing functionality.
- Remove unused loadSettings() method (functionality moved to initializeIdentity)
- Remove unused checkRegistrationStatus() method (functionality moved to initializeIdentity)
- Deduplicate ensureCorrectApiServer() calls (now only called once in initializeIdentity)
- Clean up import statement formatting for NOTIFY_CONTACT_LOADING_ISSUE
Reduces code complexity by eliminating 66 lines of dead code while maintaining
all existing functionality. Improves maintainability by consolidating initialization
logic into a single method.
- Replace CSV QR value copying with URL generation for better UX
- Add generateEndorserJwtUrlForAccount import and Account type
- Implement proper error handling for URL generation failures
- Maintain consistency with ContactQRScanFullView behavior
- Add documentation for the URL solution implementation
Recipients can now click shared URLs to add contacts directly instead of
manually pasting CSV data into input fields.
addresses: https://app.clickup.com/t/86b63xhz4
- Fix navigation to use correct QR code routes (contact-qr/contact-qr-scan-full)
- Replace deep link generation with CSV format QR codes
- Remove unused imports and fix notification method calls
- Aligns with master branch behavior for contact sharing
Resolves issue where Share Your Info showed "not implemented" and generated
localhost deep links instead of proper CSV format QR codes.
Replace databaseUtil parseJsonField imports with PlatformServiceMixin
_parseJsonField method in ContactQRScanFullView.vue and ContactQRScanShowView.vue.
Use type assertion for mixin method access. Maintains functionality while
removing static databaseUtil dependency.
Replace databaseUtil parseJsonField imports with PlatformServiceMixin
_parseJsonField method in ContactQRScanFullView.vue and ContactQRScanShowView.vue.
Use type assertion for mixin method access. Maintains functionality while
removing static databaseUtil dependency.
- Replace databaseUtil calls with PlatformServiceMixin for settings operations
- Extract toggleAlpha/Group/Community/Verifiable/Governance/Basics methods
- Add copyBitcoinAddress method with clipboard feedback
- Enhance onboarding reset with error handling and logging
- Human tested: all help sections, clipboard ops, platform navigation work
- 6 minutes (3x faster than estimate), technically compliant
- Replace databaseUtil calls with PlatformServiceMixin for settings operations
- Extract toggleAlpha/Group/Community/Verifiable/Governance/Basics methods
- Add copyBitcoinAddress method with clipboard feedback
- Enhance onboarding reset with error handling and logging
- Human tested: all help sections, clipboard ops, platform navigation work
- 6 minutes (3x faster than estimate), technically compliant
Add comprehensive guidance to prevent common migration oversights:
- Remove unused notification imports
- Replace hardcoded timeout values with constants
- Remove legacy wrapper functions
- Extract long class attributes to computed properties
- Replace literal strings with constants
Based on lessons learned from ContactQRScanShowView.vue migration.
Includes validation commands and specific examples for each pattern.
Add comprehensive guidance to prevent common migration oversights:
- Remove unused notification imports
- Replace hardcoded timeout values with constants
- Remove legacy wrapper functions
- Extract long class attributes to computed properties
- Replace literal strings with constants
Based on lessons learned from ContactQRScanShowView.vue migration.
Includes validation commands and specific examples for each pattern.
- Restore runMigrations functionality for database schema migrations
- Remove indexedDBMigrationService.ts (was for IndexedDB to SQLite migration)
- Recreate migrationService.ts and db-sql/migration.ts for schema management
- Add proper TypeScript error handling with type guards in AccountViewView
- Fix CreateAndSubmitClaimResult property access in QuickActionBvcBeginView
- Remove LeafletMouseEvent from Vue components array (it's a type, not component)
- Add null check for UserNameDialog callback to prevent undefined assignment
- Implement extractErrorMessage helper function for consistent error handling
- Update router to remove database-migration route
The migration system now properly handles database schema evolution
across app versions, while the IndexedDB to SQLite migration service
has been removed as it was specific to that one-time migration.
- Restore runMigrations functionality for database schema migrations
- Remove indexedDBMigrationService.ts (was for IndexedDB to SQLite migration)
- Recreate migrationService.ts and db-sql/migration.ts for schema management
- Add proper TypeScript error handling with type guards in AccountViewView
- Fix CreateAndSubmitClaimResult property access in QuickActionBvcBeginView
- Remove LeafletMouseEvent from Vue components array (it's a type, not component)
- Add null check for UserNameDialog callback to prevent undefined assignment
- Implement extractErrorMessage helper function for consistent error handling
- Update router to remove database-migration route
The migration system now properly handles database schema evolution
across app versions, while the IndexedDB to SQLite migration service
has been removed as it was specific to that one-time migration.
- Break long CSS class strings into multiple concatenated lines
- Ensure all lines are under 100 characters for better readability
- Maintain same functionality and styling behavior
- Improve code maintainability and readability
Fixes: Long lines in conditional CSS class assignment
- Break long CSS class strings into multiple concatenated lines
- Ensure all lines are under 100 characters for better readability
- Maintain same functionality and styling behavior
- Improve code maintainability and readability
Fixes: Long lines in conditional CSS class assignment
- Add platform-agnostic parseJsonField utility for contactMethods handling
- Update contact export functions (contactsToExportJson, contactToCsvLine)
- Fix contact storage in QR scan views (ContactQRScanShowView, ContactQRScanFullView)
- Ensure consistent JSON string storage across web SQLite and Capacitor SQLite
- Prevents "[object Object] is not valid JSON" errors when switching platforms
- Maintains compatibility between auto-parsing web SQLite and raw string Capacitor SQLite
Fixes: contactMethods parsing errors in export and QR scan functionality
Related: searchBoxes field had similar issue (already fixed)
- Add platform-agnostic parseJsonField utility for contactMethods handling
- Update contact export functions (contactsToExportJson, contactToCsvLine)
- Fix contact storage in QR scan views (ContactQRScanShowView, ContactQRScanFullView)
- Ensure consistent JSON string storage across web SQLite and Capacitor SQLite
- Prevents "[object Object] is not valid JSON" errors when switching platforms
- Maintains compatibility between auto-parsing web SQLite and raw string Capacitor SQLite
Fixes: contactMethods parsing errors in export and QR scan functionality
Related: searchBoxes field had similar issue (already fixed)