From 53ef88508dc2170b8637f895a9886a6a154a09b5 Mon Sep 17 00:00:00 2001 From: bbsqq <1491812683@qq.com> Date: Fri, 8 Sep 2023 13:45:15 +0800 Subject: [PATCH 1/2] refactor(ava-react): lazy load katex to optimize build --- .../src/NarrativeTextVis/phrases/Phrase.tsx | 44 +++++++++++-------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/packages/ava-react/src/NarrativeTextVis/phrases/Phrase.tsx b/packages/ava-react/src/NarrativeTextVis/phrases/Phrase.tsx index d2080a542..4003e31f7 100644 --- a/packages/ava-react/src/NarrativeTextVis/phrases/Phrase.tsx +++ b/packages/ava-react/src/NarrativeTextVis/phrases/Phrase.tsx @@ -1,9 +1,8 @@ -import React from 'react'; +import React, { useState, useEffect } from 'react'; import { Tooltip, TooltipProps } from 'antd'; import { isTextPhrase, isEntityPhrase, isEscapePhrase, isFormulaPhrase } from '@antv/ava'; import { isFunction, kebabCase, isEmpty, isNil } from 'lodash'; -import katex from 'katex'; import { NTV_PREFIX_CLS } from '../constants'; import { Entity, Bold, Italic, Underline, FormulaWrapper } from '../styled'; @@ -13,9 +12,32 @@ import { PhraseDescriptor, presetPluginManager } from '../chore/plugin'; import { getThemeColor } from '../theme'; import type { ReactNode } from 'react'; -import type { PhraseSpec, EntityPhraseSpec, CustomPhraseSpec } from '@antv/ava'; +import type { PhraseSpec, EntityPhraseSpec, CustomPhraseSpec, FormulaPhraseSpec } from '@antv/ava'; import type { ThemeStylesProps, ExtensionProps, PhraseEvents } from '../types'; +const FormulaPhrase: React.FC<{ + spec: FormulaPhraseSpec; +}> = ({ spec }) => { + const [katex, setKatex] = useState(null); + useEffect(() => { + import('katex').then(setKatex); + }, []); + return katex ? ( + + ) : null; +}; + type PhraseProps = ThemeStylesProps & ExtensionProps & PhraseEvents & { @@ -160,21 +182,7 @@ export const Phrase: React.FC = ({ // use katex to render formula // 使用 katex 渲染公式 - if (isFormulaPhrase(phrase)) - return ( - - ); + if (isFormulaPhrase(phrase)) return ; const descriptor = pluginManager?.getPhraseDescriptorBySpec(phrase); if (descriptor) { From 2a1af081f8b26e6bb9cd3f404657603e16b519c2 Mon Sep 17 00:00:00 2001 From: bbsqq <1491812683@qq.com> Date: Fri, 8 Sep 2023 13:46:25 +0800 Subject: [PATCH 2/2] chore(ava-react): release 3.1.10.beta.0 --- packages/ava-react/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ava-react/package.json b/packages/ava-react/package.json index 96114137d..d943494c9 100644 --- a/packages/ava-react/package.json +++ b/packages/ava-react/package.json @@ -1,6 +1,6 @@ { "name": "@antv/ava-react", - "version": "3.1.9", + "version": "3.1.10-beta.0", "description": "React components of AVA.", "author": { "name": "AntV",