Skip to content

Commit 3e1d693

Browse files
committed
🐛 Fix: Prevent date changes from being overwritten after other changes
When changing a date and then changing another form field (like title), the date change was being lost. This makes sure that everytime the date is changed, the draft is updated.
1 parent c690077 commit 3e1d693

File tree

4 files changed

+14
-4
lines changed

4 files changed

+14
-4
lines changed

packages/web/src/views/Forms/EventForm/DateTimeSection/DatePickers/DatePickers.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
} from "@web/common/utils/web.date.util";
1010
import { DatePicker } from "@web/components/DatePicker/DatePicker";
1111
import { AlignItems } from "@web/components/Flex/styled";
12+
import { SetEventFormField } from "../../types";
1213
import { StyledDateFlex } from "./styled";
1314

1415
const stopPropagation = (e: React.MouseEvent<HTMLDivElement>) => {
@@ -22,6 +23,7 @@ interface Props {
2223
isStartDatePickerOpen: boolean;
2324
selectedEndDate: Date;
2425
selectedStartDate: Date;
26+
onSetEventField: SetEventFormField;
2527
setSelectedEndDate: (value: Date) => void;
2628
setSelectedStartDate: (value: Date) => void;
2729
setIsStartDatePickerOpen: (arg0: boolean) => void;
@@ -35,6 +37,7 @@ export const DatePickers: FC<Props> = ({
3537
isStartDatePickerOpen,
3638
selectedEndDate,
3739
selectedStartDate,
40+
onSetEventField,
3841
setIsEndDatePickerOpen,
3942
setIsStartDatePickerOpen,
4043
setSelectedEndDate,
@@ -142,12 +145,14 @@ export const DatePickers: FC<Props> = ({
142145
setSelectedStartDate(start);
143146
setIsStartDatePickerOpen(false);
144147
adjustComplimentDateIfNeeded("start", start);
148+
onSetEventField("startDate", dayjs(start).format(MONTH_DAY_YEAR));
145149
};
146150

147151
const onSelectEndDate = (end: Date) => {
148152
setSelectedEndDate(end);
149153
setIsEndDatePickerOpen(false);
150154
adjustComplimentDateIfNeeded("end", end);
155+
onSetEventField("endDate", dayjs(end).format(MONTH_DAY_YEAR));
151156
};
152157

153158
return (

packages/web/src/views/Forms/EventForm/DateTimeSection/DateTimeSection.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import dayjs from "dayjs";
22
import customParseFormat from "dayjs/plugin/customParseFormat";
3-
import React, { FC, SetStateAction } from "react";
3+
import React, { FC } from "react";
44
import { Categories_Event, Schema_Event } from "@core/types/event.types";
55
import { SelectOption } from "@web/common/types/component.types";
66
import { AlignItems } from "@web/components/Flex/styled";
7+
import { SetEventFormField } from "../types";
78
import { DatePickers } from "./DatePickers/DatePickers";
89
import { TimePickers } from "./TimePicker/TimePickers";
910
import { StyledDateTimeFlex } from "./styled";
@@ -18,6 +19,7 @@ export interface Props {
1819
inputColor?: string;
1920
isEndDatePickerOpen: boolean;
2021
isStartDatePickerOpen: boolean;
22+
onSetEventField: SetEventFormField;
2123
selectedEndDate: Date;
2224
selectedStartDate: Date;
2325
setEndTime: (value: SelectOption<string>) => void;
@@ -26,7 +28,7 @@ export interface Props {
2628
setSelectedEndDate: (value: Date) => void;
2729
setSelectedStartDate: (value: Date) => void;
2830
setStartTime: (value: SelectOption<string>) => void;
29-
setEvent: (event: Schema_Event) => SetStateAction<Schema_Event | void>;
31+
setEvent: (event: Schema_Event) => React.SetStateAction<Schema_Event> | void;
3032
startTime: SelectOption<string>;
3133
}
3234

@@ -39,6 +41,7 @@ export const DateTimeSection: FC<Props> = ({
3941
isStartDatePickerOpen,
4042
selectedEndDate,
4143
selectedStartDate,
44+
onSetEventField,
4245
setIsStartDatePickerOpen,
4346
setIsEndDatePickerOpen,
4447
setStartTime,
@@ -59,6 +62,7 @@ export const DateTimeSection: FC<Props> = ({
5962
isStartDatePickerOpen={isStartDatePickerOpen}
6063
selectedEndDate={selectedEndDate}
6164
selectedStartDate={selectedStartDate}
65+
onSetEventField={onSetEventField}
6266
setSelectedEndDate={setSelectedEndDate}
6367
setSelectedStartDate={setSelectedStartDate}
6468
setIsEndDatePickerOpen={setIsEndDatePickerOpen}

packages/web/src/views/Forms/EventForm/DateTimeSection/TimePicker/TimePickers.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { FC, SetStateAction, useState } from "react";
1+
import React, { FC, useState } from "react";
22
import { Schema_Event } from "@core/types/event.types";
33
import { SelectOption } from "@web/common/types/component.types";
44
import { Option_Time } from "@web/common/types/util.types";
@@ -19,7 +19,7 @@ interface Props {
1919
selectedEndDate: Date;
2020
selectedStartDate: Date;
2121
setEndTime: (value: SelectOption<string>) => void;
22-
setEvent: (event: Schema_Event) => SetStateAction<Schema_Event | void>;
22+
setEvent: (event: Schema_Event) => React.SetStateAction<Schema_Event> | void;
2323
setStartTime: (value: SelectOption<string>) => void;
2424
startTime: SelectOption<string>;
2525
}

packages/web/src/views/Forms/EventForm/EventForm.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,7 @@ export const EventForm: React.FC<FormProps> = ({
295295
inputColor={hoverColorByPriority[priority || Priorities.UNASSIGNED]}
296296
isEndDatePickerOpen={isEndDatePickerOpen}
297297
isStartDatePickerOpen={isStartDatePickerOpen}
298+
onSetEventField={onSetEventField}
298299
selectedEndDate={selectedEndDate}
299300
selectedStartDate={selectedStartDate}
300301
setEndTime={setEndTime}

0 commit comments

Comments
 (0)