From a203e61e2f1020413faf7bad271da47170cc8622 Mon Sep 17 00:00:00 2001 From: sudipnext Date: Thu, 9 Apr 2026 18:51:29 +0545 Subject: [PATCH] fix: use resolveBackendAssetUrl for font and image URLs in ThemePanel and SlidePreviewSection --- .../(dashboard)/theme/components/ThemePanel/index.tsx | 7 ++++--- .../custom-template/components/SlidePreviewSection.tsx | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/electron/servers/nextjs/app/(presentation-generator)/(dashboard)/theme/components/ThemePanel/index.tsx b/electron/servers/nextjs/app/(presentation-generator)/(dashboard)/theme/components/ThemePanel/index.tsx index f46b5fa5..44ee1420 100644 --- a/electron/servers/nextjs/app/(presentation-generator)/(dashboard)/theme/components/ThemePanel/index.tsx +++ b/electron/servers/nextjs/app/(presentation-generator)/(dashboard)/theme/components/ThemePanel/index.tsx @@ -33,6 +33,7 @@ import ThemeApi from '@/app/(presentation-generator)/services/api/theme' import { useFontLoader } from '@/app/(presentation-generator)/hooks/useFontLoad' import Link from 'next/link' import { trackEvent, MixpanelEvent } from '@/utils/mixpanel' +import { resolveBackendAssetUrl } from '@/utils/api' // Fallback theme used before defaults are loaded from API (unified Theme type) const FALLBACK_THEME: Theme = { @@ -153,7 +154,7 @@ const ThemePanel: React.FC = () => { setUserFonts({ fonts: userFonts.fonts.map((font: any) => ({ name: font.name, - url: `${process.env.NEXT_PUBLIC_FAST_API}${font.url}`, + url: resolveBackendAssetUrl(font.url), })), }) @@ -458,14 +459,14 @@ const ThemePanel: React.FC = () => { setCustomFonts({ textFont: { name: font_name, - url: `${process.env.NEXT_PUBLIC_FAST_API}${font_url}`, + url: resolveBackendAssetUrl(font_url), } }) // Add the newly uploaded font to userFonts if not already present if (!userFonts.fonts.find(f => f.name === font_name)) { setUserFonts(prev => ({ - fonts: [...prev.fonts, { name: font_name, url: `${process.env.NEXT_PUBLIC_FAST_API}${font_url}` }] + fonts: [...prev.fonts, { name: font_name, url: resolveBackendAssetUrl(font_url) }] })) } toast.success(`Font "${font_name}" uploaded successfully`) diff --git a/electron/servers/nextjs/app/(presentation-generator)/custom-template/components/SlidePreviewSection.tsx b/electron/servers/nextjs/app/(presentation-generator)/custom-template/components/SlidePreviewSection.tsx index 144ff941..22252e46 100644 --- a/electron/servers/nextjs/app/(presentation-generator)/custom-template/components/SlidePreviewSection.tsx +++ b/electron/servers/nextjs/app/(presentation-generator)/custom-template/components/SlidePreviewSection.tsx @@ -9,6 +9,8 @@ import { Sparkles } from "lucide-react"; import { SlidePreviewSectionProps } from "../types"; +import { resolveBackendAssetUrl } from '@/utils/api' + export const SlidePreviewSection: React.FC = ({ previewData, @@ -17,7 +19,6 @@ export const SlidePreviewSection: React.FC = ({ }) => { const slideCount = previewData.slide_image_urls?.length || 0; - return (
{/* Header Card */} @@ -48,7 +49,7 @@ export const SlidePreviewSection: React.FC = ({ className="group relative aspect-video w-full max-w-[1280px] mx-auto rounded-xl overflow-hidden " > {`Slide