X7ROOT File Manager
Current Path:
/home/iptvzxij/public_html/wp-content/plugins/extendify/src/Draft/hooks
home
/
iptvzxij
/
public_html
/
wp-content
/
plugins
/
extendify
/
src
/
Draft
/
hooks
/
📁
..
📄
useCompletion.js
(1.37 KB)
📄
useContentHighlight.js
(705 B)
📄
useRouter.js
(2.88 KB)
📄
useSelectedText.js
(991 B)
📄
useUnsplashImages.js
(650 B)
Editing: useCompletion.js
import { useEffect, useState } from '@wordpress/element'; import { completion } from '@draft/api/Data'; export const useCompletion = ( prompt, promptType, systemMessageKey, details, ) => { const [result, setResult] = useState(''); const [error, setError] = useState(null); const [loading, setLoading] = useState(false); useEffect(() => { let canceled = false; let reader; const decoder = new TextDecoder(); if (!prompt) { setLoading(false); setResult(''); canceled = true; return; } const fetchData = async () => { setResult(''); setError(false); setLoading(true); const response = await completion( prompt, promptType, systemMessageKey, details, ); reader = response.body.getReader(); let done = false; while (!done) { const { value, done: readerDone } = await reader.read(); done = readerDone; if (value && !canceled) { const decodedValue = decoder.decode(value); setResult((prevResult) => prevResult + decodedValue); } } }; fetchData() .finally(() => { if (!canceled) { setLoading(false); } }) .catch((error) => { if (!canceled) { setError(error); } }); return () => { canceled = true; if (reader) { reader.cancel(); } }; }, [prompt, systemMessageKey, promptType, details]); return { completion: result, error, loading }; };
Upload File
Create Folder