diff --git a/packages/uniwind/src/core/native/store.ts b/packages/uniwind/src/core/native/store.ts index 1c5d9cd1..e2c676aa 100644 --- a/packages/uniwind/src/core/native/store.ts +++ b/packages/uniwind/src/core/native/store.ts @@ -108,8 +108,11 @@ class UniwindStoreBuilder { let dependencySum = 0 const bestBreakpoints = new Map() const isScopedTheme = uniwindContext.scopedTheme !== null + const classNameTokens = classNames.includes('\n') + ? classNames.split(/\s+/).filter(Boolean) + : classNames.split(' ') - for (const className of classNames.split(' ')) { + for (const className of classNameTokens) { if (!(className in this.stylesheet)) { continue } diff --git a/packages/uniwind/tests/native/styles-parsing/multiline.test.tsx b/packages/uniwind/tests/native/styles-parsing/multiline.test.tsx new file mode 100644 index 00000000..74e48cad --- /dev/null +++ b/packages/uniwind/tests/native/styles-parsing/multiline.test.tsx @@ -0,0 +1,20 @@ +import * as React from 'react' +import View from '../../../src/components/native/View' +import { TW_RED_500 } from '../../consts' +import { renderUniwind } from '../utils' + +describe('Multiline', () => { + test('Multiline classes are handled', () => { + const { getStylesFromId } = renderUniwind( + , + ) + + const multilineStyles = getStylesFromId('multiline') + expect(multilineStyles.backgroundColor).toBe(TW_RED_500) + expect(multilineStyles.borderWidth).toBe(2) + }) +})