From badc6ff4a3f061166133aadb5e9c58fb81d4b937 Mon Sep 17 00:00:00 2001 From: Stephen Haberman Date: Sun, 26 Jan 2025 09:40:11 -0600 Subject: [PATCH] Revert "Remove the pseudoPrefix approach, use replace." This reverts commit 5fa8f4c996e8094bf50042948c403ffc3ca0e144. --- .../fela-utils/src/generateCSSSelector.js | 8 ++--- packages/fela/src/createRenderer.js | 30 +++++++++++++++---- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/packages/fela-utils/src/generateCSSSelector.js b/packages/fela-utils/src/generateCSSSelector.js index b6d6a708..80750333 100644 --- a/packages/fela-utils/src/generateCSSSelector.js +++ b/packages/fela-utils/src/generateCSSSelector.js @@ -2,12 +2,12 @@ export default function generateCSSSelector( className, pseudo = '', specificityPrefix = '', - propertyPriority = 1 + propertyPriority = 1, + psuedoPrefix = false ) { const classNameSelector = `.${className}`.repeat(propertyPriority) - if (pseudo.includes('&')) { - pseudo = pseudo.replace('&', classNameSelector) - return `${specificityPrefix}${pseudo}` + if (psuedoPrefix) { + return `${specificityPrefix}${pseudo}${classNameSelector}` } return `${specificityPrefix}${classNameSelector}${pseudo}` } diff --git a/packages/fela/src/createRenderer.js b/packages/fela/src/createRenderer.js index 71f510a8..4cc00d13 100644 --- a/packages/fela/src/createRenderer.js +++ b/packages/fela/src/createRenderer.js @@ -10,6 +10,7 @@ import { isNestedSelector, isUndefinedValue, isSupport, + normalizeNestedProperty, processStyleWithPlugins, STATIC_TYPE, RULE_TYPE, @@ -199,7 +200,13 @@ export default function createRenderer(config = {}) { ) }, - _renderStyleToClassNames(style, pseudo = '', media = '', support = '') { + _renderStyleToClassNames( + style, + pseudo = '', + media = '', + support = '', + psuedoPrefix = false + ) { let classNames = '' const applyPlugin = (processed, plugin) => plugin(processed, renderer) @@ -211,9 +218,10 @@ export default function createRenderer(config = {}) { if (isNestedSelector(property)) { classNames += renderer._renderStyleToClassNames( value, - pseudo + property, + pseudo + normalizeNestedProperty(property), media, - support + support, + property.endsWith('&') ) } else if (isMediaQuery(property)) { const combinedMediaQuery = generateCombinedMediaQuery( @@ -299,7 +307,8 @@ Check http://fela.js.org/docs/basics/Rules.html#styleobject for more information value, pseudo, media, - support + support, + psuedoPrefix ) } @@ -315,7 +324,15 @@ Check http://fela.js.org/docs/basics/Rules.html#styleobject for more information return classNames }, - _renderStyleToCache(reference, property, value, pseudo, media, support) { + _renderStyleToCache( + reference, + property, + value, + pseudo, + media, + support, + psuedoPrefix + ) { // we remove undefined values to enable // usage of optional props without side-effects if (isUndefinedValue(value)) { @@ -335,7 +352,8 @@ Check http://fela.js.org/docs/basics/Rules.html#styleobject for more information className, pseudo, config.specificityPrefix, - renderer.propertyPriority[property] + renderer.propertyPriority[property], + psuedoPrefix ) const change = {