'use client'; import { useCallback, useState } from 'react'; import { DataCallback } from '@/backend/apiTransport'; import { postGenerateLexeme, postInflectText, postParseText } from '@/backend/cctext'; import { ErrorData } from '@/components/info/InfoError'; import { ILexemeData, ITextRequest, ITextResult, IWordFormPlain } from '@/models/language'; function useConceptText() { const [processing, setProcessing] = useState(false); const [error, setError] = useState(undefined); const inflect = useCallback((data: IWordFormPlain, onSuccess: DataCallback) => { setError(undefined); postInflectText({ data: data, showError: true, setLoading: setProcessing, onError: setError, onSuccess: data => { if (onSuccess) onSuccess(data); } }); }, []); const parse = useCallback((data: ITextRequest, onSuccess: DataCallback) => { setError(undefined); postParseText({ data: data, showError: true, setLoading: setProcessing, onError: setError, onSuccess: data => { if (onSuccess) onSuccess(data); } }); }, []); const generateLexeme = useCallback((data: ITextRequest, onSuccess: DataCallback) => { setError(undefined); postGenerateLexeme({ data: data, showError: true, setLoading: setProcessing, onError: setError, onSuccess: data => { if (onSuccess) onSuccess(data); } }); }, []); return { inflect, parse, generateLexeme, error, setError, processing }; } export default useConceptText;