🔄 refactor: improved RAG animations/messages (#2616)

* fix: warning slow process rag  message

* refactor: improved useProgress hook for Files
This commit is contained in:
Marco Beretta 2024-05-05 21:35:51 +02:00 committed by GitHub
parent b77bd19092
commit 2aec4a6250
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 52 additions and 11 deletions

View file

@ -5,9 +5,21 @@ import useLocalize from '~/hooks/useLocalize';
export const useDelayedUploadToast = () => {
const localize = useLocalize();
const { showToast } = useToastContext();
const [uploadTimers, setUploadTimers] = useState({});
const [uploadTimers, setUploadTimers] = useState<Record<string, NodeJS.Timeout>>({});
const determineDelay = (fileSize: number): number => {
const baseDelay = 5000;
const additionalDelay = Math.floor(fileSize / 1000000) * 2000;
return baseDelay + additionalDelay;
};
const startUploadTimer = (fileId: string, fileName: string, fileSize: number) => {
const delay = determineDelay(fileSize);
if (uploadTimers[fileId]) {
clearTimeout(uploadTimers[fileId]);
}
const startUploadTimer = (fileId: string, fileName: string) => {
const timer = setTimeout(() => {
const message = localize('com_ui_upload_delay', fileName);
showToast({
@ -15,7 +27,7 @@ export const useDelayedUploadToast = () => {
status: 'warning',
duration: 7000,
});
}, 3000); // 3 seconds delay
}, delay);
setUploadTimers((prev) => ({ ...prev, [fileId]: timer }));
};
@ -24,7 +36,7 @@ export const useDelayedUploadToast = () => {
if (uploadTimers[fileId]) {
clearTimeout(uploadTimers[fileId]);
setUploadTimers((prev) => {
const { [fileId]: _, ...rest } = prev as Record<string, unknown>;
const { [fileId]: _, ...rest } = prev;
return rest;
});
}

View file

@ -123,7 +123,7 @@ const useFileHandling = (params?: UseFileHandling) => {
return;
}
startUploadTimer(extendedFile.file_id, extendedFile.file?.name || 'File');
startUploadTimer(extendedFile.file_id, extendedFile.file?.name || 'File', extendedFile.size);
const formData = new FormData();
formData.append(