@@ -35,9 +35,7 @@ import {
3535} from '@remix-run/node' ;
3636import { useFetcher , useLoaderData } from '@remix-run/react' ;
3737import { useForm } from '@tanstack/react-form' ;
38- import { decode as formDataToObject } from 'decode-formdata' ;
3938import { type Namespace , t as rawT } from 'i18next' ;
40- import { serialize as objectToFormData } from 'object-to-formdata' ;
4139import { Trans , useTranslation } from 'react-i18next' ;
4240import { difference } from 'remeda' ;
4341import { Button , Collapsible , Tag } from 'ui-design-system' ;
@@ -161,21 +159,17 @@ export async function action({ request, params }: ActionFunctionArgs) {
161159 toastSessionService : { getSession, commitSession } ,
162160 } = serverServices ;
163161
164- const [ session , formData , { scenarioIterationSanctionRepository } ] =
162+ const [ session , data , { scenarioIterationSanctionRepository } ] =
165163 await Promise . all ( [
166164 getSession ( request ) ,
167- request . formData ( ) ,
165+ request . json ( ) ,
168166 authService . isAuthenticated ( request , {
169167 failureRedirect : getRoute ( '/sign-in' ) ,
170168 } ) ,
171169 ] ) ;
172170
173171 const iterationId = fromParams ( params , 'iterationId' ) ;
174- const formDataDecoded = formDataToObject ( formData , {
175- arrays : [ 'datasets' ] ,
176- } ) ;
177-
178- const result = editSanctionFormSchema . safeParse ( formDataDecoded ) ;
172+ const result = editSanctionFormSchema . safeParse ( data ) ;
179173
180174 if ( ! result . success ) {
181175 return json (
@@ -245,13 +239,7 @@ export default function SanctionDetail() {
245239 const form = useForm < EditSanctionForm > ( {
246240 onSubmit : ( { value, formApi } ) => {
247241 if ( formApi . state . isValid ) {
248- fetcher . submit (
249- objectToFormData ( value , {
250- dotsForObjectNotation : true ,
251- indices : true ,
252- } ) ,
253- { method : 'PATCH' } ,
254- ) ;
242+ fetcher . submit ( value , { method : 'PATCH' , encType : 'application/json' } ) ;
255243 }
256244 } ,
257245 validators : {
0 commit comments