Following the designs, we need an intermediate modal when a user tries to pin / unpin a message that 1) displays the message and 2) allows the user to confirm their requested action.
Because we are rendering a `Message`, there were two `Providers` we needed to avoid the invariants.
Firstly, the [[ https://github.com/CommE2E/comm/blob/e1ee9c65d196d51361ddbcceefeb4e079d36c6fe/web/utils/tooltip-utils.js#L386 ||
useMessageTooltipReplyAction ]] requires an `inputState`. I define the `inputState` in tooltip-utils since the target message should
have access to the context, as opposed to it being null in the modal.
Secondly, the [[ https://github.com/CommE2E/comm/blob/master/web/chat/text-message.react.js#L52 || messageListContext ]] is required
to be defined since `Message` renders a `TextMessage`.
Linear: https://linear.app/comm/issue/ENG-3446/pop-up-a-pinunpin-modal-when-the-tooltip-icon-is-clicked
Depends on D7308