import React, { useState, useContext, useEffect } from 'react'; import { Typography } from 'antd'; import TextFieldWithSubmit, { TEXTFIELD_TYPE_TEXTAREA, TEXTFIELD_TYPE_URL, } from './form-textfield-with-submit'; import { ServerStatusContext } from '../../utils/server-status-context'; import { postConfigUpdateToAPI, TEXTFIELD_PROPS_INSTANCE_URL, TEXTFIELD_PROPS_SERVER_NAME, TEXTFIELD_PROPS_SERVER_SUMMARY, TEXTFIELD_PROPS_LOGO, API_YP_SWITCH, FIELD_PROPS_YP, FIELD_PROPS_NSFW, } from '../../utils/config-constants'; import { NEXT_PUBLIC_API_HOST } from '../../utils/apis'; import { UpdateArgs } from '../../types/config-section'; import ToggleSwitch from './form-toggleswitch'; const { Title } = Typography; export default function EditInstanceDetails() { const [formDataValues, setFormDataValues] = useState(null); const serverStatusData = useContext(ServerStatusContext); const { serverConfig } = serverStatusData || {}; const { instanceDetails, yp } = serverConfig; const { instanceUrl } = yp; useEffect(() => { setFormDataValues({ ...instanceDetails, ...yp, }); }, [instanceDetails, yp]); if (!formDataValues) { return null; } // if instanceUrl is empty, we should also turn OFF the `enabled` field of directory. const handleSubmitInstanceUrl = () => { if (formDataValues.instanceUrl === '') { if (yp.enabled === true) { postConfigUpdateToAPI({ apiPath: API_YP_SWITCH, data: { value: false }, }); } } }; const handleFieldChange = ({ fieldName, value }: UpdateArgs) => { setFormDataValues({ ...formDataValues, [fieldName]: value, }); }; const hasInstanceUrl = instanceUrl !== ''; return (
Configure Instance Details
{instanceDetails.logo && uploaded logo}

Increase your audience by appearing in the{' '} Owncast Directory . This is an external service run by the Owncast project.{' '} Learn more . {!yp.instanceUrl && (


You must set your server URL above to enable the directory.
)}

); }