fix(shared): fix parsing of multi-line inline style (#6777)

This commit is contained in:
三咲智子 Kevin Deng 2022-11-08 11:17:50 +08:00 committed by GitHub
parent 99b6697fb4
commit 9768949ce0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 2 deletions

View File

@ -1,4 +1,4 @@
import { normalizeClass } from '../src'
import { normalizeClass, parseStringStyle } from '../src'
describe('normalizeClass', () => {
test('handles string correctly', () => {
@ -16,4 +16,31 @@ describe('normalizeClass', () => {
'foo baz'
)
})
// #6777
test('parse multi-line inline style', () => {
expect(
parseStringStyle(`border: 1px solid transparent;
background: linear-gradient(white, white) padding-box,
repeating-linear-gradient(
-45deg,
#ccc 0,
#ccc 0.5em,
white 0,
white 0.75em
);`)
).toMatchInlineSnapshot(`
Object {
"background": "linear-gradient(white, white) padding-box,
repeating-linear-gradient(
-45deg,
#ccc 0,
#ccc 0.5em,
white 0,
white 0.75em
)",
"border": "1px solid transparent",
}
`)
})
})

View File

@ -27,7 +27,7 @@ export function normalizeStyle(
}
const listDelimiterRE = /;(?![^(]*\))/g
const propertyDelimiterRE = /:(.+)/
const propertyDelimiterRE = /:([^]+)/
export function parseStringStyle(cssText: string): NormalizedStyle {
const ret: NormalizedStyle = {}