import { useState, useEffect } from 'react'; import { BILI_CDN_SELECT_LIST, YOUTUBE_GRAPHICS_LIST } from "../../../constants/constant.js"; import { readYamlConfig, updateYamlConfig } from '../../utils/yamlHelper'; import Toast from "../toast.jsx"; export default function Youtube() { const [config, setConfig] = useState({ youtubeGraphicsOptions: 720, youtubeClipTime: 0, youtubeDuration: 480, youtubeCookiePath: '' }); const [loading, setLoading] = useState(false); // 读取配置 useEffect(() => { const loadConfig = async () => { const yamlConfig = await readYamlConfig(); if (yamlConfig) { setConfig({ youtubeGraphicsOptions: yamlConfig.youtubeGraphicsOptions || 720, youtubeClipTime: yamlConfig.youtubeClipTime || 0, youtubeDuration: yamlConfig.youtubeDuration || 480, youtubeCookiePath: yamlConfig.youtubeCookiePath || '' }); } }; loadConfig(); }, []); // 保存配置 const handleSave = async () => { setLoading(true); try { const success = await updateYamlConfig({ youtubeGraphicsOptions: config.youtubeGraphicsOptions, youtubeClipTime: config.youtubeClipTime, youtubeDuration: config.youtubeDuration, youtubeCookiePath: config.youtubeCookiePath }); if (success) { document.getElementById('youtube-toast-success').classList.remove('hidden'); setTimeout(() => { document.getElementById('youtube-toast-success').classList.add('hidden'); }, 3000); } } catch (error) { console.error('保存配置失败:', error); } finally { setLoading(false); } }; // 重置配置 const handleReset = async () => { const yamlConfig = await readYamlConfig(); if (yamlConfig) { setConfig({ youtubeGraphicsOptions: yamlConfig.youtubeGraphicsOptions || 720, youtubeClipTime: yamlConfig.youtubeClipTime || 0, youtubeDuration: yamlConfig.youtubeDuration || 480, youtubeCookiePath: yamlConfig.youtubeCookiePath || '' }); } }; return (