import { Alert, Button, Col, Row, Typography } from 'antd'; import React, { useContext, useEffect, useState } from 'react'; import Link from 'next/link'; import Discord from '../../components/config/notification/discord'; import Browser from '../../components/config/notification/browser'; import Twitter from '../../components/config/notification/twitter'; import Federation from '../../components/config/notification/federation'; import TextFieldWithSubmit, { TEXTFIELD_TYPE_URL, } from '../../components/config/form-textfield-with-submit'; import { TEXTFIELD_PROPS_FEDERATION_INSTANCE_URL } from '../../utils/config-constants'; import { ServerStatusContext } from '../../utils/server-status-context'; import { UpdateArgs } from '../../types/config-section'; import isValidUrl from '../../utils/urls'; const { Title } = Typography; export default function ConfigNotify() { const [formDataValues, setFormDataValues] = useState(null); const serverStatusData = useContext(ServerStatusContext); const { serverConfig } = serverStatusData || {}; const { yp } = serverConfig; const { instanceUrl } = yp; const [urlValid, setUrlValid] = useState(false); useEffect(() => { setFormDataValues({ instanceUrl, }); }, [yp]); const handleSubmitInstanceUrl = () => { if (!urlValid) { return; } setFormDataValues({ ...formDataValues, enabled: false, }); }; const handleFieldChange = ({ fieldName, value }: UpdateArgs) => { setUrlValid(isValidUrl(value)); setFormDataValues({ ...formDataValues, [fieldName]: value, }); }; const enabled = instanceUrl !== ''; const configurationWarning = !enabled && ( <>
); return ( <> Notifications

Let your viewers know when you go live by supporting any of the below notification channels.{' '} Learn more about live notifications.

{configurationWarning} Custom

Build your own notifications by using custom webhooks.

); }