import { useEffect, useRef, useState } from "react"; import { Button, Card, Checkbox, Drawer, Empty, Input, List, Message, Modal, Space } from "@arco-design/web-react"; import Title from "@arco-design/web-react/es/Typography/title"; import { formatUnixTime } from "@App/pkg/utils/utils"; import FileSystemParams from "@App/pages/components/FileSystemParams"; import { IconQuestionCircleFill } from "@arco-design/web-react/icon"; import { RefInputType } from "@arco-design/web-react/es/Input/interface"; import { useTranslation } from "react-i18next"; import FileSystemFactory, { FileSystemType } from "@Packages/filesystem/factory"; import { File, FileReader } from "@Packages/filesystem/filesystem"; import { message, systemConfig } from "@App/pages/store/global"; import { SynchronizeClient } from "@App/app/service/service_worker/client"; import { set } from "node_modules/yaml/dist/schema/yaml-1.1/set"; const synchronizeClient = new SynchronizeClient(message); function Tools() { const [loading, setLoading] = useState<{ [key: string]: boolean }>({}); const fileRef = useRef(null); const [fileSystemType, setFilesystemType] = useState("webdav"); const [fileSystemParams, setFilesystemParam] = useState<{ [key: string]: any; }>({}); const [vscodeUrl, setVscodeUrl] = useState(""); const [vscodeReconnect, setVscodeReconnect] = useState(false); const [backupFileList, setBackupFileList] = useState([]); const vscodeRef = useRef(null); const { t } = useTranslation(); useEffect(() => { // 获取配置 const loadConfig = async () => { const [backup, vscodeUrl] = await Promise.all([ systemConfig.getBackup(), systemConfig.getVscodeUrl(), systemConfig.getVscodeReconnect(), ]); setFilesystemType(backup.filesystem); setFilesystemParam(backup.params[backup.filesystem] || {}); setVscodeUrl(vscodeUrl); setVscodeReconnect(systemConfig.vscodeReconnect); }; loadConfig(); }, []); return ( {t("local")} {t("cloud")} { setFilesystemType(type); }} onChangeFileSystemParams={(params) => { setFilesystemParam(params); }} actionButton={[ , , ]} fileSystemType={fileSystemType} fileSystemParams={fileSystemParams} /> {t("backup_list")} } visible={backupFileList.length !== 0} onOk={() => { setBackupFileList([]); }} onCancel={() => { setBackupFileList([]); }} > ( )} /> {t("backup_strategy")} {t("development_debugging")} ); } export default Tools;