summaryrefslogtreecommitdiff
path: root/packages/web-util/src/hooks/useNotifications.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/web-util/src/hooks/useNotifications.ts')
-rw-r--r--packages/web-util/src/hooks/useNotifications.ts23
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 {