X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fcomponents%2Ftwitch-bot%2FControls.js;h=bdc89380fe75c07a4a1ad22e8dd2587661d1ac1b;hb=532dea7c62f3619a04cd8d7aa895f8db1f3f98d2;hp=0aea916cf04d698a879bc6bed886a88ebb426e08;hpb=e10222af705e3475fcea6e0b17d1c9984a62db26;p=alttp.git
diff --git a/resources/js/components/twitch-bot/Controls.js b/resources/js/components/twitch-bot/Controls.js
index 0aea916..bdc8938 100644
--- a/resources/js/components/twitch-bot/Controls.js
+++ b/resources/js/components/twitch-bot/Controls.js
@@ -1,20 +1,34 @@
import axios from 'axios';
import React from 'react';
-import { Alert, Col, Form, Row } from 'react-bootstrap';
+import { Alert, Button, Col, Form, Row } from 'react-bootstrap';
import { useTranslation } from 'react-i18next';
import toastr from 'toastr';
+import ChatSettingsForm from './ChatSettingsForm';
import ChannelSelect from '../common/ChannelSelect';
import ToggleSwitch from '../common/ToggleSwitch';
const Controls = () => {
const [channel, setChannel] = React.useState(null);
+ const [chatText, setChatText] = React.useState('');
const { t } = useTranslation();
- const join = React.useCallback(async () => {
+ const chat = React.useCallback(async (text, bot_nick) => {
try {
- const rsp = await axios.post(`/api/channels/${channel.id}/join`);
+ await axios.post(`/api/channels/${channel.id}/chat`, {
+ text,
+ bot_nick,
+ });
+ 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 });
setChannel(rsp.data);
toastr.success(t('twitchBot.joinSuccess'));
} catch (e) {
@@ -22,9 +36,9 @@ const Controls = () => {
}
}, [channel, t]);
- const part = React.useCallback(async () => {
+ const part = React.useCallback(async (bot_nick) => {
try {
- const rsp = await axios.post(`/api/channels/${channel.id}/part`);
+ const rsp = await axios.post(`/api/channels/${channel.id}/part`, { bot_nick });
setChannel(rsp.data);
toastr.success(t('twitchBot.partSuccess'));
} catch (e) {
@@ -32,6 +46,16 @@ const Controls = () => {
}
}, [channel, t]);
+ const saveChatSettings = React.useCallback(async (values) => {
+ try {
+ const rsp = await axios.post(`/api/channels/${channel.id}/chat-settings`, values);
+ setChannel(rsp.data);
+ toastr.success(t('twitchBot.saveSuccess'));
+ } catch (e) {
+ toastr.error(t('twitchBot.saveError'));
+ }
+ }, [channel, t]);
+
return <>