Commit Graph

104 Commits

Author SHA1 Message Date
lenhanphung 3261479874 refactor: improve EventModal UI labels and visibility controls
- Rename 'Alarm' to 'Notification' for better clarity
- Rename 'Attendees' to 'Participants' with updated placeholder text
- Replace 'Visibility' dropdown with 'Visible to' toggle buttons (All/Participants)
- Remove CONFIDENTIAL option, keep only PUBLIC and PRIVATE
- Add icons (PublicIcon/LockIcon) with fixed sizing for toggle buttons
- Rename 'Show as' to 'Show me as'
- Fix ResponsiveDialog scroll bar positioning in expanded mode
- Update PeopleSearch placeholder to 'Start typing a name or email'
2025-10-02 14:19:05 +07:00
lenhanphung 7c6240442c feat: redesign event modal with responsive dialog and improved layout
Implemented a new ResponsiveDialog component and redesigned EventModal
with better UX for both normal and extended modes.

New Features:
- Created reusable ResponsiveDialog component (src/components/Dialog/)
  * Normal mode: 685px centered popup
  * Extended mode: fullscreen with 90px header preservation
  * Auto spacing via MUI Stack (16px normal, 24px extended)
  * Back arrow navigation in extended mode
  * No backdrop/shadow in extended mode for seamless integration
  * Configurable props for all dimensions and behaviors

EventModal Improvements:
- Replaced native checkbox with MUI Checkbox component
- Migrated from Popover to ResponsiveDialog
- Reorganized field layout

=> Comprehensive documentation in Dialog/README.md

Note: RepeatEvent integration tests need additional refactoring (tracked separately)
2025-10-02 14:19:05 +07:00
lenhanphung 3870bceb6d feat: prepare project for cozy-ui migration (#157)
* 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
2025-10-01 17:31:18 +02:00
Camille Moussu 475ab79731 Delete Calendars (#148)
* [#66] added delete popup and logic

* [#66] Homogenize Dialogs components between modify and delete to keep them coherent+ fixed tests

* [#66] added tests

* [#66] text adjusment

* fixup! [#66] added delete popup and logic

---------

Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2025-09-30 10:27:47 +02:00
Camille Moussu ac9db2b520 [#101] fixed regex for attendee mail cleanup 2025-09-30 06:42:31 +02:00
Camille Moussu 58324cd8e0 [#146] fix error in loading (#147)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2025-09-25 16:52:51 +02:00
lenhanphung 7b8a2e74a5 fix prettier 2025-09-25 17:16:12 +07:00
lenhanphung b9d7a8fa6b feat: enhance calendar with view sync, Redux fixes, and dynamic slot label dimming
- 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
2025-09-25 17:12:07 +07:00
Camille Moussu 00c0b58032 sidebar availability search (#128)
* [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>
2025-09-24 17:05:45 +02:00
Camille Moussu 3dd7e1a985 [#133] added dl event button (#134)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2025-09-23 12:33:08 +02:00
Camille Moussu cd724a30a0 ability to register a shared calendar (#118)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2025-09-22 20:45:02 +02:00
lenhanphung dfecb33236 Fix: prettier
Feat: main grid start at current time
2025-09-19 14:41:51 +07:00
lenhanphung e24aa40cce fix(user): guard openpaasId access during initial render\n\n- Use optional chaining across components reading userData.openpaasId\n- Prevent F5 crash when user data not yet hydrated\n- Cleanup unused imports 2025-09-19 14:29:10 +07:00
lenhanphung a053318bc0 style: fix prettier formatting issues
- Fix formatting in Calendar.css, Calendar.tsx
- Fix formatting in Menubar.tsx
- Fix formatting in eventUtils.ts
2025-09-19 13:40:02 +07:00
lenhanphung 0d662358cd fix: add timezone fallback for event creation
- Fix timezone lookup error in calendarEventToJCal
- Add UTC fallback when timezone not found
2025-09-19 13:40:02 +07:00
lenhanphung cddebad9b7 resolve conflict 2025-09-19 13:40:02 +07:00
Camille Moussu b8cef20b9e [fix] added missing import for openpaas id and calendars (#120)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2025-09-17 17:16:47 +02:00
Camille Moussu f640cac8ac update cal details (#113)
* [#65] added button to access cal details

* [#65] added proppatch call

* [#65] added tests

* fixup! [#65] added proppatch call

* [#65] added trimming to name and desc

* fixup! [#65] added proppatch call

* fixup! [#65] added proppatch call

* fixup! [#65] added proppatch call

---------

Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2025-09-17 15:05:27 +02:00
Camille Moussu 5522673342 remove user mail from mail list when sending mail to attendees (#110)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2025-09-15 17:17:54 +02:00
lenhanphung 72cd8c6597 Merge pull request #112 from linagora/fix/auth-flow
fix(auth): preserve session on reload and correct 401 redirect flow
2025-09-15 16:46:42 +07:00
Camille Moussu 2a84eba84b [#64] fixed css and empty name bug 2025-09-15 10:25:39 +02:00
Camille Moussu 9d43c15ee0 [#64] added creation modal to list and api call 2025-09-15 10:25:39 +02:00
Camille Moussu d1140a47b2 [#104] added css to make long title prettier (#111)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2025-09-15 10:24:37 +02:00
lenhanphung a4394e6a25 fix(auth): preserve session on reload and correct 401 redirect flow
- Save PKCE params to sessionStorage.redirectState on 401 instead of overwriting tokenSet

- Persist userData in sessionStorage after OIDC callback for later hydration

- Hydrate Redux (tokens + userData) from sessionStorage on app start to avoid forced re-login

- Keep SPA single route '/' behavior unchanged; only improves auth robustness

Files: src/utils/apiUtils.ts, src/features/User/LoginCallback.tsx, src/features/User/HandleLogin.tsx
2025-09-15 11:46:20 +07:00
Camille Moussu d76775c7d2 [#106] added prettier check to jenkins and prettified files (#109)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2025-09-12 11:05:52 +02:00
Camille Moussu 3f683cad2f [#72] removed unused import 2025-09-11 18:23:00 +02:00
Camille Moussu 7b5e03ac7e [#72] show event duplicator in the event preview 2025-09-11 18:22:59 +02:00
Camille Moussu 1a086e9384 [#72] added tests 2025-09-11 18:22:11 +02:00
Camille Moussu 8f2277b278 [#72] added duplicate button and fixed tests broken by new interaction between components 2025-09-11 18:22:11 +02:00
Camille Moussu e486c9637e [#73] added tests 2025-09-11 12:19:17 +02:00
Camille Moussu 61ca0ce198 [#73] added button to send mail 2025-09-11 11:41:31 +02:00
Camille Moussu 24c6788c2c [#92] added free busy and missing tests 2025-09-09 17:19:27 +02:00
Camille Moussu 3e9530a0a5 [#78] fixed undefined email 2025-09-09 14:52:51 +02:00
Camille Moussu 3d48cd7fd7 [#78] fixed f5 update 2025-09-09 11:53:13 +02:00
Camille Moussu 94a18dd845 [#78] added tests 2025-09-09 11:53:13 +02:00
Camille Moussu b87b77beef [#78] added valarm support 2025-09-09 11:53:12 +02:00
Camille Moussu 37ab51784c [#77] added event start day selected by default when repetition is set to weekly 2025-09-08 11:23:24 +02:00
Camille Moussu 353d6761b4 [#77] event date modification doesnt duplicate anymore 2025-09-08 09:37:01 +02:00
Camille Moussu 2f071303de [#77] fixed delete refresh issue and added more tests 2025-09-05 16:41:05 +02:00
Camille Moussu 0549a77d92 [#77] fixed when getEventAsync is dispatched to prevent missing data 2025-09-05 13:07:51 +02:00
Camille Moussu 8efeea8102 [#77] added tests and fixed bug 2025-09-05 12:36:58 +02:00
Camille Moussu 6de3280851 [#77] fixed occurrences other typo, augmented the match window to update the calendar 2025-09-04 18:06:32 +02:00
Camille Moussu 80028b3f26 [#77] added repetition proper display and editing 2025-09-04 15:02:55 +02:00
Camille Moussu a58373854e [#7] removed free/busy field 2025-09-03 16:09:21 +02:00
Camille Moussu b3c05e0aa5 [#7] fixed attendance update when editing event 2025-09-03 11:10:17 +02:00
Camille Moussu a83bf2fd5c [#7] removed timezones from popup and added toggle when select free busy 2025-09-03 10:46:22 +02:00
Camille Moussu ee01e1d027 [#77] added complex ui for repetition, fixed broken tests due to new feature 2025-09-02 18:14:55 +02:00
Camille Moussu b6f55da506 [#7] fixed state update when moving event from calednars 2025-08-29 14:50:52 +02:00
Camille Moussu 64f3ff0aa4 [#7] fixed move destination 2025-08-29 10:21:43 +02:00
Camille Moussu 8ce8839383 [#7] fixed attendee management in the list 2025-08-28 16:45:49 +02:00