diff --git a/.changeset/itchy-wasps-read.md b/.changeset/itchy-wasps-read.md new file mode 100644 index 0000000000..dfcd5b69be --- /dev/null +++ b/.changeset/itchy-wasps-read.md @@ -0,0 +1,5 @@ +--- +"@react-email/preview-server": patch +--- + +fix file names and extensions not being used in download diff --git a/packages/preview-server/src/actions/render-email-by-path.tsx b/packages/preview-server/src/actions/render-email-by-path.tsx index ef2654a8d1..b93aa01863 100644 --- a/packages/preview-server/src/actions/render-email-by-path.tsx +++ b/packages/preview-server/src/actions/render-email-by-path.tsx @@ -27,6 +27,9 @@ export interface RenderedEmailMetadata { markupWithReferences?: string; plainText: string; reactMarkup: string; + + basename: string; + extname: string; } export type EmailRenderingResult = @@ -130,6 +133,9 @@ export const renderEmailByPath = async ( markupWithReferences: markupWithReferences.replaceAll('\0', ''), plainText, reactMarkup, + + basename: path.basename(emailPath, path.extname(emailPath)), + extname: path.extname(emailPath).slice(1), }; cache.set(emailPath, renderingResult); diff --git a/packages/preview-server/src/app/preview/[...slug]/preview.tsx b/packages/preview-server/src/app/preview/[...slug]/preview.tsx index a3e925e7b3..6bc94d3ea7 100644 --- a/packages/preview-server/src/app/preview/[...slug]/preview.tsx +++ b/packages/preview-server/src/app/preview/[...slug]/preview.tsx @@ -36,7 +36,7 @@ const Preview = ({ emailTitle, className, ...props }: PreviewProps) => { const isDarkModeEnabled = searchParams.get('dark') !== null; const activeView = searchParams.get('view') ?? 'preview'; - const activeLang = searchParams.get('lang') ?? 'jsx'; + const activeLang = searchParams.get('lang') ?? 'tsx'; const handleDarkModeChange = (enabled: boolean) => { const params = new URLSearchParams(searchParams); @@ -207,17 +207,20 @@ const Preview = ({ emailTitle, className, ...props }: PreviewProps) => { void; } interface MarkupProps { language: Language; + extension?: string; content: string; } export const CodeContainer: React.FC> = ({ markups, + basename: filename, activeLang, setActiveLang, }) => { @@ -83,7 +86,7 @@ export const CodeContainer: React.FC> = ({
diff --git a/packages/preview-server/src/utils/language-map.ts b/packages/preview-server/src/utils/language-map.ts index 018b4e3f19..fbb178d952 100644 --- a/packages/preview-server/src/utils/language-map.ts +++ b/packages/preview-server/src/utils/language-map.ts @@ -1,6 +1,6 @@ const languageMap = { - jsx: 'React', - markup: 'HTML', + tsx: 'React', + html: 'HTML', markdown: 'Plain Text', };