Skip to content

Commit c5c3827

Browse files
faraazbZuhairAhmed-cs
authored andcommitted
Revert "fix: update field event is not sent when input event does not occur in inline editable fields"
1 parent c02bb41 commit c5c3827

5 files changed

Lines changed: 15 additions & 54 deletions

File tree

src/visualBuilder/generators/generateOverlay.tsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import EventListenerHandlerParams from "../listeners/types";
88
import { FieldSchemaMap } from "../utils/fieldSchemaMap";
99
import { FieldDataType } from "../utils/types/index.types";
1010
import { getFieldType } from "../utils/getFieldType";
11+
import { CslpData } from "../../cslp/types/cslp.types";
1112
import { getMultilinePlaintext } from "../utils/getMultilinePlaintext";
1213
import { showAllHiddenHighlightedCommentIcons } from "./generateHighlightedComment";
1314

@@ -118,10 +119,7 @@ export function hideFocusOverlay(elements: HideOverlayParams): void {
118119
}
119120
});
120121

121-
if (
122-
!noTrigger &&
123-
VisualBuilder.VisualBuilderGlobalState.value.focusFieldReceivedInput
124-
) {
122+
if (!noTrigger) {
125123
sendFieldEvent({
126124
visualBuilderContainer,
127125
eventType: VisualBuilderPostMessageEvents.UPDATE_FIELD,
@@ -138,8 +136,6 @@ export function hideFocusOverlay(elements: HideOverlayParams): void {
138136
}
139137
}
140138
VisualBuilder.VisualBuilderGlobalState.value.focusFieldValue = null;
141-
VisualBuilder.VisualBuilderGlobalState.value.focusFieldReceivedInput =
142-
false;
143139
cleanIndividualFieldResidual({
144140
overlayWrapper: visualBuilderOverlayWrapper,
145141
visualBuilderContainer: visualBuilderContainer,

src/visualBuilder/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ interface VisualBuilderGlobalStateImpl {
6262
previousHoveredTargetDOM: Element | null;
6363
previousEmptyBlockParents: Element[] | [];
6464
focusFieldValue: string | null;
65-
focusFieldReceivedInput: boolean;
6665
audienceMode: boolean;
6766
locale: string;
6867
variant: string | null;
@@ -83,7 +82,6 @@ export class VisualBuilder {
8382
previousHoveredTargetDOM: null,
8483
previousEmptyBlockParents: [],
8584
focusFieldValue: null,
86-
focusFieldReceivedInput: false,
8785
audienceMode: false,
8886
locale: Config.get().stackDetails.masterLocale || "en-us",
8987
variant: null,
@@ -210,7 +208,9 @@ export class VisualBuilder {
210208
);
211209

212210
const emptyBlockParents = Array.from(
213-
document.querySelectorAll(`.${VB_EmptyBlockParentClass}`)
211+
document.querySelectorAll(
212+
`.${VB_EmptyBlockParentClass}`
213+
)
214214
);
215215

216216
const previousEmptyBlockParents = VisualBuilder

src/visualBuilder/utils/__test__/focusOverlayWrapper.test.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,6 @@ describe("hideFocusOverlay", () => {
156156
initUI({
157157
resizeObserver: mockResizeObserver,
158158
});
159-
VisualBuilder.VisualBuilderGlobalState.value.focusFieldReceivedInput =
160-
true;
161159
visualBuilderContainer = document.querySelector(
162160
".visual-builder__container"
163161
) as HTMLDivElement;

src/visualBuilder/utils/__test__/handleFieldMouseDown.test.ts

Lines changed: 10 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,12 @@ import * as generateOverlay from "../../generators/generateOverlay";
66
import { VisualBuilderPostMessageEvents } from "../types/postMessage.types";
77
import { FieldDataType } from "../types/index.types";
88
import userEvent from "@testing-library/user-event";
9-
import { waitFor } from "@testing-library/preact";
10-
import { VisualBuilder } from "../../index";
11-
12-
vi.mock("../../index", async () => ({
13-
VisualBuilder: {
14-
VisualBuilderGlobalState: {
15-
value: { focusFieldReceivedInput: false },
16-
},
17-
},
18-
}));
9+
import { waitFor, screen } from "@testing-library/preact";
1910

2011
vi.mock("lodash-es", async () => ({
2112
...(await import("lodash-es")),
2213
throttle: vi.fn((fn) => fn),
23-
}));
24-
14+
}))
2515
describe("handle numeric field key down", () => {
2616
let h1: HTMLHeadingElement;
2717
let spiedPreventDefault: MockInstance<(e: []) => void> | undefined;
@@ -127,7 +117,7 @@ describe("handle numeric field key down", () => {
127117
});
128118

129119
test("should only accept characters like a number input", async () => {
130-
h1.innerHTML = "";
120+
h1.innerHTML = '';
131121
await userEvent.click(h1);
132122
await userEvent.keyboard("ab56c78e-h10");
133123

@@ -190,10 +180,7 @@ describe("handle single line field key down", () => {
190180
h1 = document.createElement("h1");
191181
h1.innerHTML = "2.2";
192182
h1.setAttribute("contenteditable", "true");
193-
h1.setAttribute(
194-
VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,
195-
FieldDataType.SINGLELINE
196-
);
183+
h1.setAttribute(VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY, FieldDataType.SINGLELINE);
197184

198185
h1.addEventListener("keydown", (e) => {
199186
spiedPreventDefault = vi.spyOn(e, "preventDefault");
@@ -222,7 +209,7 @@ describe("handle single line field key down", () => {
222209

223210
expect(spiedPreventDefault).toHaveBeenCalledTimes(1);
224211
});
225-
});
212+
})
226213

227214
describe("`handleFieldInput`", () => {
228215
let h1: HTMLHeadingElement;
@@ -251,30 +238,18 @@ describe("`handleFieldInput`", () => {
251238
});
252239

253240
test("should call `sendFieldEvent` on input event", () => {
254-
const spiedSendFieldEvent = vi.spyOn(generateOverlay, "sendFieldEvent");
241+
const spiedSendFieldEvent = vi.spyOn(generateOverlay, "sendFieldEvent")
255242
const consoleError = vi.spyOn(console, "error");
256-
spiedSendFieldEvent.mockImplementation(() => {
257-
throw new Error("sendFieldEvent not implemented");
243+
spiedSendFieldEvent.mockImplementation(() => {
244+
throw new Error("sendFieldEvent not implemented")
258245
});
259246
const inputEvent = new InputEvent("input", {
260247
bubbles: true,
261248
});
262249
h1.dispatchEvent(inputEvent);
263250

264-
expect(spiedSendFieldEvent).toHaveBeenCalledWith({
265-
visualBuilderContainer,
266-
eventType: VisualBuilderPostMessageEvents.SYNC_FIELD,
267-
});
251+
expect(spiedSendFieldEvent).toHaveBeenCalledWith({ visualBuilderContainer, eventType: VisualBuilderPostMessageEvents.SYNC_FIELD });
268252
expect(consoleError).toHaveBeenCalled();
269253
});
270254

271-
test("should set focusFieldReceivedInput to true", () => {
272-
const inputEvent = new InputEvent("input", {
273-
bubbles: true,
274-
});
275-
h1.dispatchEvent(inputEvent);
276-
expect(
277-
VisualBuilder.VisualBuilderGlobalState.value.focusFieldReceivedInput
278-
).toBe(true);
279-
});
280-
});
255+
})

src/visualBuilder/utils/handleFieldMouseDown.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import {
88
import { FieldDataType } from "./types/index.types";
99
import { VisualBuilderPostMessageEvents } from "./types/postMessage.types";
1010
import { insertSpaceAtCursor } from "./insertSpaceAtCursor";
11-
import { VisualBuilder } from "..";
1211

1312
export function handleFieldInput(e: Event): void {
1413
const event = e as InputEvent;
@@ -20,13 +19,6 @@ export function handleFieldInput(e: Event): void {
2019
event.type === "input" &&
2120
ALLOWED_INLINE_EDITABLE_FIELD.includes(fieldType as FieldDataType)
2221
) {
23-
if (
24-
!VisualBuilder.VisualBuilderGlobalState.value
25-
.focusFieldReceivedInput
26-
) {
27-
VisualBuilder.VisualBuilderGlobalState.value.focusFieldReceivedInput =
28-
true;
29-
}
3022
throttledFieldSync();
3123
}
3224
}

0 commit comments

Comments
 (0)