DEV: Clean up TreeNode component (#31069)

1. use `constructor` instead of `didInsert`
2. remove non-existent `unregisterInputFieldObserver` arg usage
3. don't curry `@index` arg twice in `@onClick`
4. use `@bind`
5. use `concatClass`
6. `dIcon` -> `icon`
This commit is contained in:
Jarek Radosz 2025-01-31 00:50:43 +01:00 committed by GitHub
parent dbdcd7cf67
commit d1c33076f3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 16 additions and 28 deletions

View File

@ -118,11 +118,6 @@ export default class SchemaThemeSettingNewEditor extends Component {
this.inputFieldObserver[index] = callback; this.inputFieldObserver[index] = callback;
} }
@action
unregisterInputFieldObserver(index) {
delete this.inputFieldObserver[index];
}
descriptions(fieldName, key) { descriptions(fieldName, key) {
// The `property_descriptions` metadata is an object with keys in the following format as an example: // The `property_descriptions` metadata is an object with keys in the following format as an example:
// //
@ -279,7 +274,6 @@ export default class SchemaThemeSettingNewEditor extends Component {
@addChildItem={{this.addChildItem}} @addChildItem={{this.addChildItem}}
@generateSchemaTitle={{this.generateSchemaTitle}} @generateSchemaTitle={{this.generateSchemaTitle}}
@registerInputFieldObserver={{this.registerInputFieldObserver}} @registerInputFieldObserver={{this.registerInputFieldObserver}}
@unregisterInputFieldObserver={{this.unregisterInputFieldObserver}}
/> />
<div class="schema-theme-setting-editor__footer"> <div class="schema-theme-setting-editor__footer">

View File

@ -1,11 +1,11 @@
import Component from "@glimmer/component"; import Component from "@glimmer/component";
import { tracked } from "@glimmer/tracking"; import { tracked } from "@glimmer/tracking";
import { fn, get } from "@ember/helper"; import { get } from "@ember/helper";
import { on } from "@ember/modifier"; import { on } from "@ember/modifier";
import { action } from "@ember/object";
import didInsert from "@ember/render-modifiers/modifiers/did-insert";
import { gt } from "truth-helpers"; import { gt } from "truth-helpers";
import dIcon from "discourse/helpers/d-icon"; import concatClass from "discourse/helpers/concat-class";
import icon from "discourse/helpers/d-icon";
import { bind } from "discourse/lib/decorators";
import ChildTree from "admin/components/schema-theme-setting/editor/child-tree"; import ChildTree from "admin/components/schema-theme-setting/editor/child-tree";
export default class SchemaThemeSettingNewEditorTreeNode extends Component { export default class SchemaThemeSettingNewEditorTreeNode extends Component {
@ -17,18 +17,12 @@ export default class SchemaThemeSettingNewEditorTreeNode extends Component {
constructor() { constructor() {
super(...arguments); super(...arguments);
this.#setText(); this.setText();
this.args.registerInputFieldObserver(this.args.index, this.setText);
} }
@action @bind
registerInputFieldObserver() { setText() {
this.args.registerInputFieldObserver(
this.args.index,
this.#setText.bind(this)
);
}
#setText() {
this.text = this.args.generateSchemaTitle( this.text = this.args.generateSchemaTitle(
this.args.object, this.args.object,
this.args.schema, this.args.schema,
@ -55,19 +49,20 @@ export default class SchemaThemeSettingNewEditorTreeNode extends Component {
<template> <template>
<li <li
{{on "click" @onClick}}
role="link" role="link"
class="schema-theme-setting-editor__tree-node --parent class={{concatClass
{{if @active ' --active'}}" "schema-theme-setting-editor__tree-node --parent"
{{on "click" (fn @onClick @index)}} (if @active "--active")
}}
> >
<div class="schema-theme-setting-editor__tree-node-text"> <div class="schema-theme-setting-editor__tree-node-text">
<span {{didInsert this.registerInputFieldObserver}}>{{this.text}}</span> <span>{{this.text}}</span>
{{#if (gt this.childObjectsProperties.length 0)}} {{#if (gt this.childObjectsProperties.length 0)}}
{{icon (if @active "chevron-down" "chevron-right")}}
{{dIcon (if @active "chevron-down" "chevron-right")}}
{{else}} {{else}}
{{dIcon "chevron-right"}} {{icon "chevron-right"}}
{{/if}} {{/if}}
</div> </div>

View File

@ -31,7 +31,6 @@ import TreeNode from "admin/components/schema-theme-setting/editor/tree-node";
@addChildItem={{@addChildItem}} @addChildItem={{@addChildItem}}
@generateSchemaTitle={{@generateSchemaTitle}} @generateSchemaTitle={{@generateSchemaTitle}}
@registerInputFieldObserver={{@registerInputFieldObserver}} @registerInputFieldObserver={{@registerInputFieldObserver}}
@unregisterInputFieldObserver={{@unregisterInputFieldObserver}}
/> />
{{/each}} {{/each}}