From 57304f313cc33a34e07fe397a6a88ed9923ac104 Mon Sep 17 00:00:00 2001 From: nekosaur Date: Thu, 21 Jan 2021 19:07:45 +0100 Subject: [PATCH 1/2] fix: remove superfluous spaces when normalizing class --- packages/shared/__tests__/normalizeProp.spec.ts | 17 +++++++++++++++++ packages/shared/src/normalizeProp.ts | 5 ++++- 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 packages/shared/__tests__/normalizeProp.spec.ts diff --git a/packages/shared/__tests__/normalizeProp.spec.ts b/packages/shared/__tests__/normalizeProp.spec.ts new file mode 100644 index 00000000000..f55f7f7bf86 --- /dev/null +++ b/packages/shared/__tests__/normalizeProp.spec.ts @@ -0,0 +1,17 @@ +import { normalizeClass } from '../src' + +describe('normalizeClass', () => { + test('handles string correctly', () => { + expect(normalizeClass('foo')).toEqual('foo') + }) + + test('handles array correctly', () => { + expect(normalizeClass(['foo', undefined, true, false, 'bar'])).toEqual('foo bar') + }) + + test('handles object correctly', () => { + expect(normalizeClass({ foo: true, bar: false, baz: true })).toEqual( + 'foo baz' + ) + }) +}) diff --git a/packages/shared/src/normalizeProp.ts b/packages/shared/src/normalizeProp.ts index 5e0f84055aa..b4401238f0b 100644 --- a/packages/shared/src/normalizeProp.ts +++ b/packages/shared/src/normalizeProp.ts @@ -62,7 +62,10 @@ export function normalizeClass(value: unknown): string { res = value } else if (isArray(value)) { for (let i = 0; i < value.length; i++) { - res += normalizeClass(value[i]) + ' ' + const normalized = normalizeClass(value[i]) + if (normalized.length) { + res += normalized + ' ' + } } } else if (isObject(value)) { for (const name in value) { From 32e1d6662bd7dc71654cd471fad722d50e5bfcaa Mon Sep 17 00:00:00 2001 From: Albert Kaaman Date: Sat, 30 Jan 2021 18:01:33 +0100 Subject: [PATCH 2/2] fix: simplified logic Co-authored-by: Jacek Karczmarczyk --- packages/shared/src/normalizeProp.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/shared/src/normalizeProp.ts b/packages/shared/src/normalizeProp.ts index b4401238f0b..1ff825bd8f5 100644 --- a/packages/shared/src/normalizeProp.ts +++ b/packages/shared/src/normalizeProp.ts @@ -63,7 +63,7 @@ export function normalizeClass(value: unknown): string { } else if (isArray(value)) { for (let i = 0; i < value.length; i++) { const normalized = normalizeClass(value[i]) - if (normalized.length) { + if (normalized) { res += normalized + ' ' } }