# api.addPostMenuButton com condições

**URL:** <https://meta.discourse.org/t/api-addpostmenubutton-with-conditions/209902>\
**Category:** Development\
**Created:** [22 Novembro , 2021 19:02 UTC](https://meta.discourse.org/t/api-addpostmenubutton-with-conditions/209902 "2021-11-22T19:02:51Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![Johani](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/johani/32/176920_2.png) [@Johani](https://meta.discourse.org/u/Johani)\
**Post date:** [12 Dezembro , 2021 22:58 UTC](https://meta.discourse.org/t/api-addpostmenubutton-with-conditions/209902/2 "2021-12-12T22:58:26Z")

</div>

O método `api.addPostMenuButton` se preocupa apenas com o valor que você retorna. Esse valor precisa ser um objeto. Qualquer coisa que você faça antes desse `return` não importa. O botão será renderizado para cada postagem, e o método lhe dá o objeto `post` que você pode usar para o seu trabalho.

Por exemplo, digamos que eu queira que o botão apareça apenas em postagens com mais de 300 palavras. Posso fazer algo assim.

`common > header`

```xml
<script type="text/discourse-plugin" version="0.8">
  const MIN_WORD_COUNT = 300;

  api.addPostMenuButton("myButton", (post) => {
    // você pode registrar as propriedades do post para ver com o que você tem para trabalhar
    // console.log(post);

    // exemplo
    const roughWordCount = post.cooked.match(/\S+/g).length;

    if (roughWordCount < MIN_WORD_COUNT) {
      // o botão não será renderizado
      return;
    }

    // o botão será renderizado, crie o objeto de retorno
    const result = {
      action: SOME_ACTION,
      icon: ICON_NAME,
      title: TITLE_TRANSLATION_KEY,
      className: CLASSNAMES,
      position: "first", // pode ser `first`, `last` ou `second-last-hidden`
    };

    // adicione um rótulo se estiver no desktop
    if (!post.mobileView) {
      result.label = LABLE_TRANSLATION_KEY;
    }

    // retorne o objeto
    return result;
  });
</script>

```

Altere as coisas em maiúsculas para dados reais e experimente em uma postagem com mais de 300 palavras. Você verá que ele é renderizado lá.

---

_[View the full topic](https://meta.discourse.org/t/api-addpostmenubutton-with-conditions/209902)._
