fix: improve event editing UX and allday toggle behavior

- Fix allday toggle: when unchecking allday, set end date = start date with rounded time (30min intervals)
- Fix ResponsiveDialog CSS: set height only for expanded mode, remove maxHeight from normal mode
- Show repeat info when editing solo instance of recurring event (checkbox checked and disabled)
- Clear old event UI when updating recurring event allday status
This commit is contained in:
lenhanphung
2025-10-13 11:14:55 +07:00
committed by Benoit TELLIER
parent a31825ce3a
commit 5017c1bd6b
4 changed files with 49 additions and 13 deletions
+8 -2
View File
@@ -65,6 +65,7 @@ export default function EventPreviewModal({
const [showAllAttendees, setShowAllAttendees] = useState(false);
const [openFullDisplay, setOpenFullDisplay] = useState(false);
const [openUpdateModal, setOpenUpdateModal] = useState(false);
const [hidePreview, setHidePreview] = useState(false);
const [openEditModePopup, setOpenEditModePopup] = useState<string | null>(
null
);
@@ -108,7 +109,7 @@ export default function EventPreviewModal({
return (
<>
<ResponsiveDialog
open={open}
open={open && !hidePreview}
onClose={() => onClose({}, "backdropClick")}
style={{ overflow: "auto" }}
title={
@@ -143,10 +144,12 @@ export default function EventPreviewModal({
onClick={() => {
if (isRecurring) {
setAfterChoiceFunc(() => () => {
setHidePreview(true);
setOpenUpdateModal(true);
});
setOpenEditModePopup("edit");
} else {
setHidePreview(true);
setOpenUpdateModal(true);
}
}}
@@ -509,7 +512,10 @@ export default function EventPreviewModal({
/>
<EventUpdateModal
open={openUpdateModal}
onClose={() => setOpenUpdateModal(false)}
onClose={() => {
setOpenUpdateModal(false);
setHidePreview(false);
}}
onCloseAll={() => {
setOpenUpdateModal(false);
onClose({}, "backdropClick");
+2 -1
View File
@@ -508,7 +508,8 @@ function EventUpdateModal({
const repetitionRulesChanged =
JSON.stringify(oldRepetition) !== JSON.stringify(newRepetition) ||
timezoneChanged;
timezoneChanged ||
event.allday !== allday;
if (repetitionRulesChanged) {
// Repetition rules changed - need server to recalculate instances