mirror of
https://github.com/invoke-ai/InvokeAI.git
synced 2026-02-15 03:05:10 -05:00
32 lines
1.0 KiB
TypeScript
32 lines
1.0 KiB
TypeScript
import { useStore } from '@nanostores/react';
|
|
import { useEffect, useState } from 'react';
|
|
import { useTranslation } from 'react-i18next';
|
|
import { $invocationProgressMessage } from 'services/events/stores';
|
|
|
|
export const useDeferredModelLoadingInvocationProgressMessage = () => {
|
|
const { t } = useTranslation();
|
|
const invocationProgressMessage = useStore($invocationProgressMessage);
|
|
const [delayedMessage, setDelayedMessage] = useState<string | null>(null);
|
|
|
|
useEffect(() => {
|
|
if (!invocationProgressMessage) {
|
|
setDelayedMessage(null);
|
|
return;
|
|
}
|
|
|
|
if (invocationProgressMessage && !invocationProgressMessage.startsWith('Loading model')) {
|
|
setDelayedMessage(null);
|
|
return;
|
|
}
|
|
|
|
// Set a timeout to update delayedMessage after 5 seconds
|
|
const timer = setTimeout(() => {
|
|
setDelayedMessage(`${t('common.loadingModel')}...`);
|
|
}, 5000);
|
|
|
|
return () => clearTimeout(timer); // Cleanup on effect re-run
|
|
}, [invocationProgressMessage, t]);
|
|
|
|
return delayedMessage;
|
|
};
|