Toolkit de formulaire -- impossible de faire fonctionner l'info-bulle avec le composant comme décrite dans le sujet de la documentation ou dans les tests

Continuant la discussion de Discourse toolkit pour rendre les formulaires :

Je n’arrive pas à faire fonctionner cela. Il refuse simplement de rendre une infobulle. J’ai copié exactement

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

qui se trouve dans le test de form-kit. Si j’utilise un composant, aucune infobulle ne s’affiche.

Je ne trouve aucun exemple de composant utilisé dans le cœur de Discourse ou dans all-the-plugins, donc il semble impossible d’utiliser l’i18n avec une infobulle dans un formulaire ? (J’espérais que je n’arrivais juste pas à comprendre)

J’ai essayé les deux importations suivantes, la dernière provenant du test (pourquoi y en a-t-il deux ? Peut-être deux façons d’appeler le même fichier ? Je n’en vois qu’une dans le cœur) :

// import DTooltip from "discourse/components/d-tooltip";
import DTooltip from "float-kit/components/d-tooltip";
1 « J'aime »

En effet, le test et la documentation sont un peu confus.

En regardant le code, il suffit de retourner un composant <DTooltip>.
Par exemple, cela fonctionne pour moi :

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 « J'aime »

Lorsque je fais quelque chose comme ça, l’infobulle est simplement ajoutée au nom du champ.

@tooltip attend juste une chaîne de caractères. Une fois que je l’ai compris, j’ai simplement créé une fonction qui retourne une chaîne comme

  @action
  tooltipText(champ) {
    return i18n("pfaffmanager.help." + champ + "_tooltip");
  }
...
               <form.Field
              @name="install_type"
              @format="large"
              @translatedLabel="les bananes sont délicieuses"
              @validation="required"
              @tooltip={{this.tooltipText "install_type"}}
              @class="install-field"
              @title="Type d'installation"
              {{! @description="description." }}
              en |champ|
            
              champ.Select
                {{on "focus" (fn this.fieldClicked "install_type")}}
                en |select|
              

Cela semble être un autre cas où la documentation est tout simplement incorrecte.