- Location: Settings → General → Currency
- Integration:
- All currency displays throughout the app now use the selected currency
- Currency symbol updates automatically (R, $, €, £, etc.)
- Supports: ZAR, USD, EUR, GBP, CAD, AUD, NGN, KES, GHS, INR, BRL, MXN, JPY, CNY
- Pages Updated:
- Dashboard (revenue, appointment prices)
- Appointments (prices, totals)
- Services (service prices)
- Employees (hourly rates, earnings)
- Reports (all revenue displays)
- Routes (appointment prices)
- WashReport (exported reports)
- Location: Settings → General → Date Format
- Options: MM/DD/YYYY, DD/MM/YYYY, YYYY-MM-DD
- Integration:
- All date displays use the selected format
- Applies to appointment dates, route dates, employee clock times
- Pages Updated:
- Dashboard (appointment dates)
- Appointments (scheduled dates)
- Employees (clock in/out times)
- Routes (route dates)
- Reports (date ranges)
- Location: Settings → General → Time Format
- Options: 12 Hour (AM/PM), 24 Hour
- Integration:
- All time displays respect the selected format
- Applies to appointment times, clock times, dashboard clock
- Pages Updated:
- Dashboard (header clock, appointment times)
- Appointments (scheduled times)
- Employees (clock in/out times)
- Routes (appointment times)
- Layout (top bar date/time)
- Location: Settings → General → Timezone
- Integration:
- Timezone selection available (currently stored, ready for timezone conversion)
- Expanded timezone options including:
- Africa: South Africa, Nigeria, Kenya, Egypt
- Americas: US timezones, Brazil
- Europe: UK, Central Europe, Moscow
- Asia: UAE, India, China, Japan
- Oceania: Australia, New Zealand
- Location: Settings → General
- Fields: Business Name, Phone, Email, Address
- Integration:
- Used in WashReport exports
- Available via branding utilities
- Displayed in reports and exports
- Location: Settings → Branding
- Integration:
- Logo displayed in Layout sidebar
- Colors applied throughout app
- Company tagline used in reports
- Location: Settings → Notifications
- Integration:
- Email notifications setting (ready for implementation)
- Appointment reminders setting
- Low stock alerts setting
- Reminder time configuration
- Location: Settings → Data → Data Synchronization
- Integration:
- Sync API URL configuration
- Auto-sync toggle
- Real-time sync status display
- Manual sync trigger
- Storage Events: Settings changes trigger storage events for cross-tab updates
- Custom Events:
settings-updatedevent for same-window updates - Auto-Refresh: All pages listen for settings changes and update displays automatically
- No Page Reload: Changes apply immediately without refresh
- ✅ Dashboard
- ✅ Appointments
- ✅ Employees
- ✅ Routes
- ✅ Reports
- ✅ Services
- ✅ Layout (top bar)
| Setting | Used In | Function |
|---|---|---|
| Currency | All pages with prices | formatCurrency() |
| Date Format | All date displays | formatDateWithSettings() |
| Time Format | All time displays | formatTimeWithSettings() |
| Timezone | Stored for future use | Timezone conversion |
| Business Name | Reports, Exports | Branding |
| Business Phone | Reports, Exports | Contact info |
| Business Email | Reports, Exports | Contact info |
| Business Address | Reports, Exports | Contact info |
| Logo | Layout sidebar | Visual branding |
| Colors | Throughout app | Theme customization |
| Sync API URL | Sync manager | Cloud sync |
| Auto Sync | Sync manager | Automatic syncing |
getAppSettings()- Get all settings from localStoragegetCurrencySymbol(currencyCode)- Get symbol for currency codeformatCurrencyWithSettings(amount)- Format currency using settingsformatDateWithSettings(date)- Format date using settingsformatTimeWithSettings(date)- Format time using settingsformatDateTimeWithSettings(date)- Format date + time using settingsformatDateDisplay(date, includeTime)- Display-friendly formattingformatDateReadable(date, includeTime)- Human-readable formatting
- Now uses settings for currency symbol and formatting
- Backward compatible with existing code
- Automatically updates when settings change
-
User Changes Setting:
- Settings page saves to localStorage
- Triggers
settings-updatedevent - Triggers
storageevent for cross-tab sync
-
Pages React to Changes:
- Event listeners detect settings changes
- Force re-render to update displays
- All currency/date/time formatting updates automatically
-
Formatting Functions:
- Read settings from localStorage on each call
- Always use current settings values
- No caching - always up-to-date
- Currency setting affects all price displays
- Date format setting affects all date displays
- Time format setting affects all time displays
- Settings changes apply immediately
- Settings persist across page reloads
- Settings sync across browser tabs
- All pages listen for settings updates
- WashReport exports use settings
- Reports use settings for currency/date
- Dashboard uses settings for display
- Layout uses settings for date/time
All settings are now fully integrated and actively used throughout the application. Changing any setting in the Settings page immediately updates all relevant displays across the entire app!