import React, { useState } from 'react';import { PenTool, Sparkles, Copy, Check, AlertCircle, Loader2, LayoutGrid, User, MessageSquareText, Image as ImageIcon } from 'lucide-react';const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));// 指數退避重試機制const fetchWithRetry = async (url, options, retries = 5) => {  const delays = [1000, 2000, 4000, 8000, 16000];  for (let i = 0; i < retries; i++) {    try {      const response = await fetch(url, options);      if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);      return await response.json();    } catch (error) {      if (i === retries - 1) throw error;      await delay(delays[i]);    }  }};export default function App() {  const [theme, setTheme] = useState('');  const [characters, setCharacters] = useState('');  const [style, setStyle] = useState('搞笑喜劇');  const [loading, setLoading] = useState(false);  const [script, setScript] = useState(null);  const [error, setError] = useState('');  const [copied, setCopied] = useState(false);  const STYLES = [    '搞笑喜劇', '溫馨日常', '熱血戰鬥', '恐怖驚悚',     '校園青春', '職場社畜', '科幻奇幻', '黑色幽默'  ];  const handleGenerate = async (e) => {    e.preventDefault();    if (!theme.trim()) {