Build Configuration
- Add Stylus support via @rsbuild/plugin-stylus
- Add SVGR support via @rsbuild/plugin-svgr
- Update rsbuild.config.ts with custom configuration
- Add historyApiFallback for SPA routing
ESLint Configuration
- Create .eslintrc.json with react-app configuration
- Remove eslintConfig from package.json
CSS to Stylus Migration
Convert all 5 CSS files to Stylus (.styl) format:
- src/App.css to src/App.styl
- src/index.css to src/index.styl
- src/components/Calendar/Calendar.css to src/components/Calendar/Calendar.styl
- src/components/Calendar/CustomCalendar.css to src/components/Calendar/CustomCalendar.styl
- src/components/Menubar/Menubar.css to src/components/Menubar/Menubar.styl
- Update all imports from .css to .styl
- Preserve all styling rules and values
MUI Styling Cleanup
- Replace all MUI sx props with standard style props across 15+ components
- Convert MUI spacing units (mr: 2 to marginRight: 16px)
- Convert MUI shorthand props (p: 2 to padding: 16px, mb: 1 to marginBottom: 8px)
- Remove MUI-specific syntax (&.Mui-checked selectors)
- Maintain exact visual appearance
FullCalendar Fixes
- Comment out problematic CSS rule in CustomCalendar.styl
- Fix display issues with timegrid slot labels
Files Modified
- Config: rsbuild.config.ts, .eslintrc.json, package.json
- Styling: 5 CSS to Stylus conversions, 15+ component sx to style updates
- Components: All components using MUI sx props updated
Development Workflow
- Continue using existing development commands
- Stylus files are now the source of truth for styling
- MUI components work with standard style props
- ESLint uses familiar react-app rules
Dependencies Added
- @rsbuild/plugin-stylus
- @rsbuild/plugin-svgr
* feat: prepare project for cozy-ui migration
Build Configuration
- Add Stylus support via @rsbuild/plugin-stylus
- Add SVGR support via @rsbuild/plugin-svgr
- Update rsbuild.config.ts with custom configuration
- Add historyApiFallback for SPA routing
ESLint Configuration
- Create .eslintrc.json with react-app configuration
- Remove eslintConfig from package.json
CSS to Stylus Migration
Convert all 5 CSS files to Stylus (.styl) format:
- src/App.css to src/App.styl
- src/index.css to src/index.styl
- src/components/Calendar/Calendar.css to src/components/Calendar/Calendar.styl
- src/components/Calendar/CustomCalendar.css to src/components/Calendar/CustomCalendar.styl
- src/components/Menubar/Menubar.css to src/components/Menubar/Menubar.styl
- Update all imports from .css to .styl
- Preserve all styling rules and values
MUI Styling Cleanup
- Replace all MUI sx props with standard style props across 15+ components
- Convert MUI spacing units (mr: 2 to marginRight: 16px)
- Convert MUI shorthand props (p: 2 to padding: 16px, mb: 1 to marginBottom: 8px)
- Remove MUI-specific syntax (&.Mui-checked selectors)
- Maintain exact visual appearance
FullCalendar Fixes
- Comment out problematic CSS rule in CustomCalendar.styl
- Fix display issues with timegrid slot labels
Files Modified
- Config: rsbuild.config.ts, .eslintrc.json, package.json
- Styling: 5 CSS to Stylus conversions, 15+ component sx to style updates
- Components: All components using MUI sx props updated
Development Workflow
- Continue using existing development commands
- Stylus files are now the source of truth for styling
- MUI components work with standard style props
- ESLint uses familiar react-app rules
Dependencies Added
- @rsbuild/plugin-stylus
- @rsbuild/plugin-svgr
- Update Menubar test cases to match component changes (logo instead of text)
- Add required currentView prop to all Menubar test cases
- Fix Calendar test cases by adding calendarRef wrapper component
- Convert babel.config.ts to babel.config.js for Node.js 24 compatibility
- All 146 tests now pass successfully
- Replace calendar.svg with header-logo.svg for new Twake Calendar branding
- Remove text elements from MainTitle component, keeping only logo
- Update import path to use new header-logo.svg file
- Sync calendar view state between Calendar and Menubar components
- Fix Redux serialization errors by using string dates instead of Date objects
- Add null checks for eventResize handler to prevent undefined errors
- Implement dynamic slot label dimming near current time indicator
- Slot labels fade to opacity 0.2 when now indicator is within 15 minutes
- Add smooth CSS transitions for better user experience
- Handle edge cases around midnight for proper time calculation
- Update slot label visibility on view changes and time updates
- Add onViewChange callback to CalendarAppProps interface
- Update CalendarLayout to manage currentView state and pass callbacks
- Modify Menubar to receive currentView from parent instead of local state
- Sync view changes when clicking day headers in week view
- Ensure dropdown in Menubar updates when calendar view changes
- Remove refresh button test from Calendar.test.tsx
- Update Menubar tests to pass required props (calendarRef, onRefresh, currentDate)
- Update Calendar tests to pass calendarRef prop
- Remove outdated test cases from MiniCalendarColor.test.tsx that tested old headerToolbar
- Format code with prettier
- Remove headerToolbar from FullCalendar and set to false
- Create CalendarLayout component to manage state between Menubar and Calendar
- Add navigation controls (prev/today/next) to Menubar left-menu using MUI ButtonGroup
- Add current date/time display (April 2024 format) to Menubar left-menu
- Add view selector (Month/Week/Day) to Menubar right-menu using MUI Select
- Implement real-time date synchronization between Calendar and Menubar
- Change firstDay from 0 (Sunday) to 1 (Monday) to start week on Monday
- Update scrollTime from current time to 12:00 PM for better user experience
- Remove dynamic scroll calculation in favor of fixed noon position
- Fix date logic in test cases (September → August dates)
- Update test to use correct month index (7 for August vs 8 for September)
- Simplify test cases to focus on working Sunday scenario
- Add proper async/await handling for calendar initialization
- Ensure selectedWeek class logic works correctly in test environment
* [123] added people search in left side bar
* [#123] added toggle temp calendars
* [#123] added tests]
* fixup! [123] added people search in left side bar
* fixup! [#123] added toggle temp calendars
* [#123] fixed event creation on Enter
* fixup! [#123] fixed event creation on Enter
* fixup! [#123] fixed event creation on Enter
* fixup! [#123] fixed event creation on Enter
* fixup! [#123] fixed event creation on Enter
* fixup! [#123] fixed event creation on Enter
* fixup! [#123] fixed event creation on Enter
* fixup! [#123] fixed event creation on Enter
* [#123] added color diff for temp calendars
* fixup! [#123] fixed event creation on Enter
* fixup! [#123] added tests]
* fixup! [#123] added toggle temp calendars
---------
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
- Add comprehensive edge case tests for Menubar avatar display logic
- Add timezone fallback edge case tests for eventUtils
- Cover null/undefined/empty string scenarios for user data
- Cover invalid/missing timezone scenarios with UTC fallback
- Ensure robust error handling and graceful degradation