diff --git a/apps/admin/app/dashboard/subscribe/template-preview.tsx b/apps/admin/app/dashboard/subscribe/template-preview.tsx
index d2f7720..4e18fde 100644
--- a/apps/admin/app/dashboard/subscribe/template-preview.tsx
+++ b/apps/admin/app/dashboard/subscribe/template-preview.tsx
@@ -4,8 +4,8 @@ import { previewSubscribeTemplate } from '@/services/admin/application';
import { useQuery } from '@tanstack/react-query';
import { Button } from '@workspace/ui/components/button';
import { Sheet, SheetContent, SheetHeader, SheetTitle } from '@workspace/ui/components/sheet';
+import { MonacoEditor } from '@workspace/ui/custom-components/editor/monaco-editor';
import { Icon } from '@workspace/ui/custom-components/icon';
-import { Markdown } from '@workspace/ui/custom-components/markdown';
import { useTranslations } from 'next-intl';
import { useState } from 'react';
@@ -27,7 +27,6 @@ export function TemplatePreview({ applicationId, output_format }: TemplatePrevie
const originalContent = data?.data?.data?.template || '';
const errorMessage = (error as any)?.data?.msg || error?.message || t('failed');
- const displayContent = originalContent || (error ? errorMessage : '');
const getDecodedContent = () => {
if (output_format === 'base64' && originalContent) {
@@ -41,19 +40,31 @@ export function TemplatePreview({ applicationId, output_format }: TemplatePrevie
};
const getDisplayContent = () => {
+ if (error) return errorMessage;
+ if (!originalContent) return '';
switch (output_format) {
- case 'base64':
- return `\`\`\`base64\n# ${t('base64.originalContent')}\n${displayContent}\n\n# ${t('base64.decodedContent')}\n${getDecodedContent()}\n\`\`\``;
- case 'yaml':
- return `\`\`\`yaml\n${displayContent}\n\`\`\``;
- case 'json':
- return `\`\`\`json\n${displayContent}\n\`\`\``;
- case 'conf':
- return `\`\`\`ini\n${displayContent}\n\`\`\``;
- case 'plain':
- return `\`\`\`text\n${displayContent}\n\`\`\``;
+ case 'base64': {
+ const decoded = getDecodedContent();
+ return `${t('base64.originalContent')}:\n${originalContent}\n\n${t('base64.decodedContent')}:\n${decoded}`;
+ }
default:
- return displayContent;
+ return originalContent;
+ }
+ };
+ const mapLanguage = (fmt?: string) => {
+ switch (fmt) {
+ case 'json':
+ return 'json';
+ case 'yaml':
+ return 'yaml';
+ case 'base64':
+ return 'ini';
+ case 'plain':
+ return 'ini';
+ case 'conf':
+ return 'ini';
+ default:
+ return 'ini';
}
};
@@ -68,19 +79,21 @@ export function TemplatePreview({ applicationId, output_format }: TemplatePrevie
{t('preview')}