Matthew Raymer
3851ead171
Complete MembersList.vue notification migration with complex modals (3 minutes)
Notification Migration: Use TIMEOUTS.MODAL instead of -1 for complex confirm dialogs
Complex Modal Pattern: Retain raw $notify calls for advanced modal features (custom titles, button text, multiple callbacks)
Constants Integration: All notification text uses centralized NOTIFY_ADD_CONTACT_FIRST and NOTIFY_CONTINUE_WITHOUT_ADDING constants
Time: 3 minutes | Complexity: Simple | Issues: None
Testing: Manual required | Validation: Complex modals documented as legitimate raw $notify use case
Note: Validation script flags as mixed pattern but component follows documented complex modal pattern
1 day ago
Matthew Raymer
ca1179ed97
Extract literal strings from complex modals to notification constants
Replace hardcoded text in raw $notify calls with centralized constants:
- MembersList.vue: 2 complex modals (contact admission workflow)
- ContactsView.vue: 2 complex modals (registration, onboarding meeting)
- ProjectViewView.vue: 1 complex modal (claim confirmation)
Preserves advanced modal features (promptToStopAsking, custom buttons,
nested workflows) while standardizing text through constants for
maintainability and future localization support.
1 day ago
Matthew Raymer
114627b218
Replace hardcoded notification strings with standardized constants
- Replace literal strings with notification constants in ContactsView.vue:
* "Got an error sending the invite." → NOTIFY_INVITE_ERROR.message
* "Could not set visibility on the server." → NOTIFY_VISIBILITY_ERROR.message
* "Unconfirmed Hours" → NOTIFY_UNCONFIRMED_HOURS.title
- Remove unused NOTIFY_REGISTER_PROCESSING import
- Remove unused NOTIFICATION_TIMEOUTS constant in ShareMyContactInfoView.vue
- Fix unused parameter warnings in danger() and warning() methods
- Resolve all notification-related linting errors
1 day ago
Matthew Raymer
ef15126d6d
Complete notification migration across 13 components and views
- Replace raw $notify calls with notification helper system
- Add createNotifyHelpers and TIMEOUTS constants integration
- Migrate AccountViewView, ClaimAddRawView, ContactGiftingView, ContactImportView, ContactsView, NewActivityView, ProjectViewView, RecentOffersToUserProjectsView, RecentOffersToUserView, ShareMyContactInfoView
- Update MembersList, TopMessage, UserNameDialog components
- Add notification constants for standardized messaging
- Enhance validation script to eliminate false positives
- Achieve 86% notification migration completion rate
1 day ago
Matthew Raymer
6c0142b5fd
Fix migration dates, add multi-platform testing infrastructure, and organize docs
Migration Date Corrections:
- Update all migration TODO comments to use correct date: 2025-07-06
- Add proper TypeScript type declarations for $route and $router in DeepLinkErrorView
- Fix template property references to use $route instead of route
Multi-Platform Testing Infrastructure:
- Add comprehensive multi-platform testing requirements for migrations
- Update component migration template with platform testing requirements
- Establish sign-off requirements for web, desktop, and mobile platforms
- Document expected outcomes and validation procedures
Migration Testing Organization:
- Create docs/migration-testing/ folder for testing documentation
- Move TESTING_CONTACTIMPORT.md from project root to migration-testing/
- Relocate all migration-checklist-*.md files to migration-testing/
- Add comprehensive README.md with organization guidelines
- Update file references in components and TODOs
- Establish naming conventions and quality standards
Files added:
- docs/migration-testing/README.md
- docs/migration-testing/TESTING_CONTACTIMPORT.md
- docs/migration-testing/migration-checklist-ContactImportView.md
- docs/migration-testing/migration-checklist-MembersList.md
Files modified:
- src/views/ContactImportView.vue (date correction)
- src/components/MembersList.vue (date correction, reference path update)
- src/views/DeepLinkErrorView.vue (date correction, Vue router types)
- docs/migration-templates/component-migration.md (multi-platform requirements)
Files moved:
- TESTING_CONTACTIMPORT.md → docs/migration-testing/
- docs/migration-checklist-*.md → docs/migration-testing/
This establishes comprehensive testing infrastructure for all future migrations
with proper organization and multi-platform validation requirements.
2 days ago
Matthew Raymer
01bb13219f
Add comprehensive migration documentation and testing infrastructure
- Add TODO annotation to MembersList.vue requiring human testing validation
- Create migration templates for systematic component migration
- Add best practices guide for PlatformServiceMixin usage
- Create ESLint rules template for pattern enforcement
- Add validation script to track migration progress
- Document Phase 1 completion summary with current state
Migration Infrastructure:
- Component migration checklist template
- Automated validation script (validate-migration.sh)
- Best practices documentation
- ESLint rules for preventing regression
Status: MembersList.vue migration complete but requires human testing
Next: Select next component for migration when ready to continue
2 days ago
Matthew Raymer
2e497eaca1
Migrate MembersList.vue to PlatformServiceMixin logging patterns
- Remove legacy logConsoleAndDb import from db/index
- Replace 3 logging calls with this.$logAndConsole() mixin method
- Add CSS linting suppressions for Tailwind @apply directives
- Create migration checklist documentation
Note: Untested due to meeting component accessibility limitations
Passes lint checks and TypeScript compilation
2 days ago
Matthew Raymer
8bbb8e83b9
refactor: Replace databaseUtil import with PlatformServiceMixin in MembersList
- Remove direct databaseUtil dependency from MembersList.vue
- Use $accountSettings() method from PlatformServiceMixin instead
- Improves code consistency and enables caching benefits
- Maintains identical functionality with enhanced error handling
3 days ago
Matthew Raymer
23789d4ecd
Fix JavaScript runtime errors for undefined name property access
- Add null checks to prevent "Cannot read properties of undefined (reading 'name')" errors
- Fix ProjectCard, MembersList, ProjectsView, DiscoverView, ProjectViewView components
- Add null validation in DIDView.claimDescription() and ClaimReportCertificateView.drawCanvas()
- Add missing databaseUtil import in MembersList component
- Use meaningful fallback text for undefined names ("Unnamed Project", "Unnamed Member")
- Resolves template rendering crashes when entities lack name properties
3 days ago
Matthew Raymer
2b0e60dfc2
feat: enhance GenericVerifiableCredential interface with explicit optional properties
- Add name, description, and agent as optional properties to GenericVerifiableCredential
- Improve type safety and IntelliSense for common claim properties
- Maintain backward compatibility with existing code
- Reduce need for type assertions when accessing claim properties
2 weeks ago
Matthew Raymer
daed0a97c9
WIP: restore database migration system and improve error handling
- 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.
2 weeks ago
Trent Larson
8d1511e38f
convert all remaining DB writes & reads to SQL (with successful registration & claim)
1 month ago
Trent Larson
7de4125eb7
add SQL DB access to everywhere we are using the DB, up to the "C" files
1 month ago
Trent Larson
41365fab8f
add projectLink to onboarding meeting, plus enhancements to setup usability
2 months ago
Matthew Raymer
e0aded04b4
refactor: Replace console logging with logger utility
- Add logger import across multiple view components
- Replace console.error/warn/log with logger methods
- Update error handling to use structured logging
- Improve type safety for error objects
- Add crypto-browserify polyfill for browser environment
The changes improve logging by:
1. Using consistent logging interface
2. Adding structured error logging
3. Improving error type safety
4. Centralizing logging configuration
5. Fixing browser compatibility issues
Affected files:
- Multiple view components
- vite.config.ts
- Build configuration
4 months ago
Matthew Raymer
3b4f4dc125
style: reorder v-model and v-bind directives
Changes:
- Move v-model directives before other attributes
- Move v-bind directives before event handlers
- Reorder attributes for better readability
- Fix template attribute ordering across components
- Improve eslint rules
- add default vite config for testing (handles nostr error too)
This follows Vue.js style guide recommendations for attribute
ordering and improves template consistency.
4 months ago
Matthew Raymer
c708716675
refactor: migrate interfaces to dedicated directory
Reorganizes TypeScript interfaces into a modular structure:
- Create dedicated interfaces directory with specialized files
- Split interfaces by domain (claims, common, limits, records, user)
- Update imports in endorserServer.ts to use new interface locations
- Replace 'any' types with 'unknown' for better type safety
- Add proper type imports and exports
This improves code organization and maintainability by:
- Centralizing interface definitions
- Reducing file size of endorserServer.ts
- Making interface relationships more explicit
- Improving type safety with stricter types
4 months ago
Trent Larson
9a6b2fcf0d
for meeting invitees, create their ID and allow them to set a name
5 months ago
Trent Larson
b8ca2a03fe
add 'isRegistered' flag to encrypted contents in an onboarding meeting
5 months ago
Trent Larson
287a440b3e
show a better message when admission to an onboarding meeting succeeds but registration fails
5 months ago
Matthew Raymer
d9085ced6d
(chore): cleaning up formatting and relative references
5 months ago
Trent Larson
9411096ab7
prompt organizer about adding a contact if not in list, and other sanity checks
5 months ago
Trent Larson
fe71c3f754
make member view available to onboard meeting organizer and reorganize buttons
5 months ago
Trent Larson
93831c372a
fix problem with you-are-missing message and refactor other messages in onboard meeting
5 months ago
Trent Larson
0b05ca3de8
fix linting
5 months ago
Trent Larson
dffecae565
now add registration when the organizer admits them
5 months ago
Trent Larson
4cd130244c
add an icon for each attendee to add them to their contact list
5 months ago
Trent Larson
d5f4337558
organizer can toggle admission to the meeting
5 months ago
Trent Larson
64830eeb05
fix linting (and change a little wording in onboarding page)
5 months ago
Trent Larson
31d573684a
split out group-meeting member list into a separate component, and fix some edit/create mode titles
5 months ago