Ящик, на который вы ссылаетесь, называется ящиком отправки. Если вы используете BotFramework-Web Chat , вы можете отключить его, передав значение через styleOptions
следующим образом:
<script>
(async function () {
const styleOptions = {
hideSendBox = true
}
[...]
window.ReactDOM.render(
<ReactWebChat
directLine={directLine},
styleOptions={styleOptions}
/>,
document.getElementById( 'webchat' )
);
})
</script>
Если вы используете встроенную версию веб-чата iFrame , это не настраивается.
Надежда на помощь!
Редактировать
Если вы хотите, чтобы окно отправки отвечало в соответствии с типом активности, полученной от бот, тогда вы захотите использовать комбинацию функции activityMiddleware()
, а также отправителя / прослушивателя событий. В следующем примере я скрываю / показываю поле отправки, когда suggestedActions
является свойством активности.
Обратите внимание, что значения данных должны быть «none» и «flex». В частности, последнее значение, когда оно не suggestedActions
для поддержания текущего кода.
<script>
(async function () {
[...]
const activityMiddleware = () => next => card => {
const { activity: { suggestedActions } } = card;
const toggleSendBoxEvent = new Event('ToggleSendBoxEvent')
if (suggestedActions) {
toggleSendBoxEvent.data = "none";
window.dispatchEvent(toggleSendBoxEvent);
} else {
toggleSendBoxEvent.data = "flex";
window.dispatchEvent(toggleSendBoxEvent);
}
return next(card);
)
[...]
window.ReactDOM.render(
<ReactWebChat
directLine={ window.WebChat.createDirectLine({ token }) }
activityMiddleware={ activityMiddleware }
/>,
document.getElementById( 'webchat' )
);
window.addEventListener('ToggleSendBoxEvent', ( { data } ) => {
const sendBoxes = document.getElementsByClassName("main");
let send_Box;
for (let sendBox of sendBoxes) {
send_Box = sendBox;
}
send_Box.setAttribute('style', `display:${ data }`)
})
});
</script>
Надеюсь на помощь!