import type { CreateParams, UpdateParams } from "ra-core"; import type { Contact } from "../../../types"; import { getCompanyAvatar } from "../../commons/getCompanyAvatar"; import { getContactAvatar } from "../../commons/getContactAvatar"; import { uploadToBucket } from "./upload"; export const processCompanyLogo = async (params: any) => { let logo = params.data.logo; if (typeof logo !== "object" || logo === null || !logo.src) { logo = await getCompanyAvatar(params.data); } else if (logo.rawFile instanceof File) { await uploadToBucket(logo); } return { ...params, data: { ...params.data, logo, }, }; }; async function processContactAvatar( params: UpdateParams, ): Promise>; async function processContactAvatar( params: CreateParams, ): Promise>; async function processContactAvatar( params: CreateParams | UpdateParams, ): Promise | UpdateParams> { const { data } = params; if (data.avatar?.src || !data.email_jsonb || !data.email_jsonb.length) { return params; } const avatarUrl = await getContactAvatar(data); const newData = { ...data, avatar: { src: avatarUrl || undefined } }; return { ...params, data: newData }; } export { processContactAvatar };