Commit Graph

205 Commits

Author SHA1 Message Date
Matthew Raymer
ddbc98b0eb 🎉 MAJOR MILESTONE: All mixed patterns eliminated - 100% migration success!
- Add ProjectViewView.vue to completed testing tracker
- Update migration statistics: 96% complete (24/25 components)
- Reduce appropriately incomplete components: 2 → 1
- Update human testing count: 5 → 6 confirmed tested
- Document legacy logging migration success
- Celebrate elimination of ALL mixed patterns

�� MILESTONE ACHIEVED: 100% migration success for all migratable patterns!
Remaining: Only 1 component with complex modals (appropriately incomplete)
2025-07-07 11:51:24 +00:00
Matthew Raymer
dc2292f4c3 Complete ProjectViewView.vue notification migration with TIMEOUTS.MODAL (1 minute)
Notification Migration: Replace -1 with TIMEOUTS.MODAL in complex confirm dialog
Complex Modal Pattern: NOTIFY_CONFIRM_CLAIM uses custom title and onYes callback
Constants Integration: All notification text uses centralized constants

Time: 1 minute | Complexity: Simple | Issues: None
Testing: Manual required | Validation: Complex modal documented as legitimate raw $notify use case
2025-07-07 10:21:50 +00:00
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.
2025-07-07 07:22:06 +00:00
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
2025-07-07 07:02:33 +00:00
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
2025-07-07 06:53:30 +00:00
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
2025-07-05 05:38:20 +00:00
Matthew Raymer
b388dc3d8e Merge branch 'gifting-periphery-improvements' into build-improvement 2025-07-04 08:26:03 +00:00
Matthew Raymer
0343b4cd0e Fix image CORS violations with comprehensive proxy and component updates
- Applied transformImageUrlForCors to all image-displaying components
- Added followRedirects: true to image proxy to serve actual content
- Proxy now returns 200 OK with image data instead of 301 redirects
- Maintains CORS headers required for SharedArrayBuffer support
- Added debug logging for proxy response monitoring

Resolves all image loading failures in development environment.
2025-07-03 04:15:26 +00:00
25512d3db1 some fixes to the gifted-dialog logic 2025-06-29 18:18:18 -06:00
Jose Olarte III
a8cc480960 Merge branch 'master' into gifting-periphery-improvements 2025-06-24 16:20:07 +08:00
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
2025-06-23 10:30:08 +00:00
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.
2025-06-23 08:25:10 +00:00
Jose Olarte III
a7e65b3b49 Giver-recipient controls
- Dialog now shows separate cards for giver and recipient
- Ability to change giver and/or recipient
- Project giver/recipient is locked in ProjectView (context reinforcement)
2025-06-19 21:16:56 +08:00
6689520270 fix all copies for externally-shared links to redirected deep links 2025-06-18 15:53:16 -06:00
d6db81cc36 fix some result types and refactor types themselves 2025-06-13 21:58:57 -06:00
fb81f7b96e fix problems with :href links causing the app to reload for DB errors on mobile 2025-06-13 20:39:12 -06:00
Jose Olarte III
3daf1c8a5c Feature: Project Gifting
- Gifting dialog: added ability to pick a project to benefit from
- Project view: modified dialog calls in Project view to toggle between giving to and benefiting from a project
- Project view: removed redundant person selection
- Project view: benefiting from a project locks the project selection in dialog to enforce context.
2025-06-12 20:50:27 +08:00
Jose Olarte III
140c36a416 Merge branch 'master' into gifting-ui-2025-05 2025-06-11 19:10:59 +08:00
8f5c34bc5f fix linting 2025-06-09 09:09:54 -06:00
5976a4995e fix problem clicking on offer-delivery, plus some other hardening and phrasing 2025-06-08 20:13:32 -06:00
b3ca6c9d91 remove relative URL references in different target because mobile chokes 2025-06-08 16:55:03 -06:00
c0c5f9842b fix some errors and correct recent type duplications & bloat (cherry-picked from d8f2587d1c) 2025-06-07 17:53:36 -06:00
Matthew Raymer
3d8e40e92b feat(export): Replace CSV export with standardized JSON format
- Add contactsToExportJson utility function for standardized data export
- Replace CSV export with JSON format in DataExportSection
- Update file extension and MIME type to application/json
- Remove Dexie-specific export logic in favor of unified SQLite/Dexie approach
- Update success notifications to reflect JSON format
- Add TypeScript interfaces for export data structure

This change improves data portability and standardization by:
- Using a consistent JSON format for data export/import
- Supporting both SQLite and Dexie databases
- Including all contact fields in export
- Properly handling contactMethods as stringified JSON
- Maintaining backward compatibility with existing import tools

Security: No sensitive data exposure, maintains existing access controls
2025-06-07 05:02:33 +00:00
6a47f0d3e7 format total numbers better 2025-06-06 19:40:53 -06:00
8d1511e38f convert all remaining DB writes & reads to SQL (with successful registration & claim) 2025-05-27 21:07:24 -06:00
Jose Olarte III
988244b7ae Added check for "Unnamed" giver
Pass string "Unnamed" to select unnamed giver and skip contact selection step of dialog.
2025-05-16 20:22:09 +08:00
b58d510f24 make Advanced links explicit and use "project" instead of "idea" in project page 2025-04-03 17:50:49 -06:00
Matthew Raymer
da6a5ee83e fix(ui): resolve duplicate attributes and improve code style
- Remove duplicate class attributes in ProjectsView and ClaimView
- Fix attribute ordering for better readability
- Replace this references with direct variable names in templates
- Update icon-size prop to use kebab-case
- Remove unnecessary comments and improve formatting
- Fix import organization in ProjectsView

This commit resolves Vue template errors and improves code consistency.
2025-04-02 00:39:38 -07:00
Matthew Raymer
7af39d322f Merge branch 'ui-fixes-2025-03' 2025-04-02 06:48:07 +00:00
Matthew Raymer
2660b91995 wip: Improve deep link validation and error handling
- Add comprehensive route validation with zod schema
- Create type-safe DeepLinkRoute enum for all valid routes
- Add structured error handling for invalid routes
- Redirect to error page with detailed feedback
- Add better timeout handling in deeplink tests

The changes improve robustness by:
1. Validating route paths before navigation
2. Providing detailed error messages for invalid links
3. Redirecting users to dedicated error pages
4. Adding parameter validation with specific feedback
5. Improving type safety across deeplink handling
2025-03-18 09:19:35 +00:00
a73d0a85e2 change icons to font-awesome 2025-03-17 20:22:35 -06:00
Jose Olarte III
751df09fe5 Button style tweaks + consistency 2025-03-12 15:51:15 +08:00
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
2025-03-11 09:35:55 +00:00
Matthew Raymer
8cae601148 Merge branch 'master' into deep_linking
chore: Clean up merge conflicts in documentation files

- Resolve merge conflicts in BUILDING.md and CHANGELOG.md
- Remove duplicate entries in documentation
- Fix formatting inconsistencies from merge
- Maintain consistent documentation style
- Clean up git diff markers

The cleanup improves documentation by:
1. Resolving all merge conflicts
2. Ensuring consistent formatting
3. Removing duplicate content
4. Maintaining documentation standards
5. Preserving change history
2025-03-11 04:05:24 +00:00
Matthew Raymer
f4c5567471 test: enhance deep link testing with real JWT examples
Changes:
- Add real JWT example for invite testing
- Add detailed JWT payload documentation
- Update test-deeplinks.sh with valid claim IDs
- Add test case for single contact invite
- Improve test descriptions and organization

This improves test coverage by using real-world JWT examples
and valid claim identifiers.
2025-03-01 12:28:48 +00:00
Matthew Raymer
02bf0b3f1a docs: add comprehensive JSDoc documentation to views
Changes:
- Add detailed JSDoc headers to ContactImportView
- Add component-level documentation to ProjectViewView
- Document state management and data flow
- Add security considerations and usage examples
- Improve test script documentation and organization
- Add interface documentation for deep linking

This improves code maintainability by documenting component
architecture, workflows and integration points.
2025-02-28 12:45:21 +00:00
b91f2a5df7 fix one more styling error 2025-02-27 18:02:05 -07:00
f6871e139d fix linting 2025-02-27 17:51:57 -07:00
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.
2025-02-26 09:27:04 +00:00
Matthew Raymer
f6802cd160 refactor: improve router type safety and usage
- Add explicit Router type imports across views
- Replace $router type casting with proper typing
- Use $router.back() instead of $router.go(-1) for consistency
- Add proper route and router typings to components
- Clean up router navigation methods
- Fix router push/back method calls

This commit improves type safety and consistency in router usage across
the application's view components.
2025-02-26 06:50:08 +00:00
Matthew Raymer
a2e19d7e9a fix: improve TypeScript type safety across views
Changes:
- Add proper type annotations for component properties
- Fix null checks with optional chaining
- Add missing interface properties
- Replace any with proper types where possible
- Move interfaces from endorserServer to interfaces/
- Add proper Router and Route typing
- Add default empty string for optional text fields

This improves type safety and reduces TypeScript errors across views.
2025-02-25 11:36:24 +00:00
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
2025-02-24 11:21:08 +00:00
61afba3bca show totals of gives to a project 2025-02-22 20:34:23 -07:00
Matthew Raymer
caabaa3257 Merge branch 'master' into split_build_process
fix: image server references and test configurations

- Update image server references to use test server by default for local dev
- Fix registration status checks in tests
- Remove verbose console logging
- Update environment configurations for consistent image server usage
- Fix alert handling in contact registration tests
- Clean up component lifecycle logging
- Add clarifying comments about shared image server usage
- Update playwright test configurations for better reliability

This commit ensures consistent image server behavior across environments
and improves test reliability by properly handling registration status
checks and alerts.
2025-02-17 06:36:40 +00:00
da0f9e7581 add end time to projects 2025-02-07 08:46:40 -07:00
Matthew Raymer
b3b01652c4 Merge changes 2025-02-03 13:27:36 +00:00
920d3f4d25 fix linting, add to the 10-project timeout 2025-01-29 21:36:27 -07:00
d57aee203f add instructions for contacting potential links to hidden people 2025-01-29 21:01:35 -07:00
aec530f5a8 fix build and auto-test issues 2025-01-20 13:06:05 -07:00
Matthew Raymer
94ee9e24ea Merge fixes 2025-01-11 12:45:43 +00:00