summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension/src/context
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2023-01-13 16:09:33 -0300
committerSebastian <sebasjm@gmail.com>2023-01-13 16:09:33 -0300
commit0b2bf13deff518c3ebbdaf4a72d2c162790906b7 (patch)
treee8e778cc7cc90daf2a54f32f8c6be5912f814621 /packages/taler-wallet-webextension/src/context
parentbc67ff0c7f298b0657164037ba01e1bc3488202c (diff)
downloadwallet-core-0b2bf13deff518c3ebbdaf4a72d2c162790906b7.tar.gz
wallet-core-0b2bf13deff518c3ebbdaf4a72d2c162790906b7.tar.bz2
wallet-core-0b2bf13deff518c3ebbdaf4a72d2c162790906b7.zip
using extendedStatus
Diffstat (limited to 'packages/taler-wallet-webextension/src/context')
-rw-r--r--packages/taler-wallet-webextension/src/context/alert.ts22
1 files changed, 21 insertions, 1 deletions
diff --git a/packages/taler-wallet-webextension/src/context/alert.ts b/packages/taler-wallet-webextension/src/context/alert.ts
index e67d94671..8527f30f6 100644
--- a/packages/taler-wallet-webextension/src/context/alert.ts
+++ b/packages/taler-wallet-webextension/src/context/alert.ts
@@ -48,7 +48,14 @@ type Type = {
alerts: Alert[];
pushAlert: (n: Alert) => void;
removeAlert: (n: Alert) => void;
+ /**
+ *
+ * @param h
+ * @returns
+ * @deprecated use safely
+ */
pushAlertOnError: <T>(h: (p: T) => Promise<void>) => SafeHandler<T>;
+ safely: <T>(h: (p: T) => Promise<void>, error: TranslatedString) => SafeHandler<T>;
};
const initial: Type = {
@@ -56,6 +63,9 @@ const initial: Type = {
pushAlertOnError: () => {
throw Error("alert context not initialized");
},
+ safely: () => {
+ throw Error("alert context not initialized");
+ },
pushAlert: () => {
null;
},
@@ -100,8 +110,18 @@ export const AlertProvider = ({ children }: Props): VNode => {
});
}
+ function safely<T>(
+ handler: (p: T) => Promise<void>,
+ message: TranslatedString
+ ): SafeHandler<T> {
+ return withSafe(handler, (e) => {
+ const a = alertFromError(message, e);
+ pushAlert(a);
+ });
+ }
+
return h(Context.Provider, {
- value: { alerts, pushAlert, removeAlert, pushAlertOnError },
+ value: { alerts, pushAlert, removeAlert, pushAlertOnError, safely },
children,
});
};