fix(settings): preserve stored logo + persist editor changes on save
This commit is contained in:
@@ -101,12 +101,21 @@ export const action = async ({ request }: ActionFunctionArgs) => {
|
||||
// 2. Remove the current logo (`removeLogo=on`).
|
||||
// 3. Provide an external URL via the `logoUrl` field.
|
||||
// If a file is uploaded it wins over a manually-entered URL.
|
||||
let resolvedLogoUrl = str("logoUrl");
|
||||
// Look up the existing logoUrl so we don't accidentally clear it when
|
||||
// the user just edited unrelated fields (the visible URL field is hidden
|
||||
// for stored uploads, so it submits empty in that case).
|
||||
const existing = await db.shopSettings.findUnique({
|
||||
where: { shopDomain: session.shop },
|
||||
select: { logoUrl: true },
|
||||
});
|
||||
const submittedLogoUrl = str("logoUrl");
|
||||
const removeLogo = bool("removeLogo");
|
||||
const logoFile = form.get("logoFile");
|
||||
const hasUpload =
|
||||
logoFile && typeof logoFile === "object" && "size" in logoFile && (logoFile as File).size > 0;
|
||||
|
||||
let resolvedLogoUrl = submittedLogoUrl || existing?.logoUrl || "";
|
||||
|
||||
if (removeLogo && !hasUpload) {
|
||||
await deleteStoredLogo(session.shop);
|
||||
resolvedLogoUrl = "";
|
||||
|
||||
Reference in New Issue
Block a user