Commit Graph

3640 Commits

Author SHA1 Message Date
Matthew Raymer
29e6d5e099 Improve iOS build directory documentation and clarity
- Add clarifying comment in ios/.gitignore for App/App/public directory
- Document that public directory contains Capacitor sync output from dist/
- Add comment in build-ios.sh clarifying build directory is temporary output
- Reinforces best practice of keeping platform files in ios/ folder
2025-07-21 07:16:11 +00:00
Jose Olarte III
b790eb9310 Update: locators match new gifting dialog 2025-07-21 15:04:47 +08:00
Jose Olarte III
36ebdaeaa0 Update: locators match new gifting dialog 2025-07-21 15:04:47 +08:00
Matthew Raymer
14275a4c41 Complete DeepLinkRedirectView Enhanced Triple Migration Pattern (3 minutes)
- Replace PlatformServiceFactory with PlatformServiceMixin
- Add platformCapabilities computed property for cached access
- Update platform detection methods to use mixin
- Add comprehensive documentation and preserve deep link functionality
- 75% faster than estimated migration time
2025-07-21 06:00:39 +00:00
Matthew Raymer
eb9ede7547 Complete DeepLinkRedirectView Enhanced Triple Migration Pattern (3 minutes)
- Replace PlatformServiceFactory with PlatformServiceMixin
- Add platformCapabilities computed property for cached access
- Update platform detection methods to use mixin
- Add comprehensive documentation and preserve deep link functionality
- 75% faster than estimated migration time
2025-07-21 06:00:39 +00:00
Matthew Raymer
20b67cbcbd 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
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
002f240720 bump to version 1.0.4 and build 37 1.0.4 2025-07-20 20:37:26 -06:00
f4cd47b020 fix: linting
Merged from master
2025-07-20 20:07:18 -06:00
d922434357 fix: linting
Merged from master
2025-07-20 20:07:18 -06:00
ffe8d90161 fix: linting 2025-07-20 19:55:37 -06:00
Matthew Raymer
3a1fe31d39 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
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
685010e37d fix: check limits message 2025-07-19 02:04:59 +00:00
Matthew Raymer
051fdd5681 fix: check limits message 2025-07-19 02:04:59 +00:00
Matthew Raymer
0ac36a2b1e feat: apply web-serve-fix polyfill improvements to build-improvement
Apply targeted improvements from web-serve-fix branch to resolve worker
context issues with absurd-sql and SQL worker:

- Add minimal worker-compatible polyfills to registerSQLWorker.js
  * window object polyfill for SQL.js compatibility
  * crypto.getRandomValues and crypto.subtle polyfills
  * Avoid setting read-only WorkerGlobalScope properties

- Add crypto polyfill to AbsurdSqlDatabaseService.ts
  * Ensure crypto.getRandomValues available in worker context
  * Maintain existing URL-based WebAssembly loading strategy
  * Keep improved platform check for web/development modes

Resolves "window is not defined" and "crypto is not defined" errors
in Web Worker context while maintaining build stability and security.

Files changed: 2
Lines added: 49
2025-07-18 11:41:26 +00:00
Matthew Raymer
e71d7d1b06 feat: apply web-serve-fix polyfill improvements to build-improvement
Apply targeted improvements from web-serve-fix branch to resolve worker
context issues with absurd-sql and SQL worker:

- Add minimal worker-compatible polyfills to registerSQLWorker.js
  * window object polyfill for SQL.js compatibility
  * crypto.getRandomValues and crypto.subtle polyfills
  * Avoid setting read-only WorkerGlobalScope properties

- Add crypto polyfill to AbsurdSqlDatabaseService.ts
  * Ensure crypto.getRandomValues available in worker context
  * Maintain existing URL-based WebAssembly loading strategy
  * Keep improved platform check for web/development modes

Resolves "window is not defined" and "crypto is not defined" errors
in Web Worker context while maintaining build stability and security.

Files changed: 2
Lines added: 49
2025-07-18 11:41:26 +00:00
Jose Olarte III
0d80dc74ec Update: locators to match changes to homeview 2025-07-18 16:52:18 +08:00
Jose Olarte III
c2f030678e Update: locators to match changes to homeview 2025-07-18 16:52:18 +08:00
Matthew Raymer
fbf7deb9b8 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
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
e5af1c401a 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
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
3103c4fc6b 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
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
f6107cb7bb 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
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
Jose Olarte III
fe3a90e421 Merge branch 'build-improvement' of ssh://173.199.124.46:222/trent_larson/crowd-funder-for-time-pwa into build-improvement 2025-07-18 15:14:45 +08:00
Jose Olarte III
ca3fb8fa04 Merge branch 'build-improvement' of ssh://173.199.124.46:222/trent_larson/crowd-funder-for-time-pwa into build-improvement 2025-07-18 15:14:45 +08:00
Jose Olarte III
631bbeb182 Update: locator for contact link 2025-07-18 15:13:57 +08:00
Jose Olarte III
44c3eb0fc9 Update: locator for contact link 2025-07-18 15:13:57 +08:00
Jose Olarte III
bf5fd0b5ce Update: locator for gifting button in homeview 2025-07-18 15:13:36 +08:00
Jose Olarte III
4bc5e05399 Update: locator for gifting button in homeview 2025-07-18 15:13:36 +08:00
Matthew Raymer
94576ff3a4 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
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
912bb7c136 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
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
Matthew Raymer
3d3d50dc9f feat: enhance EntityGrid with function props and improve code formatting
- Add configurable entity display logic via function props to EntityGrid
- Implement comprehensive test suite for EntityGrid function props in TestView
- Apply consistent code formatting across 15 components and views
- Fix linting issues with trailing commas and line breaks
- Add new EntityGridFunctionPropTest.vue for component testing
- Update endorserServer with improved error handling and logging
- Streamline PlatformServiceMixin with better cache management
- Enhance component documentation and type safety

Changes span 15 files with 159 additions and 69 deletions, focusing on
component flexibility, code quality, and testing infrastructure.
2025-07-18 06:16:35 +00:00
Matthew Raymer
73a472d8b7 feat: enhance EntityGrid with function props and improve code formatting
- Add configurable entity display logic via function props to EntityGrid
- Implement comprehensive test suite for EntityGrid function props in TestView
- Apply consistent code formatting across 15 components and views
- Fix linting issues with trailing commas and line breaks
- Add new EntityGridFunctionPropTest.vue for component testing
- Update endorserServer with improved error handling and logging
- Streamline PlatformServiceMixin with better cache management
- Enhance component documentation and type safety

Changes span 15 files with 159 additions and 69 deletions, focusing on
component flexibility, code quality, and testing infrastructure.
2025-07-18 06:16:35 +00:00
Matthew Raymer
6c7c0fed34 Add component communication guide with function props preference
Create comprehensive development guide establishing our preferred patterns
for Vue component communication. Document the preference for function props
over $emit for business logic while reserving $emit for DOM-like events.

Guide covers:
- Function props for business logic, data operations, and complex interactions
- $emit for DOM-like events, lifecycle events, and simple user interactions
- Implementation patterns with TypeScript examples
- Testing strategies for both approaches
- Migration strategy from $emit to function props
- Naming conventions and best practices

Establishes consistent, maintainable component communication patterns
across the application with focus on type safety and developer experience.
2025-07-18 05:40:56 +00:00
Matthew Raymer
45e9bba80a Add component communication guide with function props preference
Create comprehensive development guide establishing our preferred patterns
for Vue component communication. Document the preference for function props
over $emit for business logic while reserving $emit for DOM-like events.

Guide covers:
- Function props for business logic, data operations, and complex interactions
- $emit for DOM-like events, lifecycle events, and simple user interactions
- Implementation patterns with TypeScript examples
- Testing strategies for both approaches
- Migration strategy from $emit to function props
- Naming conventions and best practices

Establishes consistent, maintainable component communication patterns
across the application with focus on type safety and developer experience.
2025-07-18 05:40:56 +00:00
Matthew Raymer
de90c242a8 Remove debugging console.log statements
Clean up all temporary debugging console.log statements added during
registration status troubleshooting. Remove debug output from multiple
components while preserving essential error logging and functionality.

Changes:
- PlatformServiceMixin.ts: Remove debug logging from $saveUserSettings and $saveMySettings
- AccountViewView.vue: Remove debug logging from mounted, initializeState, checkLimits, and onRecheckLimits
- UsageLimitsSection.vue: Remove debug logging from lifecycle hooks and recheckLimits
- IdentitySwitcherView.vue: Remove debug logging from switchAccount method

All core functionality preserved including error handling with logger.error()
and user notifications. Codebase now production-ready without debugging noise.
2025-07-18 05:28:00 +00:00
Matthew Raymer
71ea9efda7 Remove debugging console.log statements
Clean up all temporary debugging console.log statements added during
registration status troubleshooting. Remove debug output from multiple
components while preserving essential error logging and functionality.

Changes:
- PlatformServiceMixin.ts: Remove debug logging from $saveUserSettings and $saveMySettings
- AccountViewView.vue: Remove debug logging from mounted, initializeState, checkLimits, and onRecheckLimits
- UsageLimitsSection.vue: Remove debug logging from lifecycle hooks and recheckLimits
- IdentitySwitcherView.vue: Remove debug logging from switchAccount method

All core functionality preserved including error handling with logger.error()
and user notifications. Codebase now production-ready without debugging noise.
2025-07-18 05:28:00 +00:00
Matthew Raymer
d5e6b4c697 Remove dev-dist from git tracking
Remove dev-dist/ directory from version control while preserving files locally.
This directory contains build artifacts that should not be committed to the
repository.

Changes:
- Remove dev-dist/registerSW.js from git tracking
- Remove dev-dist/sw.js from git tracking
- Remove dev-dist/sw.js.map from git tracking
- Remove dev-dist/workbox-54d0af47.js from git tracking
- Remove dev-dist/workbox-54d0af47.js.map from git tracking

The dev-dist/ directory is already properly listed in .gitignore and will
be ignored going forward. Build artifacts remain available locally for
development use.
2025-07-18 05:13:50 +00:00
Matthew Raymer
b0058e16ca Remove dev-dist from git tracking
Remove dev-dist/ directory from version control while preserving files locally.
This directory contains build artifacts that should not be committed to the
repository.

Changes:
- Remove dev-dist/registerSW.js from git tracking
- Remove dev-dist/sw.js from git tracking
- Remove dev-dist/sw.js.map from git tracking
- Remove dev-dist/workbox-54d0af47.js from git tracking
- Remove dev-dist/workbox-54d0af47.js.map from git tracking

The dev-dist/ directory is already properly listed in .gitignore and will
be ignored going forward. Build artifacts remain available locally for
development use.
2025-07-18 05:13:50 +00:00
Matthew Raymer
d5597adab9 Fix registration status reactivity in HomeView
Resolved issue where registration banner persisted despite successful API registration.
Root cause was loadSettings() being called after initializeIdentity(), overwriting
updated isRegistered value with stale database data.

Changes:
- Remove redundant loadSettings() call from mounted() lifecycle
- Add $nextTick() to force template re-render after registration updates
- Create isUserRegistered computed property for template reactivity
- Clean up debugging console.log statements for production readiness
- Simplify template logic to use standard v-if/v-else pattern

Registration banner now properly disappears when users are registered, and
"Record something given by:" section appears correctly. Fix maintains existing
functionality while ensuring proper Vue reactivity.
2025-07-18 05:10:28 +00:00
Matthew Raymer
216e245d60 Fix registration status reactivity in HomeView
Resolved issue where registration banner persisted despite successful API registration.
Root cause was loadSettings() being called after initializeIdentity(), overwriting
updated isRegistered value with stale database data.

Changes:
- Remove redundant loadSettings() call from mounted() lifecycle
- Add $nextTick() to force template re-render after registration updates
- Create isUserRegistered computed property for template reactivity
- Clean up debugging console.log statements for production readiness
- Simplify template logic to use standard v-if/v-else pattern

Registration banner now properly disappears when users are registered, and
"Record something given by:" section appears correctly. Fix maintains existing
functionality while ensuring proper Vue reactivity.
2025-07-18 05:10:28 +00:00
Matthew Raymer
83317a476e Restore complete UsageLimitsSection functionality with detailed limits display
- Restored proper section container with bg-slate-100 styling and accessibility attributes
- Added FontAwesome spinner with proper ARIA labels for loading state
- Restored detailed limits information showing claims/week, registrations/month, and images/week
- Added proper pluralization and date formatting for reset timers
- Enhanced button styling to match original design with slate gradient
- Added activeDid, endorserLimits, and imageLimits props to component
- Maintained comprehensive debugging for troubleshooting User #00 limits issue
- Added readableDate helper method for consistent date formatting

Fixes missing functionality that was lost during component extraction from AccountViewView.
2025-07-18 03:30:29 +00:00
Matthew Raymer
901186cbc7 Restore complete UsageLimitsSection functionality with detailed limits display
- Restored proper section container with bg-slate-100 styling and accessibility attributes
- Added FontAwesome spinner with proper ARIA labels for loading state
- Restored detailed limits information showing claims/week, registrations/month, and images/week
- Added proper pluralization and date formatting for reset timers
- Enhanced button styling to match original design with slate gradient
- Added activeDid, endorserLimits, and imageLimits props to component
- Maintained comprehensive debugging for troubleshooting User #00 limits issue
- Added readableDate helper method for consistent date formatting

Fixes missing functionality that was lost during component extraction from AccountViewView.
2025-07-18 03:30:29 +00:00
e1252236c0 fix: capitalize the beginning of a message 2025-07-17 19:41:53 -06:00