Skip to main content

Release Notes 1.3

This PR delivers a comprehensive set of bug fixes, UX improvements, backend enhancements, and new features—with a strong focus on grooming appointments, invoicing, SEO, and commission tracking. 🧼🐾💼


🐾 Grooming Module Updates & Enhancements

  • ✅ Improved calendar UI and appointment time slot logic for smoother booking.

  • ✅ Fixed bug where selecting multiple services caused conflicts.

  • ✅ Added fallback rendering delay with await new Promise(resolve => setTimeout(...)).

  • ✅ Resolved ReferenceError: timeSlot is not defined.

  • ✅ Enhanced date parsing and formatting with formatDateLocalized().

  • ✅ Added null checks on service.appointmentTime to prevent runtime crashes.

  • ✅ Introduced & styled grooming checkout page.

  • ✅ Fixed syntax & HTML nesting issues in grooming components.

  • ✅ Updated grooming summary email with currency & unit formatting.

  • ✅ Refined grooming check-in flow and added more granular time options.

  • ✅ Handled appointment.invoice_status when undefined.

  • ✅ Updated grooming weight unit display for clarity.


💼 Grooming Commission Feature

  • ✨ Added staff commission tracking per grooming appointment.

  • 🔍 Integrated commission logic into grooming-related reporting modules.


📈 Reports & Analytics

  • 🧩 Improved reporting performance and structure.

  • 🗓 Extended AnalyticsData interface with fullMonth support for better charting.

  • ✅ Enhanced error handling with typed error objects and cleaner logging.


💳 Stripe Integration Fixes

  • 🔧 Fixed issues in Stripe subscription logic to handle edge cases reliably.


🧾 Invoice Type & Backend Fixes

  • ✅ Fixed type mismatch on pet_parents in Invoice type.

  • 💸 Fixed currency formatting in invoice dashboard & grooming complete screen.

  • 🛠️ Explicitly typed availability in TypeScript to resolve compile errors.

  • ✅ Ran DB migration to correct foreign key constraints.


🌐 SEO & Localization Improvements

  • ✅ Fixed 404 errors flagged by Google Search Console.

  • ✅ Resolved bugs in getLocalizationSetting() logic.

  • ✅ Fixed inconsistent useEffect dependencies in localization hook.

  • 🌐 Simplified localization data fetching on invoicing page.


🔧 Technical Fixes

  • ✅ Ensured createClient() is properly awaited (returns a Promise).

  • ✅ Confirmed correct usage of getLocalizationSettings() across modules.