import React, { useState, useContext, useEffect } from 'react'; 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, } from './constants'; import { UpdateArgs } from '../../../types/config-section'; export default function EditInstanceDetails() { const [formDataValues, setFormDataValues] = useState(null); const serverStatusData = useContext(ServerStatusContext); const { serverConfig } = serverStatusData || {}; const { instanceDetails, yp } = serverConfig; 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, }); }; return (
); }