diff --git a/apps/studio/components/interfaces/Auth/EmailTemplates/EmailBrandingSheet.tsx b/apps/studio/components/interfaces/Auth/EmailTemplates/EmailBrandingSheet.tsx
index 3d024d54f83..5d6b363a101 100644
--- a/apps/studio/components/interfaces/Auth/EmailTemplates/EmailBrandingSheet.tsx
+++ b/apps/studio/components/interfaces/Auth/EmailTemplates/EmailBrandingSheet.tsx
@@ -1,9 +1,18 @@
import { zodResolver } from '@hookform/resolvers/zod'
import { useParams } from 'common'
-import { useEffect, useMemo, useRef } from 'react'
+import { Upload } from 'lucide-react'
+import { useEffect, useMemo, useRef, useState, type ChangeEvent } from 'react'
import { useForm } from 'react-hook-form'
import { toast } from 'sonner'
import {
+ AlertDialog,
+ AlertDialogAction,
+ AlertDialogCancel,
+ AlertDialogContent,
+ AlertDialogDescription,
+ AlertDialogFooter,
+ AlertDialogHeader,
+ AlertDialogTitle,
Button,
Form_Shadcn_,
FormControl_Shadcn_,
@@ -23,6 +32,12 @@ import * as z from 'zod'
import { useAuthBrandingQuery } from '@/data/auth/auth-branding-query'
import { useAuthBrandingUpdateMutation } from '@/data/auth/auth-branding-update-mutation'
+import { useProjectApiUrl } from '@/data/config/project-endpoint-query'
+import { get } from '@/data/fetchers'
+import { useBucketCreateMutation } from '@/data/storage/bucket-create-mutation'
+import { createProjectSupabaseClient } from '@/lib/project-supabase-client'
+
+const BUCKET_NAME = 'email_assets'
interface EmailBrandingSheetProps {
visible: boolean
@@ -67,7 +82,7 @@ function generatePreviewHtml(values: BrandingFormValues): string {
const footerText = values.brand_footer_text || `© ${new Date().getFullYear()} ${name}`
const headerContent = values.brand_logo_url
- ? `
`
+ ? `
`
: `${name}`
return `
@@ -95,9 +110,23 @@ function generatePreviewHtml(values: BrandingFormValues): string {