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'; const { Title, Paragraph, Text } = Typography; const { Option } = Select; import format from 'date-fns/format' import { fetchData, DELETE_WEBHOOK, CREATE_WEBHOOK, WEBHOOKS, } from "../utils/apis"; const availableEvents = { 'CHAT': { name: 'Chat messages', description: 'When a user sends a chat message' }, 'USER_JOINED': { name: 'User joined', description: 'When a user joins the chat'}, 'NAME_CHANGE': { name: 'User name changed', description: 'When a user changes their name'}, 'VISIBILITY-UPDATE': { name: 'Message visibility changed', description: 'When a message visibility changes, likely due to moderation'}, 'STREAM_STARTED': {name: 'Stream started', description: 'When a stream starts'}, 'STREAM_STOPPED': {name: 'Stream stopped', description: 'When a stream stops'} }; function convertEventStringToTag(eventString) { if (!eventString || !availableEvents[eventString]) { return null; } const event = availableEvents[eventString]; const color = 'purple'; return ( {event.name} ); } function NewWebhookModal(props) { var selectedEvents = []; const [name, setName] = useState(''); const events = Object.keys(availableEvents).map(function (key) { return { value: key, label: availableEvents[key].description } }); function onChange(checkedValues) { selectedEvents = checkedValues } function save() { props.onOk(name, selectedEvents) } return (
setName(input.currentTarget.value)} />

Select the events that will be sent to this webhook.

) } export default function Webhooks() { const [webhooks, setWebhooks] = useState([]); const [isModalVisible, setIsModalVisible] = useState(false); const columns = [ { title: '', key: 'delete', render: (text, record) => (