Spaces:
Sleeping
Sleeping
| import { useEffect, useRef, useState } from 'react' | |
| export function useApiTesterState({ t }) { | |
| const [model, setModel] = useState('deepseek-v4-flash') | |
| const defaultMessage = t('apiTester.defaultMessage') | |
| const [message, setMessage] = useState(defaultMessage) | |
| const [apiKey, setApiKey] = useState('') | |
| const [selectedAccount, setSelectedAccount] = useState('') | |
| const [response, setResponse] = useState(null) | |
| const [loading, setLoading] = useState(false) | |
| const [streamingContent, setStreamingContent] = useState('') | |
| const [streamingThinking, setStreamingThinking] = useState('') | |
| const [isStreaming, setIsStreaming] = useState(false) | |
| const [streamingMode, setStreamingMode] = useState(true) | |
| const [attachedFiles, setAttachedFiles] = useState([]) | |
| const [configExpanded, setConfigExpanded] = useState(false) | |
| const abortControllerRef = useRef(null) | |
| const defaultMessageRef = useRef(defaultMessage) | |
| useEffect(() => { | |
| setMessage((prev) => (prev === defaultMessageRef.current ? defaultMessage : prev)) | |
| defaultMessageRef.current = defaultMessage | |
| }, [defaultMessage]) | |
| return { | |
| model, | |
| setModel, | |
| message, | |
| setMessage, | |
| attachedFiles, | |
| setAttachedFiles, | |
| apiKey, | |
| setApiKey, | |
| selectedAccount, | |
| setSelectedAccount, | |
| response, | |
| setResponse, | |
| loading, | |
| setLoading, | |
| streamingContent, | |
| setStreamingContent, | |
| streamingThinking, | |
| setStreamingThinking, | |
| isStreaming, | |
| setIsStreaming, | |
| streamingMode, | |
| setStreamingMode, | |
| configExpanded, | |
| setConfigExpanded, | |
| abortControllerRef, | |
| } | |
| } | |