diff --git a/__test__/features/Events/EventDisplay.test.tsx b/__test__/features/Events/EventDisplay.test.tsx
index 1d315c2..f794acc 100644
--- a/__test__/features/Events/EventDisplay.test.tsx
+++ b/__test__/features/Events/EventDisplay.test.tsx
@@ -662,7 +662,78 @@ describe("Event Preview Display", () => {
preloadedState.calendars.list["667037022b752d0026472254/cal1"].events[
"event1"
];
- const expectedUrl = `test/mailto/?uri=mailto:john@test.com?subject=Test Event`;
+ const expectedUrl = `test/mailto/?uri=mailto:john@test.com?subject=Test%20Event`;
+
+ expect(mockOpen).toHaveBeenCalledWith(expectedUrl);
+ });
+
+ it("message button encodes special characters in event title correctly", () => {
+ (window as any).MAIL_SPA_URL = "test";
+ const mockOpen = jest.fn();
+ window.open = mockOpen;
+
+ const specialCharState = {
+ ...preloadedState,
+ calendars: {
+ ...preloadedState.calendars,
+ list: {
+ ...preloadedState.calendars.list,
+ "667037022b752d0026472254/cal1": {
+ ...preloadedState.calendars.list["667037022b752d0026472254/cal1"],
+ events: {
+ ...preloadedState.calendars.list["667037022b752d0026472254/cal1"]
+ .events,
+ eventWithSpecialChars: {
+ uid: "eventWithSpecialChars",
+ title: "Meeting & Discussion? #Important",
+ calId: "667037022b752d0026472254/cal1",
+ start: day.toISOString(),
+ end: day.toISOString(),
+ organizer: { cn: "test", cal_address: "test@test.com" },
+ attendee: [
+ {
+ cn: "test",
+ cal_address: "test@test.com",
+ partstat: "NEEDS-ACTION",
+ rsvp: "TRUE",
+ role: "REQ-PARTICIPANT",
+ cutype: "INDIVIDUAL",
+ },
+ {
+ cn: "John",
+ cal_address: "john@test.com",
+ partstat: "NEEDS-ACTION",
+ rsvp: "TRUE",
+ role: "REQ-PARTICIPANT",
+ cutype: "INDIVIDUAL",
+ },
+ ],
+ },
+ },
+ },
+ },
+ },
+ };
+
+ renderWithProviders(
+ ,
+ specialCharState
+ );
+
+ fireEvent.click(screen.getByTestId("MoreVertIcon"));
+ const emailButton = screen.getByRole("menuitem", {
+ name: "eventPreview.emailAttendees",
+ });
+ expect(emailButton).toBeInTheDocument();
+
+ fireEvent.click(emailButton);
+
+ const expectedUrl = `test/mailto/?uri=mailto:john@test.com?subject=Meeting%20%26%20Discussion%3F%20%23Important`;
expect(mockOpen).toHaveBeenCalledWith(expectedUrl);
});
diff --git a/rsbuild.config.ts b/rsbuild.config.ts
index 6a0d427..71c1992 100644
--- a/rsbuild.config.ts
+++ b/rsbuild.config.ts
@@ -29,9 +29,4 @@ export default defineConfig({
"react-dom": require.resolve("react-dom"),
},
},
- performance: {
- chunkOverflow: {
- maxAssetSize: 2000000,
- },
- },
});
diff --git a/src/components/Calendar/CalendarItemList.tsx b/src/components/Calendar/CalendarItemList.tsx
index 9a7f42c..8a05851 100644
--- a/src/components/Calendar/CalendarItemList.tsx
+++ b/src/components/Calendar/CalendarItemList.tsx
@@ -1,10 +1,10 @@
import React from "react";
import { MenuItem } from "@linagora/twake-mui";
-import { Calendars } from "../../features/Calendars/CalendarTypes";
+import { Calendar } from "../../features/Calendars/CalendarTypes";
import { CalendarName } from "./CalendarName";
export function CalendarItemList(
- userPersonalCalendars: Calendars[]
+ userPersonalCalendars: Calendar[]
): React.ReactNode {
return Object.values(userPersonalCalendars).map((calendar) => (