]> git.localhorst.tv Git - alttp.git/blobdiff - resources/js/components/twitch-bot/Controls.js
adlib chat
[alttp.git] / resources / js / components / twitch-bot / Controls.js
index 496ff11dd9dae4f977eecb793e25e0f0f2349256..394f5464c6369ec4049d342861a287396bb468f1 100644 (file)
@@ -8,11 +8,32 @@ import ChatSettingsForm from './ChatSettingsForm';
 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', 'lol', 'pog', 'hype', 'o7'];
+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);
@@ -47,6 +68,18 @@ const Controls = () => {
                }
        }, [channel, chatText, t]);
 
+       const adlibChat = React.useCallback(async () => {
+               try {
+                       await axios.post(`/api/channels/${channel.id}/chat`, {
+                               bot_nick: 'horstiebot',
+                               adlib: true,
+                       });
+                       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 });
@@ -226,9 +259,24 @@ const Controls = () => {
                                                        </Button>
                                                )}
                                        </div>
+                                       <div className="mt-3">
+                                               <Button
+                                                       onClick={() => { adlibChat(); }}
+                                                       title={t('twitchBot.adlibChatDesc')}
+                                                       variant="outline-secondary"
+                                               >
+                                                       {t('twitchBot.adlibChat')}
+                                               </Button>
+                                               <p className="text-muted">{t('twitchBot.adlibChatNote')}</p>
+                                       </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}>