From ae79ba1447008b8aa68d8d4f12b3959818811237 Mon Sep 17 00:00:00 2001 From: Jarek Radosz Date: Mon, 8 Jul 2024 17:55:03 +0200 Subject: [PATCH] DEV: Simplify breadcrumbs by using `path` arg (#27744) Example: ```hbs ``` Using `@path` instead of `@route`+`@model` combo makes it impossible to pass temporarily unresolvable routes. This fixes a bug with navigating from a model-based route to a parent route. --- .../components/admin-plugin-config-page.gjs | 7 +++---- .../admin/addon/templates/plugins-index.hbs | 7 +++++-- .../addon/templates/plugins-show-settings.hbs | 3 +-- .../app/components/d-breadcrumbs-item.gjs | 17 ++++------------- .../components/d-breadcrumbs-test.gjs | 8 ++++---- 5 files changed, 17 insertions(+), 25 deletions(-) diff --git a/app/assets/javascripts/admin/addon/components/admin-plugin-config-page.gjs b/app/assets/javascripts/admin/addon/components/admin-plugin-config-page.gjs index afffeb8d3b1..11314fa458a 100644 --- a/app/assets/javascripts/admin/addon/components/admin-plugin-config-page.gjs +++ b/app/assets/javascripts/admin/addon/components/admin-plugin-config-page.gjs @@ -27,14 +27,13 @@ export default class AdminPluginConfigPage extends Component {
- + diff --git a/app/assets/javascripts/admin/addon/templates/plugins-index.hbs b/app/assets/javascripts/admin/addon/templates/plugins-index.hbs index 7d5165b5ed7..08830a80341 100644 --- a/app/assets/javascripts/admin/addon/templates/plugins-index.hbs +++ b/app/assets/javascripts/admin/addon/templates/plugins-index.hbs @@ -1,7 +1,10 @@ - - + +
{{#if this.model.length}} diff --git a/app/assets/javascripts/admin/addon/templates/plugins-show-settings.hbs b/app/assets/javascripts/admin/addon/templates/plugins-show-settings.hbs index a8c17447199..3c6fcbfa7de 100644 --- a/app/assets/javascripts/admin/addon/templates/plugins-show-settings.hbs +++ b/app/assets/javascripts/admin/addon/templates/plugins-show-settings.hbs @@ -1,6 +1,5 @@ diff --git a/app/assets/javascripts/discourse/app/components/d-breadcrumbs-item.gjs b/app/assets/javascripts/discourse/app/components/d-breadcrumbs-item.gjs index 0915f1add7d..7626c4b4bb2 100644 --- a/app/assets/javascripts/discourse/app/components/d-breadcrumbs-item.gjs +++ b/app/assets/javascripts/discourse/app/components/d-breadcrumbs-item.gjs @@ -1,6 +1,6 @@ import Component from "@glimmer/component"; -import { cached } from "@glimmer/tracking"; import { service } from "@ember/service"; +import getURL from "discourse-common/lib/get-url"; export default class DBreadcrumbsItem extends Component { @service breadcrumbs; @@ -16,23 +16,14 @@ export default class DBreadcrumbsItem extends Component { this.breadcrumbs.items.delete(this); } - get url() { - if (this.args.model) { - return this.router.urlFor(this.args.route, this.args.model); - } else { - return this.router.urlFor(this.args.route); - } - } - - @cached + // @cached get templateForContainer() { // Those are evaluated in a different context than the `@linkClass` - const { label } = this.args; - const url = this.url; + const { label, path } = this.args; return ); assert.dom(".d-breadcrumbs .d-breadcrumbs__item.other-class").exists(); @@ -43,7 +43,7 @@ module( await render(); assert.dom(".d-breadcrumbs").exists({ count: 2 });