Skip to content

Commit 8addd81

Browse files
authored
124 mouseenter event listener prevent other mouseenter events from firing (#126)
* Added fetcher keys * Added fetcher keys
1 parent 553620d commit 8addd81

7 files changed

Lines changed: 10 additions & 81 deletions

File tree

.github/sync-s3-posts.yml

Lines changed: 0 additions & 51 deletions
This file was deleted.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "remix-development-tools",
33
"description": "Remix development tools - a set of tools for developing/debugging Remix.run apps",
44
"author": "Alem Tuzlak",
5-
"version": "4.1.4",
5+
"version": "4.1.5",
66
"license": "MIT",
77
"keywords": [
88
"remix",

src/client/context/timeline/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,13 @@ interface FetcherRedirectEvent extends Omit<NormalRedirectEvent, "type"> {
1616
interface FetcherSubmissionEvent
1717
extends Omit<FormSubmissionEvent, "type" | "from"> {
1818
type: "FETCHER_SUBMIT";
19+
key?: string;
1920
responseData?: Record<string, any>;
2021
}
2122
interface FetcherSubmissionResponseEvent
2223
extends Omit<FormSubmissionEvent, "type" | "from"> {
2324
type: "FETCHER_RESPONSE";
25+
key?: string;
2426
responseData?: Record<string, any>;
2527
}
2628
interface FormSubmissionEvent {

src/client/hooks/useOpenElementSource.ts

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,10 @@
1-
import { useEffect } from "react";
21
import { useAttachDocumentListener } from "./useAttachListener.js";
32
import { useDevServerConnection } from "./useDevServerConnection.js";
43

54
const useOpenElementSource = () => {
6-
const { sendJsonMessage } = useDevServerConnection();
7-
useEffect(() => {
8-
const handleFocus = (e: any) => {
9-
e.stopPropagation();
10-
if (!e.altKey || !e.target?.getAttribute?.("data-rdt-source")) {
11-
return;
12-
}
13-
14-
e.target?.classList?.add("rdt-cursor-pointer");
15-
};
16-
17-
const handleBlur = (e: any) => e.target?.classList?.remove("rdt-cursor-pointer");
18-
19-
document.addEventListener("mouseenter", handleFocus, true);
20-
document.addEventListener("mouseleave", handleBlur, true);
21-
22-
return () => {
23-
document.removeEventListener("mouseenter", handleFocus, true);
24-
document.removeEventListener("mouseleave", handleBlur, true);
25-
};
26-
}, []);
5+
const { sendJsonMessage } = useDevServerConnection();
276

28-
useAttachDocumentListener("contextmenu", (e: any) => {
29-
7+
useAttachDocumentListener("contextmenu", (e: any) => {
308
if (!e.shiftKey || !e) {
319
return;
3210
}

src/client/hooks/useTimelineHandler.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,14 +160,15 @@ const useTimelineHandler = () => {
160160
fetchers.forEach((fetcher, i) => {
161161
if (fetcher.state === "idle") return;
162162

163-
const { data, formAction, formData, formEncType, formMethod } = fetcher;
163+
const { data, formAction, formData, formEncType, formMethod, key: fetcherKey } = fetcher;
164164

165165
if (formAction && formMethod) {
166166
const form = convertFormDataToObject(formData);
167167
const event = {
168168
type: fetcher.state === "loading" ? "FETCHER_RESPONSE" : "FETCHER_SUBMIT",
169169
to: formAction,
170170
method: formMethod,
171+
...(fetcherKey ? { fetcherKey } : {}),
171172
data: form,
172173
encType: formEncType,
173174
responseData: fetcher.state === "submitting" ? undefined : data,

src/client/tabs/TimelineTab.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,10 @@ const FormEventComponent = (event: FormEvent) => {
3737
? `Redirect from "${event.to}" to "${event.from}"`
3838
: `Submission to url: "${event.to}"`;
3939
const responseData = event.responseData;
40-
delete responseData?.remixDevTools;
4140
return (
4241
<div className="rdt-mb-4">
4342
<time className="rdt-mb-2 rdt-block rdt-text-sm rdt-font-normal rdt-leading-none rdt-text-gray-500">
44-
{firstPart} | encType: {event.encType}
43+
{firstPart} | encType: {event.encType} {"fetcherKey" in event && typeof event.fetcherKey !== "undefined" ? `| Fetcher Key: ${event.fetcherKey}` : ""}
4544
</time>
4645
<div className="rdt-flex rdt-gap-8">
4746
{event.data && event.type !== "ACTION_RESPONSE" && (

src/test-apps/remix-vite/app/routes/_index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ export const action = async ({ request }: ActionFunctionArgs) => {
5252
};
5353

5454
export default function Index() {
55-
const lFetcher = useFetcher();
56-
const pFetcher = useFetcher();
55+
const lFetcher = useFetcher({ key: "lfetcher"});
56+
const pFetcher = useFetcher({ key: "test"});
5757
const submit = useSubmit();
5858
const data = new FormData();
5959
data.append("test", "test");

0 commit comments

Comments
 (0)