11<script setup lang="ts">
2+ import type { Component } from ' vue' ;
23import type { IssueForm } from ' ./types' ;
34import {
45 getBgColor ,
89} from ' @configs/commit-types' ;
910import { ElFormItem , ElMessage } from ' element-plus' ;
1011import { useData } from ' vitepress' ;
11- import { computed , onMounted , reactive , ref } from ' vue' ;
12- import { MarkdownRenderer } from ' x-markdown-vue' ;
12+ import { computed , onMounted , reactive , ref , shallowRef } from ' vue' ;
1313import { fetchGitHubTags , getComponents } from ' ./utils/data-fetcher' ;
1414import {
1515 generateGitHubIssueUrl ,
@@ -148,6 +148,7 @@ const texts = computed(() => i18nTexts[locale.value]);
148148
149149const loading = ref (false );
150150const IsPreview = ref (false );
151+ const MarkdownRenderer = shallowRef <Component | null >(null );
151152const formRef = ref ();
152153const components = reactive <string []>(getComponents ());
153154const versions = reactive <string []>([]);
@@ -256,6 +257,11 @@ async function submitForm() {
256257}
257258
258259onMounted (async () => {
260+ const { MarkdownRenderer : MarkdownRendererComponent } = await import (
261+ ' x-markdown-vue'
262+ );
263+ MarkdownRenderer .value = MarkdownRendererComponent ;
264+
259265 loading .value = true ;
260266 try {
261267 const tags = await fetchGitHubTags ();
@@ -502,7 +508,9 @@ onMounted(async () => {
502508 {{ texts.preview.description }}
503509 </h3 >
504510 <div class =" gh-content" >
505- <MarkdownRenderer
511+ <component
512+ :is =" MarkdownRenderer"
513+ v-if =" MarkdownRenderer"
506514 :markdown =" form.description || texts.preview.noDescription"
507515 />
508516 </div >
@@ -513,7 +521,11 @@ onMounted(async () => {
513521 {{ texts.preview.reproductionSteps }}
514522 </h3 >
515523 <div class =" gh-content" >
516- <MarkdownRenderer :markdown =" form.reproductionSteps" />
524+ <component
525+ :is =" MarkdownRenderer"
526+ v-if =" MarkdownRenderer"
527+ :markdown =" form.reproductionSteps"
528+ />
517529 </div >
518530 </div >
519531
@@ -523,7 +535,11 @@ onMounted(async () => {
523535 {{ texts.preview.expectedBehavior }}
524536 </h3 >
525537 <div class =" gh-content" >
526- <MarkdownRenderer :markdown =" form.expectedBehavior" />
538+ <component
539+ :is =" MarkdownRenderer"
540+ v-if =" MarkdownRenderer"
541+ :markdown =" form.expectedBehavior"
542+ />
527543 </div >
528544 </div >
529545
@@ -532,7 +548,11 @@ onMounted(async () => {
532548 {{ texts.preview.actualBehavior }}
533549 </h3 >
534550 <div class =" gh-content" >
535- <MarkdownRenderer :markdown =" form.actualBehavior" />
551+ <component
552+ :is =" MarkdownRenderer"
553+ v-if =" MarkdownRenderer"
554+ :markdown =" form.actualBehavior"
555+ />
536556 </div >
537557 </div >
538558 </div >
0 commit comments