Skip to content

Commit 0cb8a54

Browse files
committed
🧹 chore(checkpoint): recompute form position within each SomedayEventContainer
1 parent 4fb9f87 commit 0cb8a54

File tree

5 files changed

+22
-36
lines changed

5 files changed

+22
-36
lines changed

‎packages/web/src/views/Calendar/components/Sidebar/SomedayTab/SomedayTab.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export const SomedayTab: FC<Props> = ({
3232
}) => {
3333
const isProcessing = useAppSelector(selectIsGetSomedayEventsProcessing);
3434

35-
const somedayRef = useRef();
35+
const somedayRef = useRef<HTMLDivElement>(null);
3636
const weekLabel = useMemo(
3737
() => getWeekRangeLabel(viewStart, viewEnd),
3838
[viewEnd, viewStart],

‎packages/web/src/views/Calendar/components/Sidebar/SomedayTab/WeekSection/SomedayEvents/SomedayEvent/SomedayEvent.tsx‎

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import React from "react";
2-
import { ReferenceType } from "@floating-ui/react";
32
import { DraggableProvided, DraggableStateSnapshot } from "@hello-pangea/dnd";
43
import { Priorities } from "@core/constants/core.constants";
54
import { Categories_Event, Schema_Event } from "@core/types/event.types";
@@ -22,9 +21,6 @@ interface Props {
2221
onMigrate: Actions_Sidebar["onMigrate"];
2322
priority: Priorities;
2423
provided: DraggableProvided;
25-
// formRef: ((node: ReferenceType | null) => void) &
26-
// ref: ((node: ReferenceType | null) => void) &
27-
// ((node: ReferenceType | null) => void);
2824
formProps: Props_DraftForm;
2925
snapshot: DraggableStateSnapshot;
3026
}
@@ -62,20 +58,14 @@ export const SomedayEvent = ({
6258
onKeyDown={onKeyDown}
6359
priority={priority}
6460
role="button"
65-
// ref={ref}
6661
ref={provided.innerRef}
6762
>
68-
{/* <div ref={formProps.refs.setReference} {...formProps.getReferenceProps()}> */}
69-
<div ref={formProps.refs.setReference}>
70-
<SomedayEventRectangle
71-
category={category}
72-
event={event}
73-
onMigrate={onMigrate}
74-
// ref={formProps.refs.setReference}
75-
// ref={ref}
76-
// {...formProps.getReferenceProps()}
77-
/>
78-
</div>
63+
<SomedayEventRectangle
64+
category={category}
65+
event={event}
66+
onMigrate={onMigrate}
67+
formProps={formProps}
68+
/>
7969
</StyledNewSomedayEvent>
8070
);
8171
};

‎packages/web/src/views/Calendar/components/Sidebar/SomedayTab/WeekSection/SomedayEvents/SomedayEventContainer/SomedayEventContainer.tsx‎

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ import { FloatingFocusManager, FloatingPortal } from "@floating-ui/react";
33
import { DraggableProvided, DraggableStateSnapshot } from "@hello-pangea/dnd";
44
import { Priorities } from "@core/constants/core.constants";
55
import { Categories_Event, Schema_Event } from "@core/types/event.types";
6+
import { useDraftForm } from "@web/views/Calendar/components/Draft/hooks/state/useDraftForm";
67
import { useSidebarContext } from "@web/views/Calendar/components/Draft/sidebar/context/useSidebarContext";
78
import { SIDEBAR_OPEN_WIDTH } from "@web/views/Calendar/layout.constants";
89
import { SomedayEventForm } from "@web/views/Forms/SomedayEventForm/SomedayEventForm";
910
import { StyledFloatContainer } from "@web/views/Forms/SomedayEventForm/styled";
10-
import { Actions_Sidebar } from "../../../../../Draft/sidebar/hooks/useSidebarActions";
1111
import { Setters_Sidebar } from "../../../../../Draft/sidebar/hooks/useSidebarState";
1212
import { SomedayEvent } from "../SomedayEvent/SomedayEvent";
1313

@@ -17,7 +17,6 @@ export interface Props {
1717
isDrafting: boolean;
1818
isDragging: boolean;
1919
isOverGrid: boolean;
20-
onMigrate: Actions_Sidebar["onMigrate"];
2120
onSubmit: (event?: Schema_Event) => void;
2221
provided: DraggableProvided;
2322
snapshot: DraggableStateSnapshot;
@@ -30,15 +29,20 @@ export const SomedayEventContainer = ({
3029
isDrafting,
3130
isDragging,
3231
isOverGrid,
33-
onMigrate,
3432
onSubmit,
3533
provided,
3634
snapshot,
3735
setEvent,
3836
}: Props) => {
3937
const { actions, setters, state } = useSidebarContext();
4038

41-
const { formProps } = state;
39+
const formProps = useDraftForm(
40+
category,
41+
state.isSomedayFormOpen && state.draft?._id === event._id,
42+
actions.discard,
43+
actions.reset,
44+
setters.setIsSomedayFormOpen,
45+
);
4246

4347
const [isFocused, setIsFocused] = useState(false);
4448

@@ -61,18 +65,8 @@ export const SomedayEventContainer = ({
6165
priority={event.priority || Priorities.UNASSIGNED}
6266
provided={provided}
6367
snapshot={snapshot}
64-
onMigrate={onMigrate}
68+
onMigrate={actions.onMigrate}
6569
formProps={formProps}
66-
// ref={formProps.refs.setReference}
67-
// ref={provided.innerRef}
68-
// ref={(node) => {
69-
// if (node) {
70-
// // ref(node);
71-
// formProps.refs.setReference(node);
72-
// provided.innerRef(node);
73-
// }
74-
// }}
75-
// {...formProps.getReferenceProps()}
7670
/>
7771

7872
{state.isSomedayFormOpen && isDraftingThisEvent && (
@@ -83,7 +77,6 @@ export const SomedayEventContainer = ({
8377
strategy={formProps.strategy}
8478
top={formProps.y}
8579
left={SIDEBAR_OPEN_WIDTH}
86-
{...formProps.getFloatingProps()}
8780
>
8881
<SomedayEventForm
8982
event={event}

‎packages/web/src/views/Calendar/components/Sidebar/SomedayTab/WeekSection/SomedayEvents/SomedayEventContainer/SomedayEventRectangle.tsx‎

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,29 @@ import { Flex } from "@web/components/Flex";
44
import { AlignItems, JustifyContent } from "@web/components/Flex/styled";
55
import { FlexDirections } from "@web/components/Flex/styled";
66
import { Text } from "@web/components/Text";
7+
import { Props_DraftForm } from "@web/views/Calendar/components/Draft/context/DraftContext";
78
import { Actions_Sidebar } from "../../../../../Draft/sidebar/hooks/useSidebarActions";
89
import { StyledMigrateArrow, StyledRecurrenceText } from "./styled";
910

1011
interface Props {
1112
category: Categories_Event;
1213
event: Schema_Event;
1314
onMigrate: Actions_Sidebar["onMigrate"];
15+
formProps: Props_DraftForm;
1416
}
1517

1618
export const SomedayEventRectangle = ({
1719
category,
1820
event,
21+
formProps,
1922
onMigrate,
2023
}: Props) => {
2124
const target = category === Categories_Event.SOMEDAY_WEEK ? "week" : "month";
2225
const canMigrate =
2326
!event.recurrence?.rule || event.recurrence?.rule.length === 0;
2427

2528
return (
26-
<>
29+
<div ref={formProps.refs.setReference} {...formProps.getReferenceProps()}>
2730
<Flex
2831
alignItems={AlignItems.CENTER}
2932
direction={FlexDirections.ROW}
@@ -68,6 +71,6 @@ export const SomedayEventRectangle = ({
6871
</Flex>
6972
)}
7073
</Flex>
71-
</>
74+
</div>
7275
);
7376
};

‎packages/web/src/views/Forms/hooks/useEventForm.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ export const useEventForm = (
5757
const { context, x, y, refs, strategy } = useFloating({
5858
...options,
5959
open: isOpen,
60-
onOpenChange(newIsOpen, event, reason) {
60+
onOpenChange(newIsOpen: boolean, event: Event, reason?: OpenChangeReason) {
6161
onIsFormOpenChange(newIsOpen, event, reason);
6262
},
6363
});

0 commit comments

Comments
 (0)