refactor: Consolidate date libraries and optimize build chunks
v1.8.0: Fix holiday date offset bug, update version tracker, add Vercel config
v1.7.0-dev-web: Setup dual-platform build system for web and desktop
v1.7.0-dev-web: Initial branch for web version development
I am aware of a bug with the habsence planner, when settings day in the planner the days are ofset by +1 on the main screen. Holidays will show correctly on exports. I will finx a fix for this when I have time to work on this hobby project again. ~Daz
For those who don't want to download, or modify there own way, you can now access the most recent version online at https://www.heroplanner.co.uk/, ALL features are available, with an additional feature of cloud syncing (Not available on downloaded version)
Fix: Latest compact mode and UI improvements - hours column z-index, footer toggle, shift palette modal
Feature: Add toggleable footer with show/hide button
Feature: Hide bulk operations tip in compact mode
Feature: Reduce header and row padding in compact mode for better space utilization
Fix: Prevent text selection on schedule when floating panel is open
Fix: Prevent text selection in floating shift panel modal and toggle button
Fix: Clear text selection when shift palette panel opens
Feature: Hide shift icons in schedule cells when in compact mode
Fix: Hide mini shift palette in compact mode
Feature: Hide shift palette icons in compact mode to reduce header height
Feature: Auto-collapse header on small screens
Feature: Implement floating shift panel modal for small screens
Fix: Correct JSX className syntax for compact mode gap classes
Fix: Remove duplicate ShiftPanel props causing JSX error
Feature: Add compact mode for smaller screens
docs: Add Vercel deployment guide for future AI clients
Fix: Prevent toolbar layout shift when cloud sync status changes
Feature: Replace top contributors with role distribution in labour report
Feature: Add toggle for role descriptions in exports
Fix: Custom manager roles now properly recognized in coverage checker
Fix: Manager roles now properly recognized in coverage tracker
Dev: Setup web client & cloud syncing
Dev: Setup cloud syncing
docs: Add setup guide and v1.7.0 release notes
update: Change cloud sync URL reference from dazvtt.com to www.heroplanner.co.uk
Merge: Keep secured firebase.js with environment variables
fix: Restore firebase.js with environment variable configuration
security: Move Firebase config to environment variables and remove exposed API key
chore: Remove guide documentation and API key files - keep only essential project files
chore: Clean project state - v1.7.0 with cloud sync, JSON import, and archived staff filtering
chore: Bump version to 1.7.0 and update version checker
chore: Bump version to 1.7.0 and update version checker
fix: Exclude archived staff from absence planner dropdown and team overview
fix: Allow legacy file imports without dataVersion validation
fix: Allow importing older schedule files without dataVersion
feat: Add JSON file import feature to web version for desktop data migration
feat: Add missing state persistence to cloud sync (theme, shortcuts, superhero mode)
Update: Link download button to GitHub releases
feat: Add desktop download button to web version header
UX: Improve error message for file operations on web version
Fix: Block auto-save immediately on login to prevent stale localStorage override
Fix: Skip localStorage load when cloud sync enabled to prevent stale data override
Fix: Prevent auto-save from overwriting cloud data during auto-load phase
Fix: Add defensive guards for overrides and default object access in App.jsx and shifts.js
Fix: Add defensive guard for coverageConfig access by dayName in coverageEngine
Fix: Add defensive guard for shiftSettings.default access in complianceChecker weekly hours check
Fix: Add defensive guards for shiftSettings and overrides access in shiftCalculations and coverageUtils
Fix: Add defensive guards for shiftSettings.overrides access in coverage calculation
Fix: Set coverageSettings to empty instead of DEFAULT_COVERAGE_CONFIG during cloud load to prevent day name misalignment
Add defensive null checks for monitoringTimes and coverageSettings
Fix: Guard dynamicDAYS reduce operations in loadInitialData (line 844)
Add guard check for dynamicDAYS before using in reduce operations
Add null check for shiftSettings before accessing nested properties
Add validation and error handling for shiftSettings and coverage settings on cloud load
Use full loadCloudDataIntoState function in auto-load (not simplified version)
Re-enable auto-load with proper Firebase calls to avoid circular dependency
Temporarily disable auto-load to debug TDZ error (local testing successful)
Fix: Move loadCloudDataIntoState before auto-load effect to fix TDZ error
Fix: Remove initFirebase from useEffect dependencies to fix circular dependency
Fix: Add guard clause for syncStatus to prevent initialization error
Add auto-load on login and sync status indicator in header
Sync cloud data to localStorage after loading to ensure UI updates
Add useEffect to monitor staff state changes
Add detailed logging to debug state updates on force load
Fix: Force load now applies cloud data to app state
Add logging to auto-sync to help debug save/load issues
Temporarily disable cloud data loading on login to fix white screen error
Fix: Properly initialize monitoringTimes and coverageSettings from cloud data
Fix cloud sync: load data from Firebase when user logs in
Add cloud sync debugging tools to CloudLoginModal
Fix Cloud Sync for desktop: show informative message instead of Firebase errors
Fix Firebase initialization by lazy loading modules
Improve Firebase error handling and initialization
Add Firebase cloud sync documentation
v1.7.0: Add Firebase cloud sync with authentication
chore: Remove guide documentation and API key files - keep only essential project files
chore: Clean project state - v1.7.0 with cloud sync, JSON import, and archived staff filtering
chore: Bump version to 1.7.0 and update version checker
fix: Exclude archived staff from absence planner dropdown and team overview
fix: Allow legacy file imports without dataVersion validation
fix: Allow importing older schedule files without dataVersion
feat: Add JSON file import feature to web version for desktop data migration
feat: Add missing state persistence to cloud sync (theme, shortcuts, superhero mode)
Update: Link download button to GitHub releases
feat: Add desktop download button to web version header
UX: Improve error message for file operations on web version
Fix: Block auto-save immediately on login to prevent stale localStorage override
Fix: Skip localStorage load when cloud sync enabled to prevent stale data override
Fix: Prevent auto-save from overwriting cloud data during auto-load phase