import { Alert, Button, Col, Row, Typography } from 'antd';
import React, { ReactElement, useContext, useEffect, useState } from 'react';
import Link from 'next/link';
import { DiscordNotify as Discord } from '../../components/admin/notification/discord';
import { BrowserNotify as Browser } from '../../components/admin/notification/browser';
import { FediverseNotify as Federation } from '../../components/admin/notification/federation';
import {
TextFieldWithSubmit,
TEXTFIELD_TYPE_URL,
} from '../../components/admin/TextFieldWithSubmit';
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/validators';
import { AdminLayout } from '../../components/layouts/AdminLayout';
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 && (
<>
Let your viewers know when you go live by supporting any of the below notification channels.{' '} Learn more about live notifications.
{configurationWarning}Build your own notifications by using custom webhooks.