Guardando un po’ più a fondo, un componente breadcrumbs è stato aggiunto a Discourse all’inizio di quest’anno: FEATURE: Introduce DBreadcrumbs components (#27049) · discourse/discourse@1239178 · GitHub. Attualmente viene visualizzato solo in pagine Admin selezionate.
Quindi avevo creato un componente di test per visualizzare i breadcrumbs: Manuel Kostka / Discourse / Components / Breadcrumbs · GitLab. Il template attuale è:
<template>
{{#if this.currentPage}}
{{bodyClass "has-breadcrumbs"}}
<ul class="breadcrumbs {{concat '--' settings.plugin_outlet}}">
<li class="breadcrumbs__item --home">
{{#if this.homePage}}
{{i18n "js.home"}}
{{else}}
<a href="/">{{i18n "js.home"}}</a>
{{/if}}
</li>
{{#if this.parentCategory}}
<li class="breadcrumbs__item --parent">
<a href="/c/{{this.parentCategoryLink}}">
{{this.parentCategoryName}}</a>
</li>
{{/if}}
{{#unless this.homePage}}
<li class="breadcrumbs__item --current">
{{this.currentPage}}
</li>
{{/unless}}
</ul>
{{/if}}
</template>
Ho creato un branch ora che utilizza il nuovo componente dbreadcrumbs: Files · dbreadcrumbs · Manuel Kostka / Discourse / Components / Breadcrumbs · GitLab. Ciò renderebbe il template più conciso e, immagino, fornirebbe generalmente una migliore coerenza e accessibilità:
<template>
{{#if this.currentPage}}
{{bodyClass "has-breadcrumbs"}}
<DBreadcrumbsContainer class="{{concat '--' settings.plugin_outlet}}" />
<DBreadcrumbsItem @path="/" @label={{i18n "js.home"}} />
{{#if this.parentCategory}}
<DBreadcrumbsItem
@path="/c/{{this.parentCategoryLink}}"
@label={{this.parentCategoryName}}
/>
{{/if}}
{{#unless this.homePage}}
<DBreadcrumbsItem @path="" @label={{this.currentPage}} />
{{/unless}}
{{/if}}
</template>
Tuttavia, utilizzando DBreadcrumbsItem, l’ordine della categoria padre e della sottocategoria viene mescolato sul componente renderizzato. La categoria corrente viene inserita per prima:
Mi chiedo se sia a causa di quel comportamento, dichiarato nel messaggio di commit?
- DBreadcrumbsItem - Il componente che registra un LinkTo
per il percorso dei breadcrumb. Il percorso dei breadcrumb
verrà visualizzato in base all’ordine in cui questi elementi vengono renderizzati sulla pagina.
