import CommandDialog from './CommandDialog';
import Commands from './Commands';
import GuessingSettingsForm from './GuessingSettingsForm';
+import ChatBotLog from '../chat-bot-logs/ChatBotLog';
import ChannelSelect from '../common/ChannelSelect';
import Icon from '../common/Icon';
import ToggleSwitch from '../common/ToggleSwitch';
+const CHAT_CATEGORIES = [
+ 'unclassified',
+ 'hi',
+ 'gl',
+ 'gg',
+ 'eyes',
+ 'love',
+ 'lol',
+ 'yes',
+ 'no',
+ 'rage',
+ 'sad',
+ 'sweat',
+ 'wtf',
+ 'pog',
+ 'hype',
+ 'kappa',
+ 'o7',
+ 'question',
+ 'thx',
+];
+
const Controls = () => {
const [channel, setChannel] = React.useState(null);
const [chatText, setChatText] = React.useState('');
}
}, [channel, chatText, t]);
+ const randomChat = React.useCallback(async (category) => {
+ try {
+ await axios.post(`/api/channels/${channel.id}/chat`, {
+ bot_nick: 'horstiebot',
+ category,
+ });
+ toastr.success(t('twitchBot.chatSuccess'));
+ } catch (e) {
+ toastr.error(t('twitchBot.chatError'));
+ }
+ }, [channel, chatText, t]);
+
const join = React.useCallback(async (bot_nick) => {
try {
const rsp = await axios.post(`/api/channels/${channel.id}/join`, { bot_nick });
</Button>
</div>
</Form.Group>
+ <h3 className="mt-3">{t('twitchBot.randomChat')}</h3>
+ <div className="button-bar">
+ {CHAT_CATEGORIES.map(category =>
+ <Button
+ key={category}
+ onClick={() => { randomChat(category); }}
+ variant="outline-secondary"
+ >
+ {t(`twitchBot.chatCategories.${category}`)}
+ </Button>
+ )}
+ </div>
</Col>
<Col className="mt-5" md={6}>
- <h3>{t('twitchBot.chatSettings')}</h3>
+ <div className="d-flex justify-content-between">
+ <h3>{t('twitchBot.chatSettings')}</h3>
+ <div className="button-bar">
+ <ChatBotLog id={channel.id} />
+ </div>
+ </div>
<ChatSettingsForm channel={channel} onSubmit={saveChatSettings} />
</Col>
<Col className="mt-5" md={12}>
<div className="button-bar">
{channel.access_key ?
<Button
- onClick={() => {
- window.open(
- `/guessing-game/monitor/${channel.access_key}`,
- );
- }}
+ href={`/guessing-game/monitor/${channel.access_key}`}
+ target="_blank"
title={t('button.browserSource')}
variant="outline-secondary"
>
<Button
onClick={() => {
window.open(
- '/guessing-game/controls',
+ `/guessing-game/controls/${channel.id}`,
'',
'width=640,height=800,titlebar=0,menubar=0,toolbar=0',
);