From e7393a9997f7fb7cffdb942e4e4af099b7756276 Mon Sep 17 00:00:00 2001 From: Joey Mezzacappa <20446836+jmezzacappa@users.noreply.github.com> Date: Mon, 8 Jan 2024 17:10:48 -0500 Subject: [PATCH] Fix label measurement after SSR hydration mismatch (#2626) Co-authored-by: Charlie Brown --- .changeset/tender-insects-rest.md | 5 +++++ packages/victory-core/src/victory-util/textsize.ts | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 .changeset/tender-insects-rest.md diff --git a/.changeset/tender-insects-rest.md b/.changeset/tender-insects-rest.md new file mode 100644 index 000000000..a6f73b7b6 --- /dev/null +++ b/.changeset/tender-insects-rest.md @@ -0,0 +1,5 @@ +--- +"victory-core": patch +--- + +Fix text label measurements after SSR hydration mismatch diff --git a/packages/victory-core/src/victory-util/textsize.ts b/packages/victory-core/src/victory-util/textsize.ts index 68b1d070c..4e1009e11 100644 --- a/packages/victory-core/src/victory-util/textsize.ts +++ b/packages/victory-core/src/victory-util/textsize.ts @@ -297,7 +297,11 @@ const styleToKeyComponent = (style) => { const _measureDimensionsInternal = memoize( (text: string | string[], style?: TextSizeStyleInterface) => { - const containerElement = _getMeasurementContainer(); + let containerElement = _getMeasurementContainer(); + if (!containerElement.isConnected) { + _getMeasurementContainer.cache.clear?.(); + containerElement = _getMeasurementContainer(); + } const lines = _splitToLines(text); let heightAcc = 0;