Skip to content

Commit 9780d65

Browse files
committed
feat: support return types
1 parent e6d8431 commit 9780d65

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

src/index.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -212,10 +212,10 @@ type NiceModalArgs<T> = T extends keyof JSX.IntrinsicElements | React.JSXElement
212212
? Partial<Omit<React.ComponentProps<T>, 'id'>>
213213
: Record<string, unknown>;
214214

215-
export function show<T extends React.FC<any>>(modal: T, args?: NiceModalArgs<T>): Promise<unknown>;
216-
export function show<T extends string>(modal: T, args?: Record<string, unknown>): Promise<unknown>;
215+
export function show<T extends any>(modal: React.FC<any>, args?: NiceModalArgs<React.FC<any>>): Promise<T>;
216+
export function show<T extends any>(modal: string, args?: Record<string, unknown>): Promise<T>;
217217
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
218-
export function show(modal: any, args?: any): Promise<unknown> {
218+
export function show(modal: React.FC<any> | string, args?: NiceModalArgs<React.FC<any>> | Record<string, unknown>) {
219219
const modalId = getModalId(modal);
220220
if (typeof modal !== 'string' && !MODAL_REGISTRY[modalId]) {
221221
register(modalId, modal as React.FC);
@@ -240,7 +240,9 @@ export function show(modal: any, args?: any): Promise<unknown> {
240240
return modalCallbacks[modalId].promise;
241241
}
242242

243-
export const hide = (modal: string | React.FC<any>): Promise<unknown> => {
243+
export function hide<T>(modal: string | React.FC<any>): Promise<T>;
244+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
245+
export function hide(modal: string | React.FC<any>) {
244246
const modalId = getModalId(modal);
245247
dispatch(hideModal(modalId));
246248
// Should also delete the callback for modal.resolve #35
@@ -261,7 +263,7 @@ export const hide = (modal: string | React.FC<any>): Promise<unknown> => {
261263
};
262264
}
263265
return hideModalCallbacks[modalId].promise;
264-
};
266+
}
265267

266268
export const remove = (modalId: string): void => {
267269
dispatch(removeModal(modalId));

0 commit comments

Comments
 (0)