When working in Experience Editor, by default you see empty fields of components, that allows you editing these fields, selecting hierarchy and thus modifying components. However not always that happens...
Scenario: creating a rendering variant that has
VariantReference (for switching context of related item) while editing partial design in Experience Editor.
Symptoms: what actually happens is that partial designs are edited in their own context, all presentation data you create is stored in Final Renderings for that particular Partial Design, and not the page item. It will pull data from page item only once applied that item or (more likely) associated with its page template. But when using
VariantReference field, it won't be wired to any data, thus not proxying the context to anything, leading to all the fields underneath
VariantReference field item not rendered in EE. If there are not any other visuals within given rendering variant - entire component becomes non-selectable in EE.
Suggestion: to create some information field to be shown in Experience Editor, so that you may select given component and adjust its settings, as you normally do. At the same time we don't want this field to present outside of Experience Editor since its only purpose is make editors aware about this component.
Solution: that's the case where we can use personalization with a custom "where the Experience Editor is in editing mode" condition I recently wrote about. Having it in scope trick goes very simple - simply create a text variant field and enter component and rendering variant info:
And once done, create a personalization rule for that info field to be shown only in Experience Editor, using newly created condition:
Finally, instead of unclickable whitespace, you'll see the component:
Hope this basic trick helps improving your productivity while working with SXA!