import { json, type ActionFunctionArgs } from '@remix-run/node'; import { requireUserId } from '~/utils/session.server'; import { uploadAvatar } from '~/utils/upload.server'; import { badRequest } from '~/utils/utils'; export async function action({ request }: ActionFunctionArgs) { const userId = await requireUserId(request); const formData = await request.formData(); try { const id = formData.get('id')?.toString(); if (!id) throw new Error('Id is required'); const avatar = formData.get('photo') as File; if (avatar.size === 0) throw new Error('File is required'); const uploadedImageName = await uploadAvatar(avatar); return json({ error: false, ok: true, image: uploadedImageName }); } catch (error: any) { return badRequest({ uploadError: error.message || 'Unknown error' }); } }