Skip to content

Commit be448aa

Browse files
author
Neil Roberts
authored
Don’t rewrite exact prefix matches (#1207)
* Don’t rewrite exact prefix matches * Add test, do an exact equality check
1 parent 020812f commit be448aa

2 files changed

Lines changed: 29 additions & 1 deletion

File tree

src/middleware/tests/theme.spec.tsx

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -414,4 +414,32 @@ describe('theme middleware', () => {
414414
}
415415
});
416416
});
417+
418+
it('should not create empty keys', () => {
419+
const baseClasses = {
420+
' _key': '@dojo/widgets/Base',
421+
root: 'base_root',
422+
selected: 'base_selected',
423+
active: 'base_active'
424+
};
425+
426+
const variantClasses = {
427+
' _key': '@dojo/widgets/Variant',
428+
base: 'variant_base',
429+
baseActive: 'variant_active'
430+
};
431+
432+
const composedClasses = composesInstance.compose(
433+
baseClasses,
434+
variantClasses,
435+
'base'
436+
);
437+
assert.deepEqual(composedClasses, {
438+
'@dojo/widgets/Base': {
439+
root: 'base_root',
440+
selected: 'base_selected',
441+
active: 'variant_active'
442+
}
443+
});
444+
});
417445
});

src/middleware/theme.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ export const theme = factory(function({ middleware: { coreTheme }, properties })
4848
if (prefix) {
4949
const prefixedCss = Object.keys({ ...virtualTheme, ...variantTheme }).reduce(
5050
(prefixCss, key) => {
51-
if (key.indexOf(prefix) === 0) {
51+
if (key.indexOf(prefix) === 0 && key !== prefix) {
5252
const classKey = lowercaseFirstChar(key.replace(prefix, ''));
5353
if (
5454
!variantTheme[key] &&

0 commit comments

Comments
 (0)