mirror of
https://github.com/invoke-ai/InvokeAI.git
synced 2026-04-23 03:00:31 -04:00
refactor(ui): navigation api
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
import { logger } from 'app/logging/logger';
|
||||
import type { AppDispatch } from 'app/store/store';
|
||||
import { Mutex } from 'async-mutex';
|
||||
import type { Deferred } from 'common/util/createDeferredPromise';
|
||||
import { createDeferredPromise } from 'common/util/createDeferredPromise';
|
||||
import { withResultAsync, WrappedError } from 'common/util/result';
|
||||
import { parseify } from 'common/util/serialize';
|
||||
import { getPrefixedId } from 'features/controlLayers/konva/util';
|
||||
@@ -15,27 +17,6 @@ import type { EnqueueBatchArg } from './types';
|
||||
|
||||
const log = logger('system');
|
||||
|
||||
type Deferred<T> = {
|
||||
promise: Promise<T>;
|
||||
resolve: (value: T) => void;
|
||||
reject: (error: Error) => void;
|
||||
};
|
||||
|
||||
/**
|
||||
* Create a promise and expose its resolve and reject callbacks.
|
||||
*/
|
||||
const createDeferredPromise = <T>(): Deferred<T> => {
|
||||
let resolve!: (value: T) => void;
|
||||
let reject!: (error: Error) => void;
|
||||
|
||||
const promise = new Promise<T>((res, rej) => {
|
||||
resolve = res;
|
||||
reject = rej;
|
||||
});
|
||||
|
||||
return { promise, resolve, reject };
|
||||
};
|
||||
|
||||
type QueueStatusEventHandler = {
|
||||
subscribe: (handler: (event: S['QueueItemStatusChangedEvent']) => void) => void;
|
||||
unsubscribe: (handler: (event: S['QueueItemStatusChangedEvent']) => void) => void;
|
||||
|
||||
Reference in New Issue
Block a user