import React, { useState, useEffect } from 'react'; import { Button, InputNumber, Form, Radio, message, Input } from 'antd'; import * as DarkReader from '@umijs/ssr-darkreader'; import config from '@/utils/config'; import { request } from '@/utils/http'; import CheckUpdate from './checkUpdate'; import { SharedContext } from '@/layouts'; import { saveAs } from 'file-saver'; import './index.less'; const optionsWithDisabled = [ { label: '亮色', value: 'light' }, { label: '暗色', value: 'dark' }, { label: '跟随系统', value: 'auto' }, ]; const Other = ({ systemInfo, socketMessage, reloadTheme, }: Pick) => { const defaultTheme = localStorage.getItem('qinglong_dark_theme') || 'auto'; const [systemConfig, setSystemConfig] = useState<{ logRemoveFrequency?: number | null; cronConcurrency?: number | null; }>(); const [form] = Form.useForm(); const { enable: enableDarkMode, disable: disableDarkMode, exportGeneratedCSS: collectCSS, setFetchMethod, auto: followSystemColorScheme, } = DarkReader || {}; const themeChange = (e: any) => { const _theme = e.target.value; localStorage.setItem('qinglong_dark_theme', e.target.value); setFetchMethod(fetch); if (_theme === 'dark') { enableDarkMode({}); } else if (_theme === 'light') { disableDarkMode(); } else { followSystemColorScheme({}); } reloadTheme(); }; const getSystemConfig = () => { request .get(`${config.apiPrefix}system/config`) .then(({ code, data }) => { if (code === 200 && data.info) { setSystemConfig(data.info); } }) .catch((error: any) => { console.log(error); }); }; const updateSystemConfig = () => { request .put(`${config.apiPrefix}system/config`, { data: { ...systemConfig }, }) .then(({ code, data }) => { if (code === 200) { message.success('更新成功'); } }) .catch((error: any) => { console.log(error); }); }; const exportData = () => { request .put(`${config.apiPrefix}system/data/export`, { responseType: 'blob' }) .then((res) => { saveAs(res, 'data.tgz'); }) .catch((error: any) => { console.log(error); }); }; useEffect(() => { getSystemConfig(); }, []); return (
{ setSystemConfig({ ...systemConfig, logRemoveFrequency: value }); }} /> { setSystemConfig({ ...systemConfig, cronConcurrency: value }); }} />
); }; export default Other;