Commit Graph

1900 Commits

Author SHA1 Message Date
Matthew Raymer
b3cad2cfa1 docs: Update decomposition plan with integration completion
- Mark all phases as complete with checkmarks
- Add comprehensive integration results section
- Document 9 components successfully created and integrated
- Confirm 100% backward compatibility maintained
- List achieved benefits: maintainability, testability, reusability
- Outline next steps for Pinia migration and testing
- Update status to INTEGRATION COMPLETE
2025-06-29 06:21:53 +00:00
Matthew Raymer
60aa137dab feat: Integrate step components into GiftedDialog
- Replace Step 1 template with EntitySelectionStep component
- Replace Step 2 template with GiftDetailsStep component
- Add event handlers for component integration
- Fix ProjectCard import issues (didInfo, PlanData, Contact)
- Maintain full backward compatibility with existing functionality
- Reduce main component template from ~200 lines to ~20 lines

Integration complete - ready for testing and further refactoring
2025-06-29 06:20:43 +00:00
Matthew Raymer
e5b622f575 feat: Phase 3 - Extract step components from GiftedDialog
- Create EntitySelectionStep.vue for complete step 1 interface
  * Dynamic step labeling based on context (giver/recipient/projects)
  * EntityGrid integration for unified entity display
  * Conflict detection and prevention with visual feedback
  * Special entity handling (You, Unnamed) with proper conditions
  * Show All navigation with context preservation through query params
  * Cancel functionality with event delegation
  * Comprehensive prop interface for all dialog contexts

- Create GiftDetailsStep.vue for complete step 2 interface
  * Entity summary display using EntitySummaryButton components
  * Gift description input with placeholder support
  * AmountInput integration with increment/decrement controls
  * Unit code selection (HUR, USD, BTC, BX, ETH)
  * Photo & more options navigation with computed route
  * Conflict detection and warning display
  * Form validation and submission with disabled states
  * Local reactive state management with prop synchronization
  * Edit entity functionality with structured events

- Update GiftedDialog-Decomposition-Plan.md
  * Mark Phase 3 as completed with detailed specifications
  * Add comprehensive integration examples for step components
  * Update component count and progress tracking
  * Add usage patterns for EntitySelectionStep and GiftDetailsStep
  * Update project status to 'Integration Phase Ready'

Phase 3 completes the major UI section extraction, creating two
comprehensive step components that can directly replace the existing
step logic in GiftedDialog. These components maintain all existing
functionality while providing clean, testable interfaces.

Components: 9 total (4 Phase 1 + 3 Phase 2 + 2 Phase 3)
Next: Integration phase - Replace GiftedDialog step logic with new components
2025-06-29 06:14:38 +00:00
Matthew Raymer
a559fd3318 feat: Phase 2 - Extract layout components from GiftedDialog
- Create EntityGrid.vue for unified entity grid layout
  * Responsive grid layout for people and projects
  * Integrates special entities (You, Unnamed) seamlessly
  * Conflict detection integration with prop-based checker
  * Empty state messaging based on entity type
  * Show All navigation with query parameter support
  * Event delegation for all entity selection types
  * Configurable display limits and grid columns

- Create SpecialEntityCard.vue for special entity handling
  * Handles 'You' and 'Unnamed' entity types
  * FontAwesome icon integration with configurable styling
  * Conflict state handling with visual feedback
  * Entity-type-specific color schemes (blue for You, gray for Unnamed)
  * Emits structured events with entity data

- Create ShowAllCard.vue for navigation functionality
  * Router-link integration with query parameter passing
  * Consistent visual styling with other entity cards
  * Hover effects and animations
  * Maintains context through configurable route params

- Update GiftedDialog-Decomposition-Plan.md
  * Mark Phase 2 as completed
  * Add comprehensive integration examples
  * Update component specifications with actual props/emits
  * Add EntityGrid, SpecialEntityCard, and ShowAllCard usage patterns
  * Update project status and next steps

Phase 2 creates reusable layout components that can replace the complex
grid logic in GiftedDialog. The EntityGrid component provides a clean
API for entity selection while maintaining all existing functionality.

Components: 7 total (4 Phase 1 + 3 Phase 2)
Next: Integration phase - Update GiftedDialog to use new components
2025-06-29 06:09:58 +00:00
Matthew Raymer
4e7dc36ecc feat: Phase 1 - Extract display components from GiftedDialog
- Create PersonCard.vue for individual person entity display
  * Handles selection states and conflict detection
  * Includes time icon overlay for contacts
  * Emits person-selected events

- Create ProjectCard.vue for individual project entity display
  * Shows project icon, name, and issuer information
  * Handles project selection events
  * Reusable for project listings

- Create EntitySummaryButton.vue for selected entity display
  * Supports both person and project entities
  * Shows editable vs locked states with appropriate icons
  * Handles edit-requested events for step 2 functionality

- Create AmountInput.vue for numeric input with controls
  * Increment/decrement buttons with validation
  * Configurable min/max values and step size
  * v-model compatible for form integration
  * Proper input validation and boundary checking

- Add comprehensive GiftedDialog-Decomposition-Plan.md
  * Documents complete 4-phase refactoring strategy
  * Provides implementation progress tracking
  * Includes integration examples and migration strategy
  * Outlines benefits: maintainability, testability, reusability

This Phase 1 extraction creates reusable display components that can be
immediately integrated into GiftedDialog and used throughout the app.
The incremental approach reduces refactoring risk while preparing for
future Pinia state management integration.

Next: Phase 2 - Extract layout components (EntityGrid, SpecialEntityCard)
2025-06-29 06:05:20 +00:00
Matthew Raymer
41142397ec Updates 2025-06-28 13:49:51 +00:00
Matthew Raymer
fcac13eb7e docs: Enhance GiftedDialog refactoring plan with template improvements and complexity analysis
- Add comprehensive template improvement strategy for Pinia refactoring
- Integrate component decomposition into existing phase structure
- Update timeline estimates with complexity-adjusted projections (30-33 days realistic)
- Add detailed complexity measurement framework and risk assessment
- Expand Phase 4 to include accessibility and performance optimization
- Document proposed quick fixes for critical usability issues
- Add executive summary and overview sections for better navigation
- Include component composition strategy and accessibility patterns
- Update action items with enhanced template foundation requirements

This comprehensive update transforms the refactoring plan from a basic store
migration to a complete modernization including template decomposition,
accessibility compliance, and performance optimization while maintaining
backward compatibility.
2025-06-28 09:05:28 +00:00
Matthew Raymer
a16f88743a Initial draft 2025-06-28 08:22:08 +00:00
0e6a9c4f89 adjust grammar for recording receipt 2025-06-25 20:51:57 -06:00
Jose Olarte III
ca22161f12 Fix: entity-type identifier validation
- Ensure claims contain only correct and necessary giver and recipient identifiers, as per Endorser.ch documentation
2025-06-20 20:37:14 +08:00
Jose Olarte III
d3b80fbe47 Feature: giver-recipient validation
- Ensures person-to-person gifting won't allow the same entity as giver and recipient
- Disable user item selection if it would create conflict
- Error messaging fallback
2025-06-20 18:38:35 +08:00
Jose Olarte III
0342c872f4 Fix: added context for ContactGiftingView 2025-06-20 15:50:57 +08: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
Jose Olarte III
eb7605991c Fixed more gifting use cases 2025-06-18 19:58:10 +08:00
fa21660fd1 fix spelling 2025-06-15 12:43:22 -06:00
Jose Olarte III
df1c1f0186 Fix: pass project info
In GiftingDialog, project information is passed along if:
- Selecting "Show All" to go to ContactGiftingView
- Selecting "Photos and Other Options" to go to GiftedDetailsView
2025-06-13 20:52:26 +08: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
7eefee1ea5 Fix: Conditional show-all link
- Only show "Show All" when user has contacts
2025-06-12 14:34:00 +08:00
Jose Olarte III
140c36a416 Merge branch 'master' into gifting-ui-2025-05 2025-06-11 19:10:59 +08:00
f255ea389b bump to build 26 and version 0.5.1 2025-06-11 00:46:46 -06:00
0d343b9877 Merge pull request 'fix creation of did-specific settings (with a rename)' (#138) from fix-did-specifics into master
Reviewed-on: #138
2025-06-11 02:14:41 -04:00
df06100c32 remove more debugging 2025-06-10 23:49:14 -06:00
Matthew Raymer
ac5ddfc6f2 style: fix line length in ContactsView ternary operator
- 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
2025-06-11 05:45:58 +00:00
Matthew Raymer
89b3f30466 fix: debug and clean up GiftedPrompts contact retrieval logic
- Add comprehensive debug logging to identify contact list population issues
- Fix array indexing bug in contact mapping (someContactDbIndex -> 0)
- Clean up all console.log statements for production readiness
- Improve contact retrieval debugging for SQLite and Dexie databases
- Maintain core functionality while adding diagnostic capabilities

Debugging: Contact list population issues in GiftedPrompts component
Cleanup: Remove debug console.log statements
2025-06-11 05:40:05 +00:00
Matthew Raymer
3cb5cc096b refactor: use databaseUtil.updateDefaultSettings for feed filter settings
- Replace direct platform service calls with databaseUtil.updateDefaultSettings
- Remove manual SQL query construction in favor of centralized utility
- Improve code consistency and maintainability
- Add proper error handling through databaseUtil's built-in mechanisms
- Remove unused PlatformServiceFactory import
- Fix SQL syntax errors in clearAll and setAll methods (AND -> comma)
- Ensure both SQLite and Dexie databases are updated consistently

Improves: FeedFilters component architecture and error handling
Fixes: isNearby and filterFeedByVisible settings not being saved properly
2025-06-11 05:19:15 +00:00
Matthew Raymer
5df560154f fix: resolve cross-platform contactMethods JSON parsing inconsistencies
- 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)
2025-06-11 04:17:38 +00:00
Matthew Raymer
c1aa522e6c fix: resolve cross-platform SQLite JSON parsing inconsistencies
- Add platform-agnostic parseJsonField utility to handle different SQLite implementations
- Web SQLite (wa-sqlite/absurd-sql) auto-parses JSON strings to objects
- Capacitor SQLite returns raw strings requiring manual parsing
- Update searchBoxes parsing to use new utility for consistent behavior
- Fixes "[object Object] is not valid JSON" error when switching platforms
- Ensures compatibility between web and mobile SQLite implementations

Fixes: searchBoxes parsing errors in databaseUtil.ts
Related: contactMethods field has similar issue (needs same treatment)
2025-06-11 03:44:28 +00:00
a082469a01 fix creation of did-specific settings (with a rename) 2025-06-10 20:51:22 -06:00
Jose Olarte III
3544d7278d Optimized item actions
- Edited button labels for brevity
- Repositioned Totals toggle
- Restyled note about recent hours
- Various text size and spacing changes
2025-06-10 19:54:05 +08:00
Jose Olarte III
d3110506ea Optimized per-item layout
- Stacked contact name and DID
- Text truncates to leave room for action buttons when visible
- Separated "from / to" heading from buttons to minimize width
- Various spacing and alignment adjustments
2025-06-10 18:42:49 +08:00
8609f8458d bump to build 25 & version 0.5.0 2025-06-09 09:26:21 -06:00
8f5c34bc5f fix linting 2025-06-09 09:09:54 -06:00
b0d61b95ea Merge branch 'ui-fixes-2025-06-w2' 2025-06-09 08:44:42 -06:00
af7bd236a3 fix check for successful gift submission 2025-06-09 08:41:47 -06:00
d719338bcc fix problem setting 'loading' flag 2025-06-09 08:37:42 -06:00
6ddf2d1012 fix problem switching IDs (creating too many settings) 2025-06-09 08:33:33 -06:00
Jose Olarte III
1b2d4b623a Turned off automatic safe area in iOS
- Safe area implementations will solely depend on CSS styles for full control
- Eliminates doubled top and bottom padding in iOS
2025-06-09 20:20:17 +08:00
Jose Olarte III
16d5c917d2 Updated QR scanner call
- Searched for all other (outdated) calls to QR scanner dialog and updated them
- Fixed vite HTML spec warning
2025-06-09 19:36:06 +08:00
5976a4995e fix problem clicking on offer-delivery, plus some other hardening and phrasing 2025-06-08 20:13:32 -06:00
dcd0cc4c20 fix import for derived accounts and hopefully make other account-access code more robust 2025-06-08 19:14:41 -06:00
b3ca6c9d91 remove relative URL references in different target because mobile chokes 2025-06-08 16:55:03 -06:00
e9d800f601 fix a web test (all passing now) 2025-06-07 21:41:43 -06:00
b939a5e592 bump build to 23 and version to 0.4.8 2025-06-07 18:54:56 -06:00
aa62037fae bump to build 22 version 0.4.7 (though I think the android capacitor.config.json appId is wrong) 2025-06-07 18:45:24 -06:00
722020ea86 fix linting 2025-06-07 18:09:04 -06:00
96aa3f4a54 add Python dependency for electron on Mac 2025-06-07 17:54:31 -06:00
c0c5f9842b fix some errors and correct recent type duplications & bloat (cherry-picked from d8f2587d1c) 2025-06-07 17:53:36 -06:00
be27ca1855 fix more logic for tests (cherry-picked from 83acb028c7) 2025-06-07 17:42:06 -06:00
92e4570672 fix some incorrect logic & things AI hallucinated 2025-06-07 17:39:10 -06:00
820ae727ed fix linting 2025-06-07 17:19:01 -06:00