ID темы как переменная?

@tknospdr @pfaffman Я быстро собрал компонент, который позволяет ввести ID темы и перейти к ней.

Создайте новый компонент и добавьте этот код во вкладку JS под кнопкой Изменить CSS/HTML[1]:

import { apiInitializer } from "discourse/lib/api";
import Component from '@glimmer/component';
import { action } from "@ember/object";
import Form from "discourse/components/form";
import DiscourseURL from "discourse/lib/url";

export default apiInitializer((api) => {
    api.renderBeforeWrapperOutlet("full-page-search-filters", 
        class GoToTopic extends Component {
            @action
            handleSubmit(data) {
                DiscourseURL.routeTo(`/t/${data.id}`);
            }
            
            
            <template>
                <div class="topic-id-go-to" style="margin-top: 1em;">
                    <Form @onSubmit={{this.handleSubmit}} as |form|>
                    
                      <form.Field @name="id" @title="ID темы" as |field|>
                        <field.Input @type="number" @validation="required" />
                      </form.Field>
                    
                      <form.Submit />
                    </Form>
                </div>
            </template>
        }
    );
});

Это добавляет поле ввода на страницу поиска:


Кнопка Отправить предназначена для перехода к теме[2]; она не влияет на результаты поиска.

Надеюсь, это поможет!


  1. Это мой первый опыт использования FormKit, он действительно крутой ↩︎

  2. Я не мог изменить текст кнопки, так как для этого потребовались бы локализации… что, в свою очередь, потребовало бы создания целого репозитория TC, что, возможно, излишне :person_shrugging: ↩︎