From db9713155a9feca82987df875db275a7e2ef1c0c Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Wed, 15 Feb 2023 18:17:48 -0500 Subject: [PATCH] fix: ensure types for fetchers always include form* submission fields (#5476) --- .changeset/tidy-singers-battle.md | 5 +++++ packages/remix-react/components.tsx | 8 ++++++++ packages/remix-react/transition.ts | 16 ++++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 .changeset/tidy-singers-battle.md diff --git a/.changeset/tidy-singers-battle.md b/.changeset/tidy-singers-battle.md new file mode 100644 index 00000000000..43a2fa79b5d --- /dev/null +++ b/.changeset/tidy-singers-battle.md @@ -0,0 +1,5 @@ +--- +"@remix-run/react": patch +--- + +Ensure types for fetchers always include form\* submission fields diff --git a/packages/remix-react/components.tsx b/packages/remix-react/components.tsx index d574f5412c6..272119db822 100644 --- a/packages/remix-react/components.tsx +++ b/packages/remix-react/components.tsx @@ -1406,6 +1406,10 @@ function convertRouterFetcherToRemixFetcher( let fetcher: FetcherStates["Done"] = { state: "idle", type: "done", + formMethod: undefined, + formAction: undefined, + formData: undefined, + formEncType: undefined, submission: undefined, data, }; @@ -1533,6 +1537,10 @@ function convertRouterFetcherToRemixFetcher( let fetcher: FetcherStates["Loading"] = { state: "loading", type: "normalLoad", + formMethod: undefined, + formAction: undefined, + formData: undefined, + formEncType: undefined, submission: undefined, data, }; diff --git a/packages/remix-react/transition.ts b/packages/remix-react/transition.ts index 8b0ec322db3..eea748ff79e 100644 --- a/packages/remix-react/transition.ts +++ b/packages/remix-react/transition.ts @@ -109,6 +109,10 @@ export type FetcherStates = { Idle: { state: "idle"; type: "init"; + formMethod: undefined; + formAction: undefined; + formData: undefined; + formEncType: undefined; submission: undefined; data: undefined; }; @@ -155,12 +159,20 @@ export type FetcherStates = { Loading: { state: "loading"; type: "normalLoad"; + formMethod: undefined; + formAction: undefined; + formData: undefined; + formEncType: undefined; submission: undefined; data: TData | undefined; }; Done: { state: "idle"; type: "done"; + formMethod: undefined; + formAction: undefined; + formData: undefined; + formEncType: undefined; submission: undefined; data: TData; }; @@ -204,5 +216,9 @@ export const IDLE_FETCHER: FetcherStates["Idle"] = { state: "idle", type: "init", data: undefined, + formMethod: undefined, + formAction: undefined, + formData: undefined, + formEncType: undefined, submission: undefined, };