diff options
Diffstat (limited to 'packages/web-util/src/hooks/useNotifications.ts')
-rw-r--r-- | packages/web-util/src/hooks/useNotifications.ts | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/packages/web-util/src/hooks/useNotifications.ts b/packages/web-util/src/hooks/useNotifications.ts index 99f4f2699..81a1ae91e 100644 --- a/packages/web-util/src/hooks/useNotifications.ts +++ b/packages/web-util/src/hooks/useNotifications.ts @@ -1,6 +1,7 @@ import { AbsoluteTime, Duration, + OperationAlternative, OperationFail, OperationOk, OperationResult, @@ -9,7 +10,7 @@ import { TranslatedString, } from "@gnu-taler/taler-util"; import { useEffect, useState } from "preact/hooks"; -import { ButtonHandler } from "../components/Button.js"; +import { ButtonHandler, OnOperationFailReturnType, OnOperationSuccesReturnType } from "../components/Button.js"; import { InternationalizationAPI, memoryMap, @@ -207,14 +208,8 @@ export function useLocalNotification(): [ type HandlerMaker = <T extends OperationResult<A, B>, A, B>( onClick: () => Promise<T | undefined>, - onOperationSuccess: - | ((result: T extends OperationOk<any> ? T : never) => void) - | (( - result: T extends OperationOk<any> ? T : never, - ) => TranslatedString | undefined), - onOperationFail: ( - d: T extends OperationFail<any> ? T : never, - ) => TranslatedString, + onOperationSuccess: OnOperationSuccesReturnType<T>, + onOperationFail: OnOperationFailReturnType<T>, onOperationComplete?: () => void, ) => ButtonHandler<T, A, B>; @@ -235,14 +230,8 @@ export function useLocalNotificationHandler(): [ function makeHandler<T extends OperationResult<A, B>, A, B>( onClick: () => Promise<T | undefined>, - onOperationSuccess: - | ((result: T extends OperationOk<any> ? T : never) => void) - | (( - result: T extends OperationOk<any> ? T : never, - ) => TranslatedString | undefined), - onOperationFail: ( - d: T extends OperationFail<any> ? T : never, - ) => TranslatedString, + onOperationSuccess:OnOperationSuccesReturnType<T>, + onOperationFail: OnOperationFailReturnType<T>, onOperationComplete?: () => void, ): ButtonHandler<T, A, B> { return { |