Commit Graph

942 Commits

Author SHA1 Message Date
0e3e41e064 2.20.3 2026-01-05 16:03:44 +01:00
488c771a09 (fix) ParamsYearInvalidMessage moved to client-side component so that it can use useEffect 2026-01-05 16:03:38 +01:00
1076797c89 (bugfix) HomePage: if current year was not found in DB containing data the app would crash.
This would happen at in January after user hasn't touched the app since the previous year and he did not create any records in the next (now current) year
2026-01-05 15:57:10 +01:00
Knee Cola
a54771e479 Merge branch 'hotfix/2.20.1' 2025-12-24 23:55:58 +01:00
Knee Cola
c8659c15bb (bugfix) created optimized image versions 2025-12-24 23:55:50 +01:00
Knee Cola
1bd755465a Merge branch 'release/2.20.0' 2025-12-24 23:43:24 +01:00
Knee Cola
d3f109ea4b chore: update version to 2.20.0 in package.json and package-lock.json 2025-12-24 23:43:17 +01:00
Knee Cola
2ad2978fd3 Merge branch 'feature/nova-naslovnica' into develop 2025-12-24 23:13:14 +01:00
Knee Cola
9a3a30abf8 fix: update home link in page footer to point to root 2025-12-24 23:12:56 +01:00
Knee Cola
e32818e4ca refactor: improve landing page copy and terminology
- Reorder card-2 text to lead with the value proposition (Gmail sign-in)
- Update Croatian translations to consistently use "aplikacija" instead of "alat"
- Improve sentence flow for better readability in both languages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-24 23:12:17 +01:00
Knee Cola
d96bc307c0 refactor: simplify page footer layout
- Removed documentation links section (tailwindcss, heroicons, daisyui)
- Reorganized footer links into horizontal flex layout
- Simplified footer structure to single column with app branding and main links
- Cleaned up CSS classes for cleaner appearance

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-24 23:09:18 +01:00
Knee Cola
d373d80508 feat: expand privacy policy to comprehensive 16-section GDPR-compliant format
- Updated privacy-policy page component to render all 16 sections
- Expanded Croatian translations with comprehensive GDPR-compliant privacy policy
- Expanded English translations with comprehensive GDPR-compliant privacy policy
- Added sections covering: data controller, data collection, legal bases, cookies,
  hosting location, data sharing, EU transfers, security, data retention,
  GDPR rights, rights exercise, complaint rights, children's privacy, and policy changes
- Restructured existing sections with intro paragraphs and detailed list items
- Maintained proper rich text formatting for email links and emphasis

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-24 23:05:29 +01:00
Knee Cola
426fbc345e feat: expand terms of service to comprehensive 22-section format
- Updated terms-of-service page component to render all 22 sections
- Expanded Croatian translations with comprehensive legal terms
- Expanded English translations with comprehensive legal terms
- Added sections covering: eligibility, scope, user content, privacy, cookies,
  2D barcodes accuracy, prohibited conduct, fees, third-party services,
  availability, IP rights, termination, warranties, liability, indemnification,
  force majeure, governing law, and more
- Maintained proper rich text formatting for email links and emphasis

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-24 22:49:42 +01:00
Knee Cola
089e6d0352 feat: add page title metadata to layout
- Add title: 'rezije.app' to metadata in layout
- Sets browser tab title for all pages across the application
- Applies to all locales (Croatian and English)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-24 22:09:58 +01:00
Knee Cola
0e78cc4977 fix: improve email link styling in terms and privacy pages
- Replace <a> tags with Next.js Link component for email links
- Update translation tags from <a> to <emailLink> in both en and hr
- Add no-underline class to prevent default prose underline
- Add hover:underline to show underline only on hover
- Apply consistent styling across both terms-of-service and privacy-policy pages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-24 22:04:41 +01:00
Knee Cola
ef1d9e9cc4 refactor: internationalize privacy-policy page with next-intl
- Extract all privacy-policy text content into messages/en.json and messages/hr.json
- Add complete Croatian translation for privacy policy
- Update privacy-policy page to use next-intl translations with t.rich()
- Rename component from ConsentPage to PrivacyPolicyPage for clarity
- Replace hardcoded text with translation keys for full i18n support

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-24 21:57:46 +01:00
Knee Cola
958abcc5e7 refactor: internationalize terms-of-service page and improve styling
- Extract all terms-of-service text content into messages/en.json and messages/hr.json
- Update terms-of-service page to use next-intl translations with t.rich()
- Replace dangerouslySetInnerHTML with proper t.rich() formatting
- Add Croatian translation for terms-of-service page
- Increase disclaimer max-width from 20rem to 30rem for better readability

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-24 21:54:16 +01:00
Knee Cola
dc6fa0971e refactor: sync English translations with Croatian and clean up landing page
- Restructure login-page content to match Croatian version (remove card-3, add disclaimer)
- Update main-card text structure from text-1/text-2 to single text field
- Update image references and add image-alt attributes
- Add missing translation fields in home-page and location-edit-form
- Remove duplicate card-2.text render in landing page

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-24 21:41:14 +01:00
Knee Cola
68b2591f40 refactor: restructure landing page with component extraction and fix Server Component hooks
- Extract reusable components: EnterOrSignInButton, paragraphFormatFactory, getProviders
- Fix React hooks usage: remove useMemo from async Server Components
- Update landing page content for Croatian and English translations
- Reorganize terms/policy pages into locale-aware directories
- Update PageFooter to use locale-aware links and make component async

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-24 21:26:09 +01:00
Knee Cola
5da00abd4d started working on new title page: added pictures and some text 2025-12-24 18:16:06 +01:00
4336e0ca3f Merge branch 'release/2.19.0' 2025-12-22 15:17:00 +01:00
29709e8048 Merge branch 'release/2.19.0' into develop 2025-12-22 15:17:00 +01:00
043c6efbd2 chore: update version to 2.19.0 in package.json and package-lock.json 2025-12-22 15:16:52 +01:00
f7d4b7a75b Merge branch 'feature/fixing-print-layout' into develop 2025-12-22 15:14:35 +01:00
ce2aa7a101 fix: improve print layout and exclude paid bills
- Force white background on print preview page regardless of color scheme
- Exclude paid bills from print view
- Add proper spacing for printed barcodes
- Remove legacy barcodeImage support

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 15:14:13 +01:00
e57759d000 Merge branch 'release/2.18.0' 2025-12-22 13:54:41 +01:00
6cf23a891e Merge branch 'release/2.18.0' into develop 2025-12-22 13:54:41 +01:00
20af876316 chore: update version to 2.18.0 in package.json and package-lock.json 2025-12-22 13:53:04 +01:00
c4205a28eb Merge branch 'feature/debugging-pdf417-printed-barcodes' into develop 2025-12-22 13:51:51 +01:00
cd154f9e24 fix: improve PDF417 barcode generation and data handling
- Fix newline corruption: URL-encode hub3aText to prevent browser form submission from converting \n to \r\n
- Align with HUB3A specs: Set error correction level to 4 and pixel size to 4x3 for better barcode scanning reliability
- Fix barcode sizing: Add responsive width constraints (max-w-[35rem], sm:max-w-[25rem]) across all barcode displays
- Update package dependencies: Remove peer dependency flags

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 13:51:08 +01:00
Knee Cola
04c6f1868b Merge branch 'release/2.17.0' 2025-12-21 21:07:14 +01:00
Knee Cola
3f6c440f97 Merge branch 'release/2.17.0' into develop 2025-12-21 21:07:14 +01:00
Knee Cola
1420cfe2d9 2.17.0
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-21 21:03:25 +01:00
Knee Cola
6e5304aa40 docs: add CHANGELOG.md with version 2.17.0 entry
Document the reversion from zxing-wasm to pure JavaScript PDF417 implementation due to barcode scanner compatibility issues at Tisak kiosks.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-21 21:01:37 +01:00
Knee Cola
c55392bf38 Merge branch 'feature/reverting-pdf417-generator' into develop 2025-12-21 20:56:26 +01:00
Knee Cola
1e8a817fcc revert: restore legacy PDF417 barcode generation implementation
Restore custom PDF417 generator, renderer, and component that were previously removed. Update all components to use the legacy Pdf417Barcode instead of Pdf417BarcodeWasm.

Restored files:
- app/lib/pdf/pdf417.ts - Custom PDF417 generator library
- app/lib/pdf/renderBarcode.ts - Canvas-based barcode renderer
- app/ui/Pdf417Barcode.tsx - React component using custom generator

Updated imports in:
- app/ui/BillEditForm.tsx
- app/ui/PrintPreview.tsx
- app/ui/ViewBillCard.tsx
- app/ui/ViewLocationCard.tsx

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-21 20:52:04 +01:00
Knee Cola
cbe7b4eb78 Merge branch 'release/2.16.1' 2025-12-20 09:56:31 +01:00
Knee Cola
c22c1fb7fb Merge branch 'release/2.16.1' into develop 2025-12-20 09:56:31 +01:00
Knee Cola
a91c635fa4 2.16.1 2025-12-20 09:54:49 +01:00
Knee Cola
c068ffb7c3 Merge branch 'feature/improving-detection' into develop 2025-12-20 09:53:57 +01:00
Knee Cola
248b9cf3d0 perf: implement canvas pooling to reduce memory allocations
Replace per-iteration canvas creation with a reusable canvas pool:

- Pre-allocate 6 canvas objects (max needed for split=5 strategy)
- Reuse canvases across all split strategies by resizing
- Set unused canvases to 0×0 to free bitmap memory
- Reduces allocations from ~36 to 6 objects (83% reduction)

Benefits:
- Lower memory footprint
- Reduced GC pressure
- Better performance (resize vs allocate)
- More deterministic memory usage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 09:52:24 +01:00
Knee Cola
09c4cca67b feat: implement horizontal slicing strategy for improved PDF417 detection
Improve barcode detection in documents with graphics and text by implementing
a multi-strategy horizontal slicing approach:

- Split documents into overlapping horizontal sections (5,4,3,2,1, or full)
- Decode each section separately to isolate individual barcodes
- Use 2% overlap between sections to avoid missing boundary codes
- Return the strategy that detects the most barcodes
- Early exit optimization when fewer codes are found

Also fix error handling to use Error objects instead of string literals.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 09:39:58 +01:00
Knee Cola
7ad2497757 Merge branch 'release/2.16.0' into develop 2025-12-20 08:53:25 +01:00
Knee Cola
84b94403c9 Merge branch 'release/2.16.0' 2025-12-20 08:53:23 +01:00
Knee Cola
bacc067c52 2.16.0 2025-12-20 08:53:12 +01:00
Knee Cola
589869551f Merge branch 'feature/zxing-wasm' into develop 2025-12-20 08:49:50 +01:00
Knee Cola
fc544a144b chore: remove legacy PDF417 generation implementation
Delete custom PDF417 generator and renderer now that all components use zxing-wasm/writer. Removes Pdf417Barcode component, generateBarcode, and renderBarcode utilities.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 08:49:11 +01:00
Knee Cola
b8afb2ef0d feat: migrate PDF417 barcode generation to zxing-wasm/writer
Replace custom PDF417 generation (generateBarcode/renderBarcode) with zxing-wasm's writeBarcode for improved reliability and smaller codebase. Updated all 4 components (BillEditForm, PrintPreview, ViewBillCard, ViewLocationCard) to use new Pdf417BarcodeWasm component with ecLevel 5 for error correction.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 08:46:38 +01:00
Knee Cola
9679246f62 chore: remove legacy @zxing packages and old decoder implementation
Remove @zxing/browser and @zxing/library dependencies as they have been fully replaced by zxing-wasm. Delete old barcodeDecoder.ts file which is no longer used after migration to barcodeDecoderWasm.ts.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 01:15:09 +01:00
Knee Cola
fcc1ede4d0 refactor: simplify barcode detection by removing canvas splitting
Remove canvas splitting logic since zxing-wasm natively supports multiple barcode detection with maxNumberOfSymbols parameter. Reduces code by 69 lines and improves performance by requiring only a single decode call per canvas. Set maxNumberOfSymbols to 10 for realistic utility bill use case.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 01:00:46 +01:00