Matthew Raymer ff75fa5349 refactor(scanner): improve barcode scanner initialization and error handling
- Fix scanner listener initialization in class component
  * Replace Vue ref with direct class property for scanListener
  * Remove unnecessary .value accesses throughout the code

- Enhance error handling and cleanup
  * Add proper cleanup on scanner errors
  * Add cleanup in stopScanning method
  * Improve error message formatting
  * Add error handling in handleScanResult

- Improve state management
  * Move state updates into try/catch blocks
  * Add finally block to reset state after scan processing
  * Better handling of processing states during scanning

- Add comprehensive logging
  * Log each step of scanner initialization
  * Add detailed error logging
  * Format object logs to prevent [object Object] output

- Code style improvements
  * Fix indentation throughout the file
  * Consistent error handling patterns
  * Better code organization and readability
2025-04-16 08:05:04 +00:00
2024-07-18 19:55:57 +08:00
2025-04-03 17:55:59 -06:00
2024-07-19 17:59:54 -06:00
2025-04-11 11:28:14 +00:00
2022-11-16 14:48:22 +08:00
2025-04-07 06:43:56 +00:00
2024-12-08 21:22:03 -07:00
2025-03-16 16:48:01 -06:00
2022-11-27 14:16:57 +08:00
2025-04-11 11:28:14 +00:00
2025-04-11 11:28:14 +00:00

TimeSafari.app - Crowd-Funder for Time - PWA

Time Safari allows people to ease into collaboration: start with expressions of gratitude and expand to crowd-fund with time & money, then record and see the impact of contributions.

Roadmap

See project.task.yaml for current priorities. (Numbers at the beginning of lines are estimated hours. See taskyaml.org for details.)

Setup & Building

Quick start:

npm install
npm run dev

See BUILDING.md for more details.

Tests

See TESTING.md for detailed test instructions.

Icons

To add an icon, add to main.ts and reference with fa element and icon attribute with the hyphenated name.

Other

Reference Material

  • Notifications can be type of toast (self-dismiss), info, success, warning, and danger. They are done via notiwind and set up in App.vue.

  • Customize Vue configuration.

  • If you are deploying in a subdirectory, add it to publicPath in vue.config.js, eg: publicPath: "/app/time-tracker/",

Kudos

Gifts make the world go 'round!

Description
No description provided
Readme 519 MiB
Languages
Vue 47.5%
TypeScript 28.4%
JavaScript 13.6%
Shell 9%
Python 0.6%
Other 0.9%