fix in low version
This commit is contained in:
1
src/mermaid-legacy.d.ts
vendored
Normal file
1
src/mermaid-legacy.d.ts
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
declare module "mermaid-legacy"
|
||||||
@@ -5,6 +5,7 @@ const mermaidThemeVariables = {
|
|||||||
primaryTextColor: "#0f172a",
|
primaryTextColor: "#0f172a",
|
||||||
primaryBorderColor: "#0284c7",
|
primaryBorderColor: "#0284c7",
|
||||||
lineColor: "#64748b",
|
lineColor: "#64748b",
|
||||||
|
arrowheadColor: "#64748b",
|
||||||
secondaryColor: "#f5f3ff",
|
secondaryColor: "#f5f3ff",
|
||||||
tertiaryColor: "#ecfdf5",
|
tertiaryColor: "#ecfdf5",
|
||||||
background: "#ffffff",
|
background: "#ffffff",
|
||||||
@@ -256,14 +257,16 @@ function getChromeVersion(): number {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let mermaidInstance: any = null
|
let mermaidInstance: any = null
|
||||||
|
let mermaidIsLegacy = false
|
||||||
|
|
||||||
async function loadMermaid() {
|
async function loadMermaid() {
|
||||||
if (!mermaidInstance) {
|
if (!mermaidInstance) {
|
||||||
const mermaidModule =
|
if (getChromeVersion() < 94) {
|
||||||
getChromeVersion() < 94
|
mermaidInstance = (await import("mermaid-legacy")).default
|
||||||
? await import("mermaid-legacy")
|
mermaidIsLegacy = true
|
||||||
: await import("mermaid")
|
} else {
|
||||||
mermaidInstance = mermaidModule.default
|
mermaidInstance = (await import("mermaid")).default
|
||||||
|
}
|
||||||
mermaidInstance.initialize({
|
mermaidInstance.initialize({
|
||||||
startOnLoad: false,
|
startOnLoad: false,
|
||||||
securityLevel: "strict",
|
securityLevel: "strict",
|
||||||
@@ -294,7 +297,17 @@ export function useMermaid() {
|
|||||||
try {
|
try {
|
||||||
const m = await loadMermaid()
|
const m = await loadMermaid()
|
||||||
const id = `mermaid-${getRandomId()}`
|
const id = `mermaid-${getRandomId()}`
|
||||||
const { svg } = await m.render(id, mermaidCode)
|
// v9 (mermaid-legacy): callback-based render(id, code, cb)
|
||||||
|
// v10+: Promise-based render(id, code) → { svg }
|
||||||
|
const svg = mermaidIsLegacy
|
||||||
|
? await new Promise<string>((resolve, reject) => {
|
||||||
|
try {
|
||||||
|
m.render(id, mermaidCode, resolve)
|
||||||
|
} catch (e) {
|
||||||
|
reject(e)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
: (await m.render(id, mermaidCode)).svg
|
||||||
if (gen !== renderGeneration) return
|
if (gen !== renderGeneration) return
|
||||||
container.innerHTML = svg
|
container.innerHTML = svg
|
||||||
applyFlowchartDisplayStyle(container)
|
applyFlowchartDisplayStyle(container)
|
||||||
|
|||||||
Reference in New Issue
Block a user