Skip to content

audit: fix critical bugs, improve design, UX and performance#3

Merged
BEKO2210 merged 1 commit intomainfrom
claude/restore-github-actions-workflow-oueZr
Mar 8, 2026
Merged

audit: fix critical bugs, improve design, UX and performance#3
BEKO2210 merged 1 commit intomainfrom
claude/restore-github-actions-workflow-oueZr

Conversation

@BEKO2210
Copy link
Copy Markdown
Owner

@BEKO2210 BEKO2210 commented Mar 8, 2026

Bugfixes:

  • Add missing Dexie compound index [productId+daysBefore] for notification scheduling (was crashing at runtime)
  • Pass scanned barcode/name from Scanner to ProductForm via store (data was lost on navigation)
  • Integrate dead sw-handler.ts into main.tsx (SW update logic was never executed)

Design & UX:

  • Add Bebas Neue display font via bunny.net for dashboard numbers and stats
  • Replace generic rounded cards with border-left ampel indicator on product cards and urgent list
  • Improve dashboard: 4-column ampel grid with large display numbers, better empty state with scan CTA
  • Better empty states: contextual messages based on filter/archive state
  • Fix all generic texts: "Dark Mode" → "Dunkles Design", "Suchen..." → "Name oder Barcode...", etc.
  • Add haptic feedback (navigator.vibrate) on barcode scan and product save
  • Improve delete confirmation text: "Nicht rückgängig machbar"

Performance:

  • Lazy-load BarcodeScanner component (splits 842KB bundle into 423KB + 420KB chunks)
  • Add loading="lazy" on product images
  • Update CSP to allow fonts.bunny.net

https://claude.ai/code/session_018567acDi8JQ3BHH8BxYX5b

Bugfixes:
- Add missing Dexie compound index [productId+daysBefore] for notification scheduling (was crashing at runtime)
- Pass scanned barcode/name from Scanner to ProductForm via store (data was lost on navigation)
- Integrate dead sw-handler.ts into main.tsx (SW update logic was never executed)

Design & UX:
- Add Bebas Neue display font via bunny.net for dashboard numbers and stats
- Replace generic rounded cards with border-left ampel indicator on product cards and urgent list
- Improve dashboard: 4-column ampel grid with large display numbers, better empty state with scan CTA
- Better empty states: contextual messages based on filter/archive state
- Fix all generic texts: "Dark Mode" → "Dunkles Design", "Suchen..." → "Name oder Barcode...", etc.
- Add haptic feedback (navigator.vibrate) on barcode scan and product save
- Improve delete confirmation text: "Nicht rückgängig machbar"

Performance:
- Lazy-load BarcodeScanner component (splits 842KB bundle into 423KB + 420KB chunks)
- Add loading="lazy" on product images
- Update CSP to allow fonts.bunny.net

https://claude.ai/code/session_018567acDi8JQ3BHH8BxYX5b
@BEKO2210 BEKO2210 merged commit 7aa8913 into main Mar 8, 2026
@BEKO2210 BEKO2210 deleted the claude/restore-github-actions-workflow-oueZr branch March 8, 2026 14:43
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6d519a5467

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +15 to +16
const BarcodeScanner = lazy(() =>
import('./components/BarcodeScanner').then((m) => ({ default: m.BarcodeScanner }))
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Avoid lazy-loading scanner in the offline-critical path

Loading BarcodeScanner via React.lazy makes scanner code unavailable until the chunk is fetched, so users who go offline before that fetch (for example on first install before a service worker controls the page) can no longer open the scanner; the dynamic import will fail and this route has no error boundary fallback. Because barcode capture is a core offline workflow here, this regression can block primary app usage in real offline sessions.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants