import { useState } from 'react';
import { AIAttachmentWidget } from './AIMessageWidget';
// eslint-disable-next-line @typescript-eslint/no-unused-vars
import VoiceIcon from '../../../components/UI/svgs/Icons/Actions/Voice';
export default function useDefaultVoiceInputWidget(): AIAttachmentWidget {
const renderWidget = (): JSX.Element => {
return (
v2t
);
};
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const [textFromWidgetToInput, setTextFromWidgetToInput] = useState('');
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const textToWidget = (value: string): void => {
if (value && value.length > 0) {
setTextFromWidgetToInput(value.toUpperCase());
}
};
const [audioFromWidgetToInput, setAudioFromWidgetToInput] = useState();
async function sendFile(file: File): Promise {
if (file) {
// Создание объекта FormData и добавление файла
const formData = new FormData();
formData.append('file', file, file.name);
// Отправка запроса POST с телом formData
const response = await fetch(
'https://func270519800.azurewebsites.net/api/VoiceToText',
{
method: 'POST',
body: formData,
},
);
// Возвращение данных из ответа
console.log('sendFile: response: ', response);
const data = await response.text();
console.log(
'sendFile have response: ',
JSON.stringify(data.replaceAll('\n\n', '')),
);
return data.replaceAll('\n\n', '') || '';
}
return '';
}
const fileToWidget = (file: File): void => {
setAudioFromWidgetToInput(file);
const fileInfo = `${file.name}, ${file.type}, ${file.size} Mb`;
console.log(fileInfo);
if (file) {
// Отправка файла и получение результата
// eslint-disable-next-line promise/catch-or-return,promise/always-return
sendFile(file).then((result) => {
// Обработка результата
console.log(result);
setTextFromWidgetToInput(result);
});
}
};
return {
fileToContent: audioFromWidgetToInput,
fileToWidget,
renderWidget,
};
}