Hide attributes details if none are enabled.
>>> [!note] Migrated issue
<!-- Drupal.org comment -->
<!-- Migrated from issue #3191538. -->
Reported by: [himerus](https://www.drupal.org/user/159141)
Related to !12
>>>
<h3 id="summary-problem-motivation">Problem/Motivation</h3>
<p><img src="https://www.drupal.org/files/issues/2021-01-07/item_attributes_empty.png" alt="Empty attributes"></p>
<p>I'm using this module specifically for two custom attributes that get preprocessed and passed as attributes on a web component. Not using any of the default attributes.</p>
<p>They are all set to default by default, and are intended only for custom link fields attached to nodes/blocks/etc.<br>
However, I now have an empty attributes details item on default menu links as pictured in the attached screenshot. </p>
<h4 id="summary-steps-reproduce">Steps to reproduce</h4>
<div class="codeblock">
<pre><span style="color: #000000"><span style="color: #0000BB"><?php<br>$fields</span><span style="color: #007700">[</span><span style="color: #DD0000">'link'</span><span style="color: #007700">]-></span><span style="color: #0000BB">setDisplayOptions</span><span style="color: #007700">(</span><span style="color: #DD0000">'form'</span><span style="color: #007700">, [<br> </span><span style="color: #DD0000">'type' </span><span style="color: #007700">=> </span><span style="color: #DD0000">'link_attributes'</span><span style="color: #007700">,<br> </span><span style="color: #DD0000">'weight' </span><span style="color: #007700">=> -</span><span style="color: #0000BB">2</span><span style="color: #007700">,<br> </span><span style="color: #DD0000">'settings' </span><span style="color: #007700">=> [<br> </span><span style="color: #DD0000">'enabled_attributes' </span><span style="color: #007700">=> [<br> </span><span style="color: #DD0000">'id' </span><span style="color: #007700">=> </span><span style="color: #0000BB">FALSE</span><span style="color: #007700">,<br> </span><span style="color: #DD0000">'name' </span><span style="color: #007700">=> </span><span style="color: #0000BB">FALSE</span><span style="color: #007700">,<br> </span><span style="color: #DD0000">'target' </span><span style="color: #007700">=> </span><span style="color: #0000BB">FALSE</span><span style="color: #007700">,<br> </span><span style="color: #DD0000">'rel' </span><span style="color: #007700">=> </span><span style="color: #0000BB">FALSE</span><span style="color: #007700">,<br> </span><span style="color: #DD0000">'class' </span><span style="color: #007700">=> </span><span style="color: #0000BB">FALSE</span><span style="color: #007700">,<br> </span><span style="color: #DD0000">'accesskey' </span><span style="color: #007700">=> </span><span style="color: #0000BB">FALSE</span><span style="color: #007700">,<br> </span><span style="color: #FF8000">// Add your own custom attributes as required.<br> </span><span style="color: #DD0000">'data-variant' </span><span style="color: #007700">=> </span><span style="color: #0000BB">FALSE</span><span style="color: #007700">,<br> </span><span style="color: #DD0000">'data-arrow' </span><span style="color: #007700">=> </span><span style="color: #0000BB">FALSE</span><span style="color: #007700">,<br> ],<br> ],<br> ]);<br></span><span style="color: #0000BB">?></span></span></pre></div>
<h3 id="summary-proposed-resolution">Proposed resolution</h3>
<div class="codeblock">
<pre><span style="color: #000000"><span style="color: #0000BB"><?php<br> $element</span><span style="color: #007700">[</span><span style="color: #DD0000">'options'</span><span style="color: #007700">][</span><span style="color: #DD0000">'attributes'</span><span style="color: #007700">] = [<br> </span><span style="color: #DD0000">'#type' </span><span style="color: #007700">=> </span><span style="color: #DD0000">'details'</span><span style="color: #007700">,<br> </span><span style="color: #DD0000">'#title' </span><span style="color: #007700">=> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">t</span><span style="color: #007700">(</span><span style="color: #DD0000">'Attributes'</span><span style="color: #007700">),<br> </span><span style="color: #DD0000">'#tree' </span><span style="color: #007700">=> </span><span style="color: #0000BB">TRUE</span><span style="color: #007700">,<br> </span><span style="color: #DD0000">'#open' </span><span style="color: #007700">=> </span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$attributes</span><span style="color: #007700">),<br> ];<br></span><span style="color: #0000BB">?></span></span></pre></div>
<p> in LinkWithAttributesWidget.php should be hidden entirely if there aren't any available attributes to be configured for a link.</p>
<p><img src="https://www.drupal.org/files/issues/2021-03-02/Screenshot%202021-03-02%20at%203.20.46%20PM.png" alt=""></p>
<p><img src="https://www.drupal.org/files/issues/2021-03-02/Screenshot%202021-03-02%20at%203.20.46%20PM.png" alt=""></p>
issue