- Access Tokens
-
- Access tokens are used to allow external, 3rd party tools to perform specific actions on your Owncast server.
- They should be kept secure and never included in client code, instead they should be kept on a server that you control.
-
-
- Read more about how to use these tokens, with examples, at our documentation.
-
-
-
+ Access Tokens
+
+ Access tokens are used to allow external, 3rd party tools to perform specific actions on
+ your Owncast server. They should be kept secure and never included in client code, instead
+ they should be kept on a server that you control.
+
+
+ Read more about how to use these tokens, with examples, at{' '}
+ our documentation.
+
+
+
+
+
+
+
+ );
}
diff --git a/web/pages/webhooks.tsx b/web/pages/webhooks.tsx
index 0fae6d9d6..a232bef90 100644
--- a/web/pages/webhooks.tsx
+++ b/web/pages/webhooks.tsx
@@ -1,183 +1,216 @@
-import React, { useState, useEffect } from "react";
-import { Table, Tag, Space, Button, Modal, Checkbox, Input, Typography, Tooltip, Select } from 'antd';
+import React, { useState, useEffect } from 'react';
+import {
+ Table,
+ Tag,
+ Space,
+ Button,
+ Modal,
+ Checkbox,
+ Input,
+ Typography,
+ Tooltip,
+ Select,
+} from 'antd';
import { DeleteOutlined, EyeTwoTone, EyeInvisibleOutlined } from '@ant-design/icons';
-import {isValidUrl} from '../utils/urls';
+import { isValidUrl } from '../utils/urls';
const { Title, Paragraph, Text } = Typography;
const { Option } = Select;
-import format from 'date-fns/format'
-
-import {
- fetchData,
- DELETE_WEBHOOK,
- CREATE_WEBHOOK,
- WEBHOOKS,
-} from "../utils/apis";
+import { fetchData, DELETE_WEBHOOK, CREATE_WEBHOOK, WEBHOOKS } from '../utils/apis';
const availableEvents = {
- 'CHAT': { name: 'Chat messages', description: 'When a user sends a chat message', color: 'purple' },
- 'USER_JOINED': { name: 'User joined', description: 'When a user joins the chat', color: 'green'},
- 'NAME_CHANGE': { name: 'User name changed', description: 'When a user changes their name', color: 'blue'},
- 'VISIBILITY-UPDATE': { name: 'Message visibility changed', description: 'When a message visibility changes, likely due to moderation', color: 'red'},
- 'STREAM_STARTED': {name: 'Stream started', description: 'When a stream starts', color: 'orange'},
- 'STREAM_STOPPED': {name: 'Stream stopped', description: 'When a stream stops', color: 'cyan'}
-
+ CHAT: { name: 'Chat messages', description: 'When a user sends a chat message', color: 'purple' },
+ USER_JOINED: { name: 'User joined', description: 'When a user joins the chat', color: 'green' },
+ NAME_CHANGE: {
+ name: 'User name changed',
+ description: 'When a user changes their name',
+ color: 'blue',
+ },
+ 'VISIBILITY-UPDATE': {
+ name: 'Message visibility changed',
+ description: 'When a message visibility changes, likely due to moderation',
+ color: 'red',
+ },
+ STREAM_STARTED: { name: 'Stream started', description: 'When a stream starts', color: 'orange' },
+ STREAM_STOPPED: { name: 'Stream stopped', description: 'When a stream stops', color: 'cyan' },
};
function convertEventStringToTag(eventString) {
- if (!eventString || !availableEvents[eventString]) {
- return null;
- }
+ if (!eventString || !availableEvents[eventString]) {
+ return null;
+ }
- const event = availableEvents[eventString];
+ const event = availableEvents[eventString];
- return (
-
-
- {event.name}
-
-
- );
+ return (
+
+ {event.name}
+
+ );
}
function NewWebhookModal(props) {
- const [selectedEvents, setSelectedEvents] = useState([]);
- const [webhookUrl, setWebhookUrl] = useState('');
-
- const events = Object.keys(availableEvents).map(function (key) {
- return { value: key, label: availableEvents[key].description }
- });
-
-
- function onChange(checkedValues) {
- setSelectedEvents(checkedValues);
- }
-
- function selectAll() {
- setSelectedEvents(Object.keys(availableEvents));
- }
-
- function save() {
- props.onOk(webhookUrl, selectedEvents)
-
- // Reset the modal
- setWebhookUrl('');
- setSelectedEvents(null);
- }
-
- const okButtonProps = {
- disabled: selectedEvents?.length === 0 || !isValidUrl(webhookUrl)
- };
-
- return (
-
-
setWebhookUrl(input.currentTarget.value)} />
-
-
- Select the events that will be sent to this webhook.
-
- Webhooks
-
- A webhook is a callback made to an external API in response to an event. These are endpoints that live outside of Owncast and run code who wants to be made aware of events that take place on your server.
-
-
- Read more about how to use webhooks, with examples, at our documentation.
-
-
-
+ Webhooks
+
+ A webhook is a callback made to an external API in response to an event that takes place
+ within Owncast. This can be used to build chat bots or sending automatic notifications that
+ you've started streaming.
+
+
+ Read more about how to use webhooks, with examples, at{' '}
+ our documentation.
+
+
+