From eb5cb8237bfb98e091cd2596004b25e4aa308f6d Mon Sep 17 00:00:00 2001 From: xuan Date: Wed, 13 Mar 2024 07:11:16 +0000 Subject: [PATCH] =?UTF-8?q?!165=20fix(core):=20=E4=BF=AE=E5=A4=8Dcss?= =?UTF-8?q?=E5=8F=98=E9=87=8F=E4=B8=BAundefined=E6=98=AF=E4=BB=8D=E7=84=B6?= =?UTF-8?q?=E8=A2=AB=E6=B8=B2=E6=9F=93=E7=9A=84=E9=94=99=E8=AF=AF=20*=20ch?= =?UTF-8?q?ore:=20bump=20jest=20to=2029.7.0=20*=20fix(core):=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8Dcss=E5=8F=98=E9=87=8F=E4=B8=BAundefined=E6=98=AF?= =?UTF-8?q?=E4=BB=8D=E7=84=B6=E8=A2=AB=E6=B8=B2=E6=9F=93=E7=9A=84=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 4 +-- .../ComponentTest/PortalComponent.test.js | 2 +- packages/inula/jest.config.js | 4 +-- .../dom/DOMPropertiesHandler/StyleHandler.ts | 32 ++++++++++--------- 4 files changed, 22 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index 9982cdf4..d5f9497e 100644 --- a/package.json +++ b/package.json @@ -67,8 +67,8 @@ "eslint-plugin-no-function-declare-after-return": "^1.0.0", "eslint-plugin-react": "7.14.3", "husky": "^8.0.3", - "jest": "^25.5.4", - "jest-environment-jsdom-sixteen": "^1.0.3", + "jest": "^29.7.0", + "jest-environment-jsdom": "^29.7.0", "lint-staged": "^15.2.0", "openinula": "workspace:*", "prettier": "^3.1.1", diff --git a/packages/inula/__tests__/ComponentTest/PortalComponent.test.js b/packages/inula/__tests__/ComponentTest/PortalComponent.test.js index 79801e02..26186fb4 100644 --- a/packages/inula/__tests__/ComponentTest/PortalComponent.test.js +++ b/packages/inula/__tests__/ComponentTest/PortalComponent.test.js @@ -282,7 +282,7 @@ describe('PortalComponent Test', () => { Inula.render(, container); showPortalInput(true); - jest.advanceTimersToNextTimer(); + jest.useFakeTimers(); dispatchChangeEvent(inputRef.current, 'test'); expect(fn).toHaveBeenCalledTimes(1); }); diff --git a/packages/inula/jest.config.js b/packages/inula/jest.config.js index 884a8a8b..3cc92923 100644 --- a/packages/inula/jest.config.js +++ b/packages/inula/jest.config.js @@ -23,7 +23,7 @@ module.exports = { setupFilesAfterEnv: [require.resolve('./__tests__/jest/jestSetting.js')], - testEnvironment: 'jest-environment-jsdom-sixteen', + testEnvironment: 'jest-environment-jsdom', testMatch: [ // '/scripts/__tests__/InulaXTest/edgeCases/deepVariableObserver.test.tsx', @@ -32,5 +32,5 @@ module.exports = { '/__tests__/**/*.test.tsx', ], - timers: 'fake', + fakeTimers: { enableGlobally: true }, }; diff --git a/packages/inula/src/dom/DOMPropertiesHandler/StyleHandler.ts b/packages/inula/src/dom/DOMPropertiesHandler/StyleHandler.ts index 46496f2f..76d9c8c0 100644 --- a/packages/inula/src/dom/DOMPropertiesHandler/StyleHandler.ts +++ b/packages/inula/src/dom/DOMPropertiesHandler/StyleHandler.ts @@ -62,16 +62,16 @@ function isNeedUnitCSS(styleName: string) { * 对空值或布尔值进行适配,转为空字符串 * 去掉多余空字符 */ -export function adjustStyleValue(name, value) { - let validValue = value; - - if (typeof value === 'number' && value !== 0 && isNeedUnitCSS(name)) { - validValue = `${value}px`; - } else if (value === '' || value === null || value === undefined || typeof value === 'boolean') { - validValue = ''; +export function adjustStyleValue(name: string, value: unknown, isCustomProperty = false) { + if (value === '' || value === null || value === undefined || typeof value === 'boolean') { + return ''; } - return validValue; + if (!isCustomProperty && typeof value === 'number' && value !== 0 && isNeedUnitCSS(name)) { + return `${value}px`; + } + + return value; } /** @@ -83,14 +83,16 @@ export function setStyles(dom, styles) { } const style = dom.style; - Object.keys(styles).forEach(name => { - const styleVal = styles[name]; - // 以--开始的样式直接设置即可 - if (name.indexOf('--') === 0) { + for (let name of Object.keys(styles)) { + const isCustomProperty = name.indexOf('--') == 0; + const styleVal = adjustStyleValue(name, styles[name], isCustomProperty); + if (name === 'float') { + name = 'cssFloat'; + } + if (isCustomProperty) { style.setProperty(name, styleVal); } else { - // 使用这种赋值方式,浏览器可以将'WebkitLineClamp', 'backgroundColor'分别识别为'-webkit-line-clamp'和'backgroud-color' - style[name] = adjustStyleValue(name, styleVal); + style[name] = styleVal; } - }); + } }