/* Copyright (C) 2025 QuantumNous This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . For commercial licensing, please contact support@quantumnous.com */ import React, { useEffect, useState, useRef } from 'react'; import { Button, Form, Spin, } from '@douyinfe/semi-ui'; import { API, removeTrailingSlash, showError, showSuccess, } from '../../../helpers'; import { useTranslation } from 'react-i18next'; export default function SettingsGeneralPayment(props) { const { t } = useTranslation(); const [loading, setLoading] = useState(false); const [inputs, setInputs] = useState({ ServerAddress: '', }); const formApiRef = useRef(null); useEffect(() => { if (props.options && formApiRef.current) { const currentInputs = { ServerAddress: props.options.ServerAddress || '' }; setInputs(currentInputs); formApiRef.current.setValues(currentInputs); } }, [props.options]); const handleFormChange = (values) => { setInputs(values); }; const submitServerAddress = async () => { setLoading(true); try { let ServerAddress = removeTrailingSlash(inputs.ServerAddress); const res = await API.put('/api/option/', { key: 'ServerAddress', value: ServerAddress, }); if (res.data.success) { showSuccess(t('更新成功')); props.refresh && props.refresh(); } else { showError(res.data.message); } } catch (error) { showError(t('更新失败')); } setLoading(false); }; return (
(formApiRef.current = api)} >
); }