import React, { useEffect, useState } from 'react'; import { Button, Divider, Form, Grid, Header, Modal } from 'semantic-ui-react'; import { API, showError, showSuccess } from '../helpers'; import { marked } from 'marked'; const OtherSetting = () => { let [inputs, setInputs] = useState({ Footer: '', Notice: '', About: '', }); let originInputs = {}; let [loading, setLoading] = useState(false); const [showUpdateModal, setShowUpdateModal] = useState(false); const [updateData, setUpdateData] = useState({ tag_name: '', content: '', }); const getOptions = async () => { const res = await API.get('/api/option'); const { success, message, data } = res.data; if (success) { let newInputs = {}; data.forEach((item) => { if (item.key in inputs) { newInputs[item.key] = item.value; } }); setInputs(newInputs); originInputs = newInputs; } else { showError(message); } }; useEffect(() => { getOptions().then(); }, []); const updateOption = async (key, value) => { setLoading(true); const res = await API.put('/api/option', { key, value, }); const { success, message } = res.data; if (success) { setInputs((inputs) => ({ ...inputs, [key]: value })); } else { showError(message); } setLoading(false); }; const handleInputChange = async (e, { name, value }) => { setInputs((inputs) => ({ ...inputs, [name]: value })); }; const submitNotice = async () => { await updateOption('Notice', inputs.Notice); }; const submitFooter = async () => { await updateOption('Footer', inputs.Footer); }; const submitAbout = async () => { await updateOption('About', inputs.About); }; const openGitHubRelease = () => { window.location = 'https://github.com/songquanpeng/gin-template/releases/latest'; }; const checkUpdate = async () => { const res = await API.get( 'https://api.github.com/repos/songquanpeng/gin-template/releases/latest' ); const { tag_name, body } = res.data; if (tag_name === process.env.REACT_APP_VERSION) { showSuccess(`已是最新版本:${tag_name}`); } else { setUpdateData({ tag_name: tag_name, content: marked.parse(body), }); setShowUpdateModal(true); } }; return (
通用设置
检查更新 保存公告
个性化设置
保存关于 设置页脚
setShowUpdateModal(false)} onOpen={() => setShowUpdateModal(true)} open={showUpdateModal} > 新版本:{updateData.tag_name}