diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cac817a0..ab8f49e2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4894,7 +4894,7 @@ packages: dependencies: '@babel/core': 7.24.5 postcss: 7.0.39 - postcss-syntax: 0.36.2(postcss@7.0.39) + postcss-syntax: 0.36.2(postcss@8.4.38) transitivePeerDependencies: - supports-color dev: false @@ -4935,7 +4935,7 @@ packages: postcss-syntax: '>=0.36.2' dependencies: postcss: 7.0.39 - postcss-syntax: 0.36.2(postcss@7.0.39) + postcss-syntax: 0.36.2(postcss@8.4.38) remark: 13.0.0 unist-util-find-all-after: 3.0.2 transitivePeerDependencies: @@ -14301,7 +14301,7 @@ packages: dependencies: htmlparser2: 3.10.1 postcss: 7.0.39 - postcss-syntax: 0.36.2(postcss@7.0.39) + postcss-syntax: 0.36.2(postcss@8.4.38) dev: false /postcss-image-set-function@4.0.7(postcss@8.4.38): @@ -14775,30 +14775,6 @@ packages: lodash: 4.17.21 postcss: 8.4.38 - /postcss-syntax@0.36.2(postcss@7.0.39): - resolution: {integrity: sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==} - peerDependencies: - postcss: '>=5.0.0' - postcss-html: '*' - postcss-jsx: '*' - postcss-less: '*' - postcss-markdown: '*' - postcss-scss: '*' - peerDependenciesMeta: - postcss-html: - optional: true - postcss-jsx: - optional: true - postcss-less: - optional: true - postcss-markdown: - optional: true - postcss-scss: - optional: true - dependencies: - postcss: 7.0.39 - dev: false - /postcss-syntax@0.36.2(postcss@8.4.38): resolution: {integrity: sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==} peerDependencies: @@ -18099,7 +18075,7 @@ packages: postcss-sass: 0.4.4 postcss-scss: 2.1.1 postcss-selector-parser: 6.0.16 - postcss-syntax: 0.36.2(postcss@7.0.39) + postcss-syntax: 0.36.2(postcss@8.4.38) postcss-value-parser: 4.2.0 resolve-from: 5.0.0 slash: 3.0.0 diff --git a/src/components/audio-player/index.less b/src/components/audio-player/index.less index e82d1d65..b67baae4 100644 --- a/src/components/audio-player/index.less +++ b/src/components/audio-player/index.less @@ -1,7 +1,7 @@ .player-wrap { width: 100%; display: flex; - background-color: var(--ant-color-fill-quaternary); + // background-color: var(--ant-color-fill-quaternary); border-radius: 6px; .player-ui { @@ -13,10 +13,10 @@ } .controls { + width: 100%; display: flex; - justify-content: center; + justify-content: space-between; align-items: center; - margin-inline: 10px; } .play-btn { @@ -43,7 +43,6 @@ .slider-inner { flex: 1; - margin-inline: 10px; } } @@ -55,8 +54,11 @@ } .time { + width: 52px; + text-align: right; + &.current { - margin-left: 6px; + text-align: left; } } @@ -65,7 +67,7 @@ flex: 1; display: flex; flex-direction: column; - align-items: center; + align-items: flex-start; justify-content: center; .slider { diff --git a/src/components/audio-player/index.tsx b/src/components/audio-player/index.tsx index 6cd52d89..ae315ff8 100644 --- a/src/components/audio-player/index.tsx +++ b/src/components/audio-player/index.tsx @@ -25,6 +25,7 @@ interface AudioPlayerProps { height?: number; width?: number; duration?: number; + extra?: React.ReactNode; } const speedOptions = [ @@ -42,7 +43,7 @@ const speedConfig = { const AudioPlayer: React.FC = forwardRef((props, ref) => { const intl = useIntl(); - const { autoplay = false, speed: defaultSpeed = 1 } = props; + const { autoplay = false, speed: defaultSpeed = 1, extra } = props; const audioRef = React.useRef(null); const [audioState, setAudioState] = React.useState<{ currentTime: number; @@ -206,76 +207,89 @@ const AudioPlayer: React.FC = forwardRef((props, ref) => {
{props.name}
- + {/* {' '} {formatTime(audioState.currentTime)} - + */}
- {formatTime(audioState.duration)} + {/* {formatTime(audioState.duration)} */}
- - - - - - - - + + + + + - - - + + + {formatTime(audioState.duration)} +
+ {extra}
diff --git a/src/components/logs-viewer/logs-list.tsx b/src/components/logs-viewer/logs-list.tsx index 4449cf17..ed022a5c 100644 --- a/src/components/logs-viewer/logs-list.tsx +++ b/src/components/logs-viewer/logs-list.tsx @@ -139,7 +139,11 @@ const LogsList: React.FC = forwardRef((props, ref) => {
{_.map(dataList, (item: any, index: number) => { return ( -
+
{item.content}
); diff --git a/src/components/logs-viewer/parse-worker.ts b/src/components/logs-viewer/parse-worker.ts index 15f72a03..9a51a0f4 100644 --- a/src/components/logs-viewer/parse-worker.ts +++ b/src/components/logs-viewer/parse-worker.ts @@ -4,6 +4,10 @@ const removeBrackets = (str: string) => { return str?.replace?.(/^\(…\)/, ''); }; +const removeBracketsFromLine = (row: string) => { + return row.startsWith('(…)') ? row.slice(3) : row; +}; + class AnsiParser { private cursorRow: number = 0; private cursorCol: number = 0; @@ -12,6 +16,8 @@ class AnsiParser { private uid: number = 0; private isProcessing: boolean = false; private taskQueue: string[] = []; + private page: number = 1; + private pageSize: number = 500; private colorMap = { '30': 'black', '31': 'red', @@ -33,6 +39,11 @@ class AnsiParser { this.screen = [['']]; this.rawDataRows = 0; this.uid = this.uid + 1; + this.page = 1; + } + + public setPage(page: number) { + this.page = page; } private setId() { @@ -125,9 +136,9 @@ class AnsiParser { const remainingText = input.slice(lastIndex); this.handleText(remainingText); - const result = this.screen.map((row) => ({ - content: removeBrackets(row.join('')), - uid: this.setId() + const result = this.screen.map((row, index) => ({ + content: removeBracketsFromLine(row.join('')), + uid: `${this.page}-${index}` })); return { @@ -176,7 +187,8 @@ class AnsiParser { const parser = new AnsiParser(); self.onmessage = function (event) { - const { inputStr, reset } = event.data; + const { inputStr, reset, page } = event.data; + parser.setPage(page); if (reset) { parser.reset(); } diff --git a/src/components/logs-viewer/virtual-log-list.tsx b/src/components/logs-viewer/virtual-log-list.tsx index 2770eeaf..fbde9994 100644 --- a/src/components/logs-viewer/virtual-log-list.tsx +++ b/src/components/logs-viewer/virtual-log-list.tsx @@ -133,6 +133,7 @@ const LogsViewer: React.FC = forwardRef((props, ref) => { } logParseWorker.current.postMessage({ inputStr: data, + page: pageRef.current, reset: clearScreen.current }); clearScreen.current = false; diff --git a/src/components/logs-viewer/xterm-viewer.tsx b/src/components/logs-viewer/xterm-viewer.tsx index 75cc9adc..2042f707 100644 --- a/src/components/logs-viewer/xterm-viewer.tsx +++ b/src/components/logs-viewer/xterm-viewer.tsx @@ -1,6 +1,5 @@ import useSetChunkRequest from '@/hooks/use-chunk-request'; import { FitAddon } from '@xterm/addon-fit'; -import { WebglAddon } from '@xterm/addon-webgl'; import { Terminal } from '@xterm/xterm'; import '@xterm/xterm/css/xterm.css'; import classNames from 'classnames'; @@ -126,7 +125,6 @@ const LogsViewer: React.FC = forwardRef((props, ref) => { }); fitAddonRef.current = new FitAddon(); termRef.current.loadAddon(fitAddonRef.current); - termRef.current.loadAddon(new WebglAddon()); termRef.current.open(termwrapRef.current); // add event diff --git a/src/components/markdown-viewer/index.less b/src/components/markdown-viewer/index.less index 736375c7..13bae402 100644 --- a/src/components/markdown-viewer/index.less +++ b/src/components/markdown-viewer/index.less @@ -11,6 +11,10 @@ margin-bottom: 0; } + b { + font-weight: var(--font-weight-bold); + } + h1, h2, h3, @@ -80,6 +84,10 @@ max-width: 100%; height: auto; } + img[src^="https://img.shields.io/"], img[src*="badge.svg"] + { + margin-bottom: 6px; + } video { max-width: 100%; diff --git a/src/components/markdown-viewer/index.tsx b/src/components/markdown-viewer/index.tsx index 22d7ab3b..e5641de7 100644 --- a/src/components/markdown-viewer/index.tsx +++ b/src/components/markdown-viewer/index.tsx @@ -45,10 +45,6 @@ const MarkdownViewer: React.FC = ({ // 'bibtex' ]; - // renderer.link = ({ href, title, text }) => { - // return `${text}`; - // }; - const isValidURL = useCallback((url: string) => { const pattern = /^(https?:\/\/|\/\/)([^\s/$.?#].[^\s]*)$/; diff --git a/src/components/markdown-viewer/render-rules.ts b/src/components/markdown-viewer/render-rules.ts deleted file mode 100644 index ff8b4c56..00000000 --- a/src/components/markdown-viewer/render-rules.ts +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/src/pages/playground/components/ground-stt.tsx b/src/pages/playground/components/ground-stt.tsx index 612a74b3..812b940b 100644 --- a/src/pages/playground/components/ground-stt.tsx +++ b/src/pages/playground/components/ground-stt.tsx @@ -307,7 +307,7 @@ const GroundLeft: React.FC = forwardRef((props, ref) => { {!isRecording && ( )} @@ -322,18 +322,40 @@ const GroundLeft: React.FC = forwardRef((props, ref) => {
{audioData ? ( -
+
+ { + + } + + } >
-
= forwardRef((props, ref) => { > } -
+
*/}
) : ( renderAniamtion() @@ -385,15 +407,14 @@ const GroundLeft: React.FC = forwardRef((props, ref) => { className="message-list-wrap" style={{ flex: 1, - position: 'relative', - borderTop: '1px solid var(--ant-color-split)' + position: 'relative' }} > {messageList?.length > 0 && (