From f68df6195f04f0770078e508970e839099170168 Mon Sep 17 00:00:00 2001 From: saller Date: Wed, 12 Jul 2023 10:59:36 +0800 Subject: [PATCH] fix(comp:textarea): boxsizing data parse error in firefox (#1599) boxsizing data got from computed style is empty string in firefox, causing paseFloat to return NaN --- .../textarea/src/utils/getBoxSizingData.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/components/textarea/src/utils/getBoxSizingData.ts b/packages/components/textarea/src/utils/getBoxSizingData.ts index 171991f6d..a0dea4574 100644 --- a/packages/components/textarea/src/utils/getBoxSizingData.ts +++ b/packages/components/textarea/src/utils/getBoxSizingData.ts @@ -18,10 +18,10 @@ export interface BoxSizingData { export function getBoxSizingData(node: HTMLElement): BoxSizingData { const { boxSizing, paddingBottom, paddingTop, borderBottom, borderTop } = window.getComputedStyle(node) - const _paddingTop = parseFloat(paddingTop) - const _paddingBottom = parseFloat(paddingBottom) - const _borderTop = parseFloat(borderTop) - const _borderBottom = parseFloat(borderBottom) + const _paddingTop = parseSize(paddingTop) + const _paddingBottom = parseSize(paddingBottom) + const _borderTop = parseSize(borderTop) + const _borderBottom = parseSize(borderBottom) return { boxSizing, @@ -33,3 +33,9 @@ export function getBoxSizingData(node: HTMLElement): BoxSizingData { borderBottom: _borderBottom, } } + +function parseSize(size: string): number { + const parsedSize = parseFloat(size) + + return Number.isNaN(parsedSize) ? 0 : parsedSize +}