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.