fix: improve video conference link positioning and null safety
- Fix calendarUtils.ts null safety for calendars[id] access - Update video conference link to be added on line 2 instead of line 3 - Update regex in handleDeleteVideoConference to match new format - Update all test cases for videoConferenceUtils to match new format - Add null checks in updateCalsDetails function
This commit is contained in:
@@ -74,7 +74,7 @@ export const extractEvents = (
|
||||
) => {
|
||||
let filteredEvents: CalendarEvent[] = [];
|
||||
selectedCalendars.forEach((id) => {
|
||||
if (calendars[id].events) {
|
||||
if (calendars[id] && calendars[id].events) {
|
||||
filteredEvents = filteredEvents
|
||||
.concat(
|
||||
Object.keys(calendars[id].events).map(
|
||||
@@ -118,16 +118,18 @@ export const updateCalsDetails = (
|
||||
|
||||
if (rangeKey !== previousRangeKey) {
|
||||
selectedCalendars?.forEach((id) => {
|
||||
dispatch(
|
||||
getCalendarDetailAsync({
|
||||
calId: id,
|
||||
match: {
|
||||
start: formatDateToYYYYMMDDTHHMMSS(calendarRange.start),
|
||||
end: formatDateToYYYYMMDDTHHMMSS(calendarRange.end),
|
||||
},
|
||||
calType,
|
||||
})
|
||||
);
|
||||
if (id) {
|
||||
dispatch(
|
||||
getCalendarDetailAsync({
|
||||
calId: id,
|
||||
match: {
|
||||
start: formatDateToYYYYMMDDTHHMMSS(calendarRange.start),
|
||||
end: formatDateToYYYYMMDDTHHMMSS(calendarRange.end),
|
||||
},
|
||||
calType,
|
||||
})
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -270,7 +270,7 @@ function EventPopover({
|
||||
const handleDeleteVideoConference = () => {
|
||||
// Remove video conference footer from description
|
||||
const updatedDescription = description.replace(
|
||||
/\n\nVisio: https?:\/\/[^\s]+/,
|
||||
/\nVisio: https?:\/\/[^\s]+/,
|
||||
""
|
||||
);
|
||||
setDescription(updatedDescription);
|
||||
@@ -500,7 +500,6 @@ function EventPopover({
|
||||
/>
|
||||
}
|
||||
label="Mark as important"
|
||||
sx={{ padding: "0 8px 0 0" }}
|
||||
/>
|
||||
<FormControlLabel
|
||||
control={
|
||||
@@ -534,7 +533,6 @@ function EventPopover({
|
||||
/>
|
||||
}
|
||||
label="All day"
|
||||
sx={{ padding: "0 8px 0 0" }}
|
||||
/>
|
||||
<FormControlLabel
|
||||
control={
|
||||
@@ -596,7 +594,7 @@ function EventPopover({
|
||||
</FieldWithLabel>
|
||||
|
||||
<FieldWithLabel label="Video meeting" isExpanded={showMore}>
|
||||
<Box display="flex" gap={1} mb={1} alignItems="center">
|
||||
<Box display="flex" gap={1} alignItems="center">
|
||||
<Button
|
||||
startIcon={<VideocamIcon />}
|
||||
onClick={handleAddVideoConference}
|
||||
|
||||
@@ -49,7 +49,7 @@ describe("videoConferenceUtils", () => {
|
||||
const description = "";
|
||||
const meetingLink = "https://meet.linagora.com/abc-defg-hij";
|
||||
const result = addVideoConferenceToDescription(description, meetingLink);
|
||||
expect(result).toBe("\n\nVisio: https://meet.linagora.com/abc-defg-hij");
|
||||
expect(result).toBe("\nVisio: https://meet.linagora.com/abc-defg-hij");
|
||||
});
|
||||
|
||||
it("should add video conference footer to existing description", () => {
|
||||
@@ -57,7 +57,7 @@ describe("videoConferenceUtils", () => {
|
||||
const meetingLink = "https://meet.linagora.com/abc-defg-hij";
|
||||
const result = addVideoConferenceToDescription(description, meetingLink);
|
||||
expect(result).toBe(
|
||||
"This is a meeting description.\n\nVisio: https://meet.linagora.com/abc-defg-hij"
|
||||
"This is a meeting description.\nVisio: https://meet.linagora.com/abc-defg-hij"
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -65,7 +65,7 @@ describe("videoConferenceUtils", () => {
|
||||
describe("extractVideoConferenceFromDescription", () => {
|
||||
it("should extract video conference link from description", () => {
|
||||
const description =
|
||||
"Meeting description.\n\nVisio: https://meet.linagora.com/abc-defg-hij";
|
||||
"Meeting description.\nVisio: https://meet.linagora.com/abc-defg-hij";
|
||||
const result = extractVideoConferenceFromDescription(description);
|
||||
expect(result).toBe("https://meet.linagora.com/abc-defg-hij");
|
||||
});
|
||||
|
||||
@@ -42,7 +42,7 @@ export function addVideoConferenceToDescription(
|
||||
description: string,
|
||||
meetingLink: string
|
||||
): string {
|
||||
const footer = `\n\nVisio: ${meetingLink}`;
|
||||
const footer = `\nVisio: ${meetingLink}`;
|
||||
return description + footer;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user