Commit Graph

2321 Commits

Author SHA1 Message Date
Matthew Raymer
a11443dc3a feat(logging): enhance diagnostic logging for API operations
- Add unique request IDs for claim submission tracking
- Add unique request IDs for plan loading tracking
- Include comprehensive request context (endpoint, server, timestamp)
- Enhance error logging with specific error codes and messages
- Improve debugging capabilities for server operations

Testing: TypeScript compilation passes, no linting errors
Impact: Better debugging and monitoring of API operations
2025-08-25 11:51:22 +00:00
Matthew Raymer
7f7680f4a6 fix(config): remove forced API server overrides
- Remove forced production server override in PlatformServiceMixin.()
- Remove forced production server override in PlatformServiceMixin.()
- Remove forced production server override in HomeView.ensureCorrectApiServer()
- Fix type error in HomeView.latLongInAnySearchBox coordinates

Testing: TypeScript compilation passes, no linting errors
Impact: Users can now switch API servers freely without forced overrides
2025-08-25 11:51:12 +00:00
Matthew Raymer
271a45afa3 fix(database): resolve ambiguous settings query logic
- Fix PlatformServiceMixin.() ambiguous OR condition
- Use specific queries for master settings (id) vs account settings (accountDid)
- Resolve settings priority conflicts affecting server switching
- Maintain backward compatibility with existing settings structure

Testing: TypeScript compilation passes, no linting errors
Impact: Settings now load correctly without query ambiguity
2025-08-25 11:50:55 +00:00
Matthew Raymer
6aac3ca35f fix(api): resolve image server hardcoding and add comprehensive diagnostics
- Fix fetchImageRateLimits to accept configurable imageServer parameter instead
  of hardcoded DEFAULT_IMAGE_API_SERVER
- Add enhanced diagnostic logging for image server operations with server
  context, error tracking, and user registration status
- Update AccountViewView.vue to pass correct image server parameter
- Ensure consistent server switching behavior across all API endpoints
- Prevent similar server configuration issues in image operations

Fixes server switching not applying to image rate limit checks and provides
complete visibility into image server operations for debugging and monitoring.
2025-08-25 10:25:20 +00:00
Matthew Raymer
f0fd8c0f12 feat(diagnostics): add comprehensive logging for server switching and user registration
- Enhanced user registration diagnostics with detailed error context
- Server switching flow logging with before/after values
- Improved error handling with server context
- Fixed type safety issues

Confirms server switching fix is working perfectly while providing
comprehensive debugging for user migration and environment issues.
2025-08-25 10:18:42 +00:00
Matthew Raymer
fd30343ec4 fix(settings): resolve server switching not applying immediately
- Fix database query logic in PlatformServiceMixin.$getSettings() to properly
  distinguish between master settings (ID) and account settings (DID)
- Add comprehensive logging for settings debugging with request IDs and
  component tracking
- Fix ProfileService initialization order in AccountViewView to use correct
  partnerApiServer after settings load
- Add URL flow testing interface in TestView for debugging server switching
- Enhance settings consistency validation and error handling

Resolves issue where profile server changes were saved but not applied due to
incorrect database query logic and settings priority handling.

Files changed: PlatformServiceMixin.ts, AccountViewView.vue, TestView.vue,
TopMessage.vue, main.ts, router/index.ts

Testing: Added comprehensive URL flow testing interface for validation
2025-08-25 09:57:13 +00:00
Matthew Raymer
e70faff5ce Merge branch 'master' into profile_include_location 2025-08-25 07:43:48 +00:00
ecadb00396 Merge branch 'master' into onboard-alert-component 2025-08-25 02:53:18 -04:00
Jose Olarte III
7b357641d1 Chore: update author in RegistrationNotice 2025-08-25 14:52:23 +08:00
Matthew Raymer
9512e8192f Merge branch 'master' into profile_include_location 2025-08-25 02:56:53 +00:00
528a68ef6c fix: reorder and reword visibility messages on confirmation & DID view pages 2025-08-24 18:15:08 -06:00
8991b36a56 fix: give consistent "you" verbiage on button 2025-08-24 17:49:01 -06:00
6f5661d61c fix: enhance the message & provide link on confirmation page when something isn't seen 2025-08-24 17:44:15 -06:00
36acbcf160 feat: add the version on the top of the Help screen by the title 2025-08-24 17:08:41 -06:00
d2d64cf1d9 fix: replace the confusing phrase "Unnamed/Unknown" verbiage with "Not Named" 2025-08-24 16:36:32 -06:00
270e7ec8eb fix: On test page, switch back to the current user (and not User 0). 2025-08-24 16:10:50 -06:00
27b46b4252 feat: Reorder and reword the 'meeting' registration option based on feedback. 2025-08-22 19:56:37 -06:00
Jose Olarte III
4ba58145d0 feat: implement safe area insets for Android and add development tooling
- Add @capacitor/status-bar dependency for safe area detection
- Implement SafeAreaPlugin for Android with proper inset calculation
- Create safeAreaInset.js utility for CSS custom property injection
- Update Android manifest and build configuration for plugin
- Integrate safe area handling across Vue components and views
- Update iOS Podfile and Android gradle configurations
- Add commitlint and husky for commit message validation

Technical changes:
- SafeAreaPlugin uses WindowInsets API for Android R+ devices
- Fallback detection for navigation bar and gesture bar heights
- CSS custom properties: --safe-area-inset-{top,bottom,left,right}
- Platform-specific detection (Android WebView only)
- StatusBar plugin integration for top inset calculation
2025-08-22 21:06:11 +08:00
Jose Olarte III
25e79249dd Feat: integrate RegistrationNotice component into ProjectsView
- Replace custom onboarding button with RegistrationNotice component
- Maintain v-else conditional rendering for unregistered users
- Remove unused methods and imports related to custom registration flow
- Use contextual message "To announce a project, get someone to onboard you."
- Remove unnecessary wrapping div in RegistrationNotice

Completes registration UI standardization across all main views.
2025-08-21 19:29:31 +08:00
Jose Olarte III
47a7b03cca Refactor: simplify RegistrationNotice component interface
- Centralize all registration notice logic within upgraded RegistrationNotice component
- Clean up unused methods and imports in HomeView and AccountViewView
- Customizable message to maintain original contextual wordings unique to each view

Component is now more focused and follows Vue.js best practices
for conditional rendering.
2025-08-21 19:06:55 +08:00
Jose Olarte III
7f5a64dceb UI: update HomeView onboard alert style
- Style-wise, make it consistent with similar alerts
- Introduce visual hierarchy to buttons
- Responsive button layout
2025-08-21 17:22:33 +08:00
Jose Olarte III
aa55588cbb UI: spacing and text styling consistencies 2025-08-21 16:27:00 +08:00
Jose Olarte III
5f63e05090 Fix: hide offer link from unregistered users 2025-08-21 16:25:57 +08:00
Jose Olarte III
74c70c7fa0 fix(DIDView): validate DID format before processing URL parameters
- Add DID validation using isDid() function to prevent invalid DIDs from loading current user's info
- Show error message and redirect to HomeView for invalid DID formats (e.g., /did/0)
- Import NOTIFY_CONTACT_INVALID_DID constant for consistent error messaging

Resolves: DIDView loading current user's info for invalid DID parameters
2025-08-20 19:56:34 +08:00
Matthew Raymer
3be7001d1b chore: linting 2025-08-20 10:04:40 +00:00
Matthew Raymer
95a8f5ebe1 Merge branch 'master' into profile_include_location 2025-08-20 09:48:26 +00:00
Matthew Raymer
8db07465ed fix(typescript): resolve ProfileService typing issues and eliminate any types
- Replace unsafe (error as any).config patterns with proper type guards
- Add hasConfigProperty() type guard for safe error property checking
- Add getConfigProperty() method for type-safe config extraction
- Eliminate @typescript-eslint/no-explicit-any violations

Problem: ProfileService had unsafe type casting with (error as any).config
that violated TypeScript type safety guidelines and caused linting errors.

Solution: Implement proper type guards following established patterns:
- hasConfigProperty() safely checks if error has config property
- getConfigProperty() extracts config without type casting
- Maintains exact same functionality while ensuring type safety

Files changed:
- src/services/ProfileService.ts: Replace any types with type guards

Testing: Linting passes, type-check passes, functionality preserved.
2025-08-20 09:26:48 +00:00
Jose Olarte III
612c0b51cc Fix: use route-specific parameter keys in deep link parser
Fix iOS deep link "Invalid Deep Link" error by updating parseDeepLink
to use correct parameter keys from ROUTE_MAP instead of always using 'id'.

- Replace hardcoded 'id' parameter assignment with dynamic lookup
- Use routeConfig.paramKey for route-specific parameter names (e.g., groupId for onboard-meeting-members)
- Maintain backward compatibility with fallback to 'id' for routes without explicit paramKey
2025-08-20 16:05:29 +08:00
Matthew Raymer
ce107fba52 style: clean up ProfileService formatting
- Remove extra blank lines for consistent code formatting
- Maintains code readability and follows project style guidelines
2025-08-20 06:43:08 +00:00
Matthew Raymer
4422c82c08 fix: resolve deeplink listener registration and add comprehensive logging
- Fix Capacitor deeplink listener registration timing and duplicate function issues
- Add comprehensive logging throughout deeplink processing pipeline
- Enhance router navigation logging for better debugging
- Resolves deeplink navigation failures on Android platform
- Improves debugging capabilities for future deeplink issues
2025-08-20 06:41:37 +00:00
Matthew Raymer
fbcd3a50ca feat: implement dynamic platform entry point system
- Add src/main.ts as dynamic entry point that loads platform-specific code
- Update index.html to use dynamic main.ts instead of hardcoded main.web.ts
- Remove external capacitor config from vite.config.common.mts to ensure proper bundling
- Enables consistent platform detection across all build targets
- Use proper logger utility instead of console.log for platform detection logging
2025-08-20 06:40:48 +00:00
Matthew Raymer
618b822c8b fix(services): remove duplicate getErrorUrl method from ProfileService
- Remove duplicate method implementation causing TypeScript compilation errors
- Consolidate error URL extraction logic into single method
- Fix duplicate function implementation errors TS2393

Improves code quality and prevents build failures
2025-08-20 02:27:03 +00:00
3aaea9c829 Merge branch 'master' into fix-deep-link 2025-08-19 19:53:38 -06:00
Matthew Raymer
63e1738d87 fix(ui): remove debug output from AccountViewView map loading
Removes debug span showing map loading status that was left in production code.
Keeps map functionality intact while cleaning up UI for production use.
2025-08-19 05:46:06 +00:00
Matthew Raymer
86e9aa75c1 fix(types): resolve TypeScript any type violations
- Replace any types in ProfileService with AxiosErrorResponse interface
- Add type-safe error URL extraction method
- Fix Leaflet icon type assertion using Record<string, unknown>
- Enhance AxiosErrorResponse interface with missing properties
- Maintain existing functionality while improving type safety

Closes typing violations in ProfileService.ts and AccountViewView.vue
2025-08-19 03:47:57 +00:00
Matthew Raymer
9384f0083a refactor(types): improve type safety and eliminate type assertions
- Replace type assertions with proper type guards in ProfileService
- Add isAxiosError type guard and improve error handling
- Clean up formatting and improve type safety in deepLinks service
- Remove type assertions in AccountViewView Vue component
- Improve code formatting and consistency across services
2025-08-19 03:37:20 +00:00
016e849d3e fix: Fix onboard-meeting-members deep link with groupId. 2025-08-18 19:26:59 -06:00
Jose Olarte III
eb44e7b51e Chore: convert "unnamed" into constant
- "Unnamed/Unknown" simplified into just "Unnamed"
- Phrase variations have their own constants
2025-08-18 20:33:19 +08:00
cf44ec1a1d Merge branch 'master' into nearby-filter 2025-08-18 07:52:54 -04:00
Jose Olarte III
e5ad71505c Chore: move function to serverUtil
- capitalizeAndInsertSpacesBeforeCapsWithAPrefix() defined in two places, unified and moved to endorserServer.ts
- Use capitalizeAndInsertSpacesBeforeCaps() that's already defined in endorserServer.ts
2025-08-18 17:47:33 +08:00
Jose Olarte III
ca8d72e1c9 Fix: remove non-applicable IDs
- Projects use handleID, not DID
2025-08-18 16:43:15 +08:00
Matthew Raymer
f2026bb921 chore: clean up debug logging 2025-08-18 07:44:26 +00:00
Matthew Raymer
f85c190557 Merge branch 'master' of ssh://173.199.124.46:222/trent_larson/crowd-funder-for-time-pwa 2025-08-18 07:29:10 +00:00
Matthew Raymer
bc9d3cdda5 fix(profile): resolve map loading and profile deletion issues
- Fix Leaflet icon initialization error causing "Cannot read properties of undefined (reading 'Default')"
- Add proper Leaflet icon configuration with CDN fallbacks
- Implement map ready state management to prevent infinite loading
- Add comprehensive error handling and debugging for map lifecycle events
- Fix profile deletion treating HTTP 204 (No Content) as error instead of success
- Enhance error logging and user feedback throughout profile operations
- Add fallback timeout mechanisms for map initialization failures
- Improve error messages to show specific API failure reasons

Resolves map rendering issues and profile deletion failures by properly
handling HTTP status codes and Leaflet component initialization.
2025-08-18 07:28:58 +00:00
dc8a897004 Merge branch 'master' into replace-iconrenderer 2025-08-18 02:34:58 -04:00
Matthew Raymer
1542c7bb75 chore: linting 2025-08-18 06:28:58 +00:00
c1ae5cbfb8 doc: Update messaging when deleting a contact to warn about same DIDs. 2025-08-17 17:38:50 -06:00
19f0c270d3 chore: Rename variable for clarity 2025-08-17 14:13:50 -06:00
Matthew Raymer
215c37f00a Merge branch 'master' into ask-for-contacts-export 2025-08-17 02:36:57 +00:00
799981d1cb doc: Add comment about similar code. 2025-08-16 16:19:24 -06:00