mirror of
https://github.com/invoke-ai/InvokeAI.git
synced 2026-04-23 03:00:31 -04:00
feat(ui): restore canvas busy spinner
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
import type { SpinnerProps } from '@invoke-ai/ui-library';
|
||||||
import { Spinner } from '@invoke-ai/ui-library';
|
import { Spinner } from '@invoke-ai/ui-library';
|
||||||
import { useStore } from '@nanostores/react';
|
import { useStore } from '@nanostores/react';
|
||||||
import { useCanvasManager } from 'features/controlLayers/contexts/CanvasManagerProviderGate';
|
import { useCanvasManager } from 'features/controlLayers/contexts/CanvasManagerProviderGate';
|
||||||
@@ -5,7 +6,7 @@ import { useAllEntityAdapters } from 'features/controlLayers/contexts/EntityAdap
|
|||||||
import { computed } from 'nanostores';
|
import { computed } from 'nanostores';
|
||||||
import { memo, useMemo } from 'react';
|
import { memo, useMemo } from 'react';
|
||||||
|
|
||||||
export const CanvasBusySpinner = memo(() => {
|
export const CanvasBusySpinner = memo((props: SpinnerProps) => {
|
||||||
const canvasManager = useCanvasManager();
|
const canvasManager = useCanvasManager();
|
||||||
const allEntityAdapters = useAllEntityAdapters();
|
const allEntityAdapters = useAllEntityAdapters();
|
||||||
const $isPendingRectCalculation = useMemo(
|
const $isPendingRectCalculation = useMemo(
|
||||||
@@ -21,7 +22,7 @@ export const CanvasBusySpinner = memo(() => {
|
|||||||
const isCompositing = useStore(canvasManager.compositor.$isBusy);
|
const isCompositing = useStore(canvasManager.compositor.$isBusy);
|
||||||
|
|
||||||
if (isRasterizing || isCompositing || isPendingRectCalculation) {
|
if (isRasterizing || isCompositing || isPendingRectCalculation) {
|
||||||
return <Spinner opacity={0.3} />;
|
return <Spinner opacity={0.3} {...props} />;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import { useAppSelector } from 'app/store/storeHooks';
|
|||||||
import { CanvasAlertsInvocationProgress } from 'features/controlLayers/components/CanvasAlerts/CanvasAlertsInvocationProgress';
|
import { CanvasAlertsInvocationProgress } from 'features/controlLayers/components/CanvasAlerts/CanvasAlertsInvocationProgress';
|
||||||
import { CanvasAlertsPreserveMask } from 'features/controlLayers/components/CanvasAlerts/CanvasAlertsPreserveMask';
|
import { CanvasAlertsPreserveMask } from 'features/controlLayers/components/CanvasAlerts/CanvasAlertsPreserveMask';
|
||||||
import { CanvasAlertsSelectedEntityStatus } from 'features/controlLayers/components/CanvasAlerts/CanvasAlertsSelectedEntityStatus';
|
import { CanvasAlertsSelectedEntityStatus } from 'features/controlLayers/components/CanvasAlerts/CanvasAlertsSelectedEntityStatus';
|
||||||
|
import { CanvasBusySpinner } from 'features/controlLayers/components/CanvasBusySpinner';
|
||||||
import { CanvasContextMenuGlobalMenuItems } from 'features/controlLayers/components/CanvasContextMenu/CanvasContextMenuGlobalMenuItems';
|
import { CanvasContextMenuGlobalMenuItems } from 'features/controlLayers/components/CanvasContextMenu/CanvasContextMenuGlobalMenuItems';
|
||||||
import { CanvasContextMenuSelectedEntityMenuItems } from 'features/controlLayers/components/CanvasContextMenu/CanvasContextMenuSelectedEntityMenuItems';
|
import { CanvasContextMenuSelectedEntityMenuItems } from 'features/controlLayers/components/CanvasContextMenu/CanvasContextMenuSelectedEntityMenuItems';
|
||||||
import { CanvasDropArea } from 'features/controlLayers/components/CanvasDropArea';
|
import { CanvasDropArea } from 'features/controlLayers/components/CanvasDropArea';
|
||||||
@@ -95,6 +96,7 @@ export const CanvasWorkspacePanel = memo(() => {
|
|||||||
<MenuContent />
|
<MenuContent />
|
||||||
</Menu>
|
</Menu>
|
||||||
</Flex>
|
</Flex>
|
||||||
|
<CanvasBusySpinner position="absolute" insetInlineEnd={2} bottom={2} />
|
||||||
</CanvasManagerProviderGate>
|
</CanvasManagerProviderGate>
|
||||||
</Flex>
|
</Flex>
|
||||||
)}
|
)}
|
||||||
|
|||||||
Reference in New Issue
Block a user