From e137e1940f90526415802add5a56d4041f3302ac Mon Sep 17 00:00:00 2001 From: undefined Date: Sat, 29 Aug 2026 08:53:11 +0000 Subject: [PATCH] ui: create new AnsiUp instance for every render --- packages/ui-default/backendlib/misc.ts | 4 +--- .../components/scratchpad/ScratchpadPretestContainer.jsx | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/packages/ui-default/backendlib/misc.ts b/packages/ui-default/backendlib/misc.ts index 2a8dbc778..8687b45f8 100644 --- a/packages/ui-default/backendlib/misc.ts +++ b/packages/ui-default/backendlib/misc.ts @@ -3,10 +3,8 @@ import { AnsiUp } from 'ansi_up'; export { formatSeconds, size } from 'hydrooj'; -const AU = new AnsiUp(); - export function ansiToHtml(str: string, whiteToBlack = true) { - const res = AU.ansi_to_html(str); + const res = new AnsiUp().ansi_to_html(str); return whiteToBlack ? res.replace(/style="color:rgb\(255,255,255\)"/g, 'style="color:black"') : res; } diff --git a/packages/ui-default/components/scratchpad/ScratchpadPretestContainer.jsx b/packages/ui-default/components/scratchpad/ScratchpadPretestContainer.jsx index 34ff8aa5b..d617fb3b8 100644 --- a/packages/ui-default/components/scratchpad/ScratchpadPretestContainer.jsx +++ b/packages/ui-default/components/scratchpad/ScratchpadPretestContainer.jsx @@ -7,8 +7,6 @@ import { i18n } from 'vj/utils'; import DataInput from './DataInputComponent'; import Panel from './PanelComponent'; -const AU = new AnsiUp(); - const mapStateToProps = (state) => ({ input: state.pretest.input, output: state.pretest.output, @@ -47,7 +45,7 @@ export default connect(mapStateToProps, mapDispatchToProps)(class ScratchpadPret />