<issue_start><issue_comment>Title: Callback for the `hide` option invokes each time in `submenu`.
username_0: **Describe the bug**

```js
menu.submenu((ctx) => 'submenu', 'a', submenuInstance, {
      hide: (ctx) => {
         // this log message will be printed every time, even for plain text messages
         console.log('Submenu "hide" middleware.')
         return false
      }
})
```

**Versions**
* Version of telegraf: `latest`
* Version of telegraf-inline-menu: `latest`

**Expected behavior**
The `hide` middleware must be invoked only for `callbackQuery` updates.

Please can you check [this part](https://github.com/username_1/telegraf-inline-menu/blob/master/source/index.ts#L509-L510) of your code. Looks like there is a typo. Seems, the following code works well for me:
```
const m = new CombinedMiddleware(mainFunc, hiddenFunc)
          .addOnly(ctx => ctx.callbackQuery && ctx.callbackQuery.data && childActionCode.testIsBelow(ctx.callbackQuery.data))
```
<issue_comment>username_1: Actually hide has to be checked for other things than callbackQueries for submenus.
Each menu has middlewares which are only used on callbackQueries for buttons for example but there are generic middlewares possible. `menu.question` for example can have a text answer which listens for `message`.
When a submenu is hidden, everything inside the menu should not be possible to do. This includes the buttons (`callbackQuery`) and stuff like the `menu.question` answer.
So either its a callbackQuery, then it can be checked specifically or it is not a callbackQuery, then it can not be checked specifically.

You can test that out yourself with the examples provided.
use /start two times so you have two menus at the same time. With one you can toggle the food menu on and off. With the other menu you can enter the food menu and do things. If the menu is toggled of interactions within the food menu shouldn't work, this also has to apply to the question.

Sadly this is one of the things that is complicating this library quite a bit 😬

BTW: versions should be stated absolute as "latest" is different in half a year. The issue will stay as long as the repo exists and its nice to reproduce it still in half a year. For your next issues somewhere else :)<issue_closed>
<issue_comment>username_0: Thank you for clarifying.
<issue_comment>username_1: Thanks for your time and interest checking the source code and wondering about what happens there!