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.appointmentTimeto 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_statuswhenundefined.✅ 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
AnalyticsDatainterface withfullMonthsupport 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_parentsinInvoicetype.💸 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
useEffectdependencies 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.