Commit Graph

654 Commits

Author SHA1 Message Date
cf44ec1a1d Merge branch 'master' into nearby-filter 2025-08-18 07:52:54 -04:00
dc8a897004 Merge branch 'master' into replace-iconrenderer 2025-08-18 02:34:58 -04: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
Matthew Raymer
379056aae1 feat(typescript): resolve Priority 2 type safety issues across components
- 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.
2025-08-16 14:13:36 +00:00
Matthew Raymer
b761088839 refactor(logging): replace console.* and reclassify log levels in HomeView.vue, FeedFilters.vue
- Remove all console.* calls from FeedFilters.vue
- Reclassify 12 logger.info calls to logger.debug in HomeView.vue for diagnostic messages
- Add logger import to FeedFilters.vue
- Maintain existing logging patterns and behavior
2025-08-15 08:15:44 +00:00
Matthew Raymer
23b4460376 Merge branch 'master' into nearby-filter 2025-08-15 07:22:28 +00:00
Matthew Raymer
79593f12b4 fix(types): resolve notification system type safety issues
- Replace $notify any types with proper NotifyFunction interface
- Import NotifyFunction type from utils/notify
- Eliminate 5 TypeScript any type warnings
- Improve type safety for notification system across components

Reduces lint warnings from 25 to 20 by addressing high-impact,
low-effort notification type issues. Maintains full functionality
while improving code quality and IntelliSense support.
2025-08-14 11:05:34 +00:00
Matthew Raymer
a3b69fc0d4 Merge branch 'master' into remove-image-cache 2025-08-14 05:25:12 +00:00
Matthew Raymer
adfaef7947 fix(lint): resolve low and medium impact warnings
- Remove console statements and replace with proper logging
- Fix line length violations in comments
- Maintain functionality while improving code quality

Reduces lint warnings from 30 to 25 by addressing:
- 3 console statement violations
- 2 line length violations
2025-08-13 10:53:10 +00:00
Matthew Raymer
bb357f294a refactor(ui): remove unused image cache system and fix TypeScript compilation
- Remove imageCache Map that only stored null values
- Remove selectedImageData Blob property (never used)
- Remove cacheImageData method and related function props
- Remove handleImageLoad method from ActivityListItem
- Clean up ImageViewer component props
- Fix TypeScript compilation by replacing legacy logConsoleAndDb calls
- Replace logConsoleAndDb with logger.error in deepLinks service
- Images continue to work via direct URL references

The image cache system was non-functional and only stored null values.
ImageViewer component ignored blob data and only used URLs.
Fixed production build failure caused by undefined logConsoleAndDb function.
Removing dead code improves maintainability without affecting functionality.
2025-08-12 08:45:08 +00:00
Matthew Raymer
2afe61d752 chore: lint-fix 2025-08-12 08:14:10 +00:00
Matthew Raymer
9196081f34 fix(home): resolve nearby filter not refreshing feed view
- Fix FeedFilters component missing activeDid context for settings updates
- Update reloadFeedOnChange to retrieve actual settings without defaults
- Add comprehensive logging throughout feed refresh process for debugging
- Ensure filter state changes immediately trigger feed refresh without page reload

The issue was caused by FeedFilters component calling $updateSettings() without
the activeDid parameter, causing settings to be saved to wrong location. Now
properly passes activeDid from HomeView and uses $accountSettings() for
accurate user-specific settings retrieval.

Closes filter refresh issue where turning ON nearby filter required page reload
2025-08-12 06:56:18 +00:00
Matthew Raymer
de47829dc2 fix: DataExportSection error
- Fixed improper referencing for PlatformServiceMixin
- Fixed case where exported data has no contact methods

authored-by: Matthew Raymer <matthew.raymer@anomalistdesign.com>
2025-08-11 08:06:09 +00:00
Jose Olarte III
91e46f435e Merge branch 'offer-validation-logic' into build-improvement 2025-08-11 15:40:11 +08:00
Matthew Raymer
d086ab2f46 Merge branch 'master' into build-improvement 2025-08-11 06:42:22 +00:00
Jose Olarte III
0277b05fef Fix: offer validation prematurely closes dialog
- Transferred form validation error handling to an earlier step
- Added validation for negative input (similar to gifting forms)
- Switched amount input to component version for consistency
2025-08-08 18:21:00 +08:00
Matthew Raymer
4f9fb068c8 Remove unused confirmation code from ActivityListItem and HomeView
- Remove unused handleConfirmClick() and emitConfirmClaim() methods from ActivityListItem
- Remove unused canConfirm computed property and confirmerIdList prop
- Remove unused imports: isGiveClaimType, notifyWhyCannotConfirm, containsHiddenDid
- Remove unused confirmClaim() method from HomeView
- Remove unused @confirm-claim event binding and :confirmer-id-list prop
- Remove unused imports: serverUtil, NOTIFY_CONFIRMATION_ERROR

The confirmation functionality was not being used in ActivityListItem as there was no UI to trigger it. Confirmation is handled in other components like ClaimView and ConfirmGiftView.
2025-08-08 06:48:42 +00:00
Jose Olarte III
bf08e57ce7 Fix: re-organize entity type conditional logic in gifting flow
- Add conditional checks for person vs project entity types when setting DID fields
- Simplify project ID assignment logic by removing redundant entity type checks
- Preserve existing recipient context when selecting givers in ContactGiftingView, especially when dealing with "Unnamed" entity
2025-08-07 18:29:58 +08:00
Jose Olarte III
18e6aa5a9a Fix: gifting error messages
- Replaced error messages in GiftedDetailsView
- Maintained consistency between GiftedDialog and GiftedDetailsView (error message constants, amountInput)
2025-08-07 18:20:09 +08:00
Jose Olarte III
919b48e61f Remove unneeded comment 2025-08-07 15:08:57 +08:00
2a34d0e2d1 chore: Adjust some types and type commentary 2025-08-06 17:56:50 -06:00
Jose Olarte III
06f3a4c7c2 Refactor: simplify GiftedDialog with explicit entity type props
Replace complex updateEntityTypes() method with explicit giverEntityType and
recipientEntityType props. This makes the component more declarative and
maintainable by removing hidden logic and making entity type relationships
clear at the call site.

- Remove updateEntityTypes() method and related watchers
- Add explicit giverEntityType and recipientEntityType props with defaults
- Update all views to use inline logic for entity type determination
- Fix entity type preservation in navigation flows
- Enhance query parameter passing for better context preservation
- Fix recipient reset issue in ContactGiftingView
- Resolve entity type mismatch in HomeView project button flow

Files changed:
- GiftedDialog.vue: Remove complex logic, add explicit props
- EntitySelectionStep.vue: Enhanced query parameter handling
- ContactGiftingView.vue: Improved context preservation
- HomeView.vue, ProjectViewView.vue, ClaimView.vue, ContactsView.vue:
  Updated to use explicit entity type props
- Add refactoring documentation
2025-08-03 11:49:46 +08:00
197dea48c9 chore: remove comments that moved into ClickUp issues 2025-08-02 00:58:53 -06:00
Jose Olarte III
54bfaafbd0 Fix entity type matching in ClaimView
- Add recipientEntityTypeOverride prop to GiftedDialog component
- Add data-testid and data-recipient-entity-type-override attributes for testing
- Update updateEntityTypes() to respect recipientEntityTypeOverride when set
- Add watcher for recipientEntityTypeOverride prop changes
- Update ClaimView to pass recipient entity type override based on project context
- Improve recipient determination logic in ClaimView for person vs project recipients
2025-08-01 16:13:20 +08:00
Jose Olarte III
e741790d70 Fix ClaimView affirm delivery action
- Add offer context support to gifting flow
- Add offerId prop to EntitySelectionStep for offer fulfillment context
- Pass offerId through GiftedDialog to EntitySelectionStep
- Update ContactGiftingView to handle offerId from route query parameters
- Extract offer details (description, amount, unitCode) for pre-population
2025-08-01 13:44:28 +08:00
Jose Olarte III
404a7cbc71 Add form field preservation in gifting flow
- Preserve description, amount, and unit code when navigating between gifting steps
- Add form field props to EntitySelectionStep and GiftedDialog components
- Update ContactGiftingView to handle form state persistence in URL parameters
2025-08-01 11:36:17 +08:00
Jose Olarte III
f4a7d437c8 Fix parameter passing in contact gift dialogs
- Replace @Emit decorator with direct $emit calls in ContactListItem
- Fix DID comparison from loose to strict equality in nameForDid function
- Resolve issue where giver/recipient names showed as "this unnamed user"

The @Emit decorator was not properly spreading array parameters, causing
the parent component to receive arrays instead of separate string parameters.
2025-07-31 20:13:55 +08:00
Jose Olarte III
433f3c1154 Fix GiftedDialog functionality
- Add description, amountInput, and unitCode parameters to GiftedDialog.open()
- Pass offer details to GiftedDialog in ProjectViewView
- Update ContactsView to handle new GiftedDialog parameters
2025-07-31 17:28:46 +08:00
Jose Olarte III
0582954cfa Remove 'customTitle' variable 2025-07-31 15:53:37 +08:00
Jose Olarte III
2b6a2d3612 Delete IconRenderer component 2025-07-30 20:13:09 +08:00
Matthew Raymer
07c5c6fd31 Convert Vue components to use @Emit decorator instead of manual emits declarations
Replace manual emits declarations with proper @Emit decorator usage across components:
- ActivityListItem: Add @Emit methods for viewImage, loadClaim, confirmClaim
- ContactInputForm: Convert handleQRScan to use @Emit("qr-scan")
- ContactBulkActions: Add @Emit methods for toggle-all-selection, copy-selected
- ContactListHeader: Add @Emit methods for all 5 emitted events
- MembersList: Add @Emit("error") method for error handling
- LargeIdenticonModal: Add @Emit("close") method
- ContactListItem: Add @Emit methods for all 4 emitted events

Update all templates to call emit methods instead of direct $emit calls.
Fix TypeScript type issues with optional parameters.
Resolves Vue warning about undeclared emitted events.

Follows vue-facing-decorator best practices and improves code consistency.
2025-07-30 05:50:39 +00:00
9562d3aa32 chore: commentary and verbiage and one stray unnecessary check 2025-07-29 22:12:08 -06:00
Matthew Raymer
95d223e13c Fix accessibility and image deletion issues in AccountViewView
- Fix aria-hidden conflict on trash can icon by wrapping in proper button element
- Fix image deletion API endpoint by extracting image ID from full URL
- Improve 404 error handling to clear local image reference when image already deleted
- Resolve accessibility warning and prevent invalid API calls
2025-07-27 08:48:00 +00:00
Jose Olarte III
ac22e37628 Fix: added back search area preview 2025-07-25 21:50:00 +08:00
Jose Olarte III
526f21441f Fix: routed Set Search Area button 2025-07-25 21:08:54 +08:00
Jose Olarte III
b7fac423c9 Cleanup: Search Area section markup 2025-07-25 15:12:56 +08:00
Jose Olarte III
ff95c001f4 Fix: image retry in mobile app displays error 2025-07-24 18:59:20 +08:00
Matthew Raymer
53282b4237 fix: resolve duplicate APP_SERVER import declarations
Remove duplicate APP_SERVER imports in ContactsView.vue and ClaimView.vue that were causing compilation errors during testing. The duplicate imports occurred when both files had APP_SERVER imported from constants/app and also assigned as class properties.

- ContactsView.vue: Remove duplicate import, keep class property assignment
- ClaimView.vue: Remove duplicate import, keep class property assignment
- Fixes Vite compilation errors that were blocking test execution
- 33/38 tests now pass successfully

This resolves the "Identifier 'APP_SERVER' has already been declared" errors that were preventing the development server from running properly.
2025-07-24 06:30:16 +00:00
Jose Olarte III
5343c9a441 Update: front-facing camera mirrored preview 2025-07-23 17:09:24 +08:00
fd0026ac2d fix problem with repeated bad stringifies of contactMethods on contact export/import 2025-07-22 15:51:17 -06:00
Matthew Raymer
7ab595cb60 Implement configurable domain names for all copy link functionality
- Add PROD_SHARE_DOMAIN constant using existing AppString.PROD_PUSH_SERVER
- Update all 9 components/services to use configurable domain instead of hardcoded URLs
- Fix localhost issues in development mode for all sharing functionality
- Ensure all copy link buttons generate production URLs regardless of environment
- Add proper TypeScript imports and component properties for template access
- Maintain existing functionality while improving maintainability and consistency

Files updated:
- src/constants/app.ts (new constant)
- src/views/ClaimView.vue (claim + certificate links)
- src/views/ProjectViewView.vue (project links)
- src/views/ConfirmGiftView.vue (confirm gift links)
- src/components/HiddenDidDialog.vue (hidden DID links)
- src/views/UserProfileView.vue (profile links)
- src/views/InviteOneView.vue (invite links)
- src/views/ContactsView.vue (contact import links)
- src/views/OnboardMeetingSetupView.vue (meeting links)
- src/libs/endorserServer.ts (contact import confirm links)

Documentation added:
- docs/domain-configuration.md (comprehensive guide)
- README.md (quick reference section)

Security audit:  All changes maintain existing security model
Testing:  All linting errors resolved, only warnings remain
Performance:  No performance impact, improves user experience
2025-07-21 07:47:34 +00:00
Matthew Raymer
99e366d491 Complete UserNameDialog Enhanced Triple Migration Pattern (1 minute)
- Replace PlatformServiceFactory with PlatformServiceMixin methods
- Extract button styling classes to computed properties
- Add comprehensive documentation and error handling
- 87% faster than estimated migration time
2025-07-21 05:39:31 +00:00
Matthew Raymer
ba9b182125 fix: explicitly name all our components to avoid some of the warnings for build:web:serve ...
appears the last warning may be inside Vue itself.  Leaving this alone for now.
2025-07-19 04:41:31 +00:00
Matthew Raymer
8bc1c521ee Remove PWA functionality and service worker infrastructure
Completely remove Progressive Web App features including VitePWA plugin, service workers, install prompts, and platform service PWA methods. Delete PWA component, service worker files, help images, and update build configurations. Simplify application architecture by removing PWA complexity while maintaining core functionality.
2025-07-18 07:49:34 +00:00
Matthew Raymer
e038bb63d9 Refactor ActivityListItem to use function props for image caching
Replace @Emit decorator with function prop pattern for better parent control over image caching behavior. ActivityListItem now accepts onImageCache function prop that parent components can use to handle image caching with custom logic. Updated HomeView to use new function prop interface with simplified method signature.
2025-07-18 07:41:06 +00:00
Matthew Raymer
e0b2f35e5e Refactor EntitySummaryButton to use function props instead of events
Replace @Emit decorator with function prop pattern for better parent control over edit behavior. EntitySummaryButton now accepts onEditRequested function prop that parent components can use to handle edit requests with custom validation logic. Updated GiftDetailsStep to use new function prop interface with proper parameter handling.
2025-07-18 07:34:04 +00:00
Matthew Raymer
dacf1f8083 refactor: convert GiftDetailsStep update handlers from emits to function props
- Replace @Emit("update:description"), @Emit("update:amount"), @Emit("update:unitCode") with function props
- Add onUpdateDescription, onUpdateAmount, onUpdateUnitCode function props with TypeScript typing
- Update GiftedDialog to use new function prop interface for update handlers
- Remove emit decorators and methods for update events
- Keep emit pattern for non-update events (edit-entity, explain-data, submit, cancel)
- Improve component documentation to reflect new architecture

This change provides better parent control over validation and update behavior
for form fields while maintaining existing functionality for other events.
2025-07-18 07:23:20 +00:00
Matthew Raymer
c6b27d55ff refactor: convert AmountInput to function props
- Convert AmountInput from @Emit("update:value") to onUpdateValue function prop
- Update GiftDetailsStep to use new function prop interface for amount handling

AmountInput now provides better parent control over validation and updates
2025-07-18 07:10:41 +00:00
Matthew Raymer
0bcf34c703 fix: revert QR scanner to emit pattern after function prop binding fails
- Revert ContactInputForm QR scanner from function props back to emit pattern
- Remove problematic onQRScan function prop that wasn't resolving correctly
- Update ContactsView to use @qr-scan event handler instead of function prop
- Maintain debugging logs to track click events and method execution
- Keep other function props intact for other event handlers

The function prop approach for QR scanning failed due to Vue prop resolution
issues, causing the default function to be called instead of the parent handler.
Reverting to emits provides reliable parent-child communication for this case.
2025-07-18 06:40:08 +00:00