11import { userAgent } from 'next/server' ;
22
33import { type RouterOutputs } from '@formbase/api' ;
4- import { env } from '@formbase/env' ;
54
65import { sendMail } from '~/lib/email/mailer' ;
76import { renderNewSubmissionEmail } from '~/lib/email/templates/new-submission' ;
@@ -64,14 +63,15 @@ async function getFormData(request: Request): Promise<FormDataResult> {
6463async function processFileUploads (
6564 formData : Record < string , Blob | string | undefined > ,
6665 formDataFromRequest : FormData ,
66+ requestOrigin : string ,
6767) {
6868 const fileKeys = Object . keys ( formData ) . filter (
6969 ( key ) => formData [ key ] instanceof Blob ,
7070 ) ;
7171
7272 for ( const key of fileKeys ) {
7373 const file = formDataFromRequest . get ( key ) as File ;
74- const fileUrl = await uploadFileFromBlob ( { file } ) ;
74+ const fileUrl = await uploadFileFromBlob ( { file, origin : requestOrigin } ) ;
7575 assignFileOrImage ( { formData, key, fileUrl } ) ;
7676 }
7777}
@@ -103,6 +103,7 @@ export async function POST(
103103 const { id } = await params ;
104104
105105 const formId = id ;
106+ const requestOrigin = new URL ( request . url ) . origin ;
106107 const form = await api . form . getFormById ( { formId } ) ;
107108 if ( ! form ) {
108109 return new Response ( 'Form not found' , {
@@ -117,7 +118,11 @@ export async function POST(
117118 const { data : formData } = formDataResult ;
118119
119120 if ( formDataResult . source === 'formData' ) {
120- await processFileUploads ( formData , formDataResult . rawFormData ) ;
121+ await processFileUploads (
122+ formData ,
123+ formDataResult . rawFormData ,
124+ requestOrigin ,
125+ ) ;
121126 }
122127
123128 const honeypotField = form . honeypotField ;
@@ -158,7 +163,7 @@ export async function POST(
158163 return new Response ( null , {
159164 status : 303 ,
160165 headers : {
161- Location : ` ${ env . NEXT_PUBLIC_APP_URL } /s/${ formId } `,
166+ Location : new URL ( ` /s/${ formId } `, requestOrigin ) . toString ( ) ,
162167 ...CORS_HEADERS ,
163168 } ,
164169 } ) ;
0 commit comments