Ferramenta de formulário -- não consigo fazer a tooltip funcionar com o componente como descrito no tópico da documentação ou nos testes

Continuando a discussão de Discourse toolkit para renderizar formulários:

Não consigo fazer isso funcionar. Simplesmente se recusa a renderizar uma dica de ferramenta. Copiei exatamente

            @tooltip={{component DTooltip content="component"}}

que está no teste do form-kit. Se eu usar um componente, nenhuma dica de ferramenta é renderizada.

Não consigo encontrar um exemplo de um componente sendo usado no core ou em all-the-plugins, então parece impossível usar i18n com uma dica de ferramenta em um formulário? (Eu esperava que talvez eu apenas não conseguisse descobrir isso)

Tentei ambas estas importações, a última do teste (por que existem duas? Talvez sejam duas maneiras de chamar o mesmo arquivo? Eu só vejo uma no core):

// import DTooltip from "discourse/components/d-tooltip";
import DTooltip from "float-kit/components/d-tooltip";
1 curtida

De fato, o teste e a documentação são um pouco confusos.

Olhando o código, você só precisa retornar um componente <DTooltip>.
Por exemplo, isso funciona para mim:

const tooltip = <template>
    <DTooltip @icon="circle-question" @content="test" />
</template>

<form.Field
    @name="username"
    @title="Username"
    @validation="required"
    @tooltip={{tooltip}}
    as |field|
>
    <field.Input />
</form.Field>

image

1 curtida

Quando faço algo assim, a dica de ferramenta é apenas adicionada ao nome do campo.

@tooltip só quer uma string. Assim que percebi isso, criei uma função que retorna uma string como

  @action
  tooltipText(field) {
    return i18n("pfaffmanager.help." + field + "_tooltip");
  }
...
               <form.Field
              @name="install_type"
              @format="large"
              @translatedLabel="bananas are delicious"
              @validation="required"
              @tooltip={{this.tooltipText "install_type"}}
              @class="install-field"
              @title="Install Type"
              {{! @description="description." }}
              as |field|
            >
              <field.Select
                {{on "focus" (fn this.fieldClicked "install_type")}}
                as |select|
              >

Este parece ser outro caso em que a documentação está errada.