aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension/src/wallet
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2022-04-27 14:33:52 -0300
committerSebastian <sebasjm@gmail.com>2022-04-27 14:33:52 -0300
commit451dd746daeb57cfe0a601d1bf1f2b5506a5fc3c (patch)
tree975b98de7c3d28f62e05396a01129c69efbeb66b /packages/taler-wallet-webextension/src/wallet
parent0b8e0a0806947472181b13a3c0dda9947a326b28 (diff)
downloadwallet-core-451dd746daeb57cfe0a601d1bf1f2b5506a5fc3c.tar.xz
toggle permission
Diffstat (limited to 'packages/taler-wallet-webextension/src/wallet')
-rw-r--r--packages/taler-wallet-webextension/src/wallet/Settings.stories.tsx7
-rw-r--r--packages/taler-wallet-webextension/src/wallet/Settings.tsx23
-rw-r--r--packages/taler-wallet-webextension/src/wallet/Welcome.stories.tsx6
-rw-r--r--packages/taler-wallet-webextension/src/wallet/Welcome.tsx16
4 files changed, 28 insertions, 24 deletions
diff --git a/packages/taler-wallet-webextension/src/wallet/Settings.stories.tsx b/packages/taler-wallet-webextension/src/wallet/Settings.stories.tsx
index f50778945..936ba5119 100644
--- a/packages/taler-wallet-webextension/src/wallet/Settings.stories.tsx
+++ b/packages/taler-wallet-webextension/src/wallet/Settings.stories.tsx
@@ -32,18 +32,19 @@ export default {
export const AllOff = createExample(TestedComponent, {
deviceName: "this-is-the-device-name",
+ permissionToggle: { value: false, button: {} },
setDeviceName: () => Promise.resolve(),
});
export const OneChecked = createExample(TestedComponent, {
deviceName: "this-is-the-device-name",
- permissionsEnabled: true,
+ permissionToggle: { value: false, button: {} },
setDeviceName: () => Promise.resolve(),
});
export const WithOneExchange = createExample(TestedComponent, {
deviceName: "this-is-the-device-name",
- permissionsEnabled: true,
+ permissionToggle: { value: false, button: {} },
setDeviceName: () => Promise.resolve(),
knownExchanges: [
{
@@ -62,7 +63,7 @@ export const WithOneExchange = createExample(TestedComponent, {
export const WithExchangeInDifferentState = createExample(TestedComponent, {
deviceName: "this-is-the-device-name",
- permissionsEnabled: true,
+ permissionToggle: { value: false, button: {} },
setDeviceName: () => Promise.resolve(),
knownExchanges: [
{
diff --git a/packages/taler-wallet-webextension/src/wallet/Settings.tsx b/packages/taler-wallet-webextension/src/wallet/Settings.tsx
index 5a9c776fd..83ce76ade 100644
--- a/packages/taler-wallet-webextension/src/wallet/Settings.tsx
+++ b/packages/taler-wallet-webextension/src/wallet/Settings.tsx
@@ -17,6 +17,7 @@
import { ExchangeListItem } from "@gnu-taler/taler-util";
import { Fragment, h, VNode } from "preact";
import { Checkbox } from "../components/Checkbox.js";
+import { ErrorTalerOperation } from "../components/ErrorTalerOperation.js";
import { JustInDevMode } from "../components/JustInDevMode.js";
import { SelectList } from "../components/SelectList.js";
import {
@@ -32,12 +33,13 @@ import { useTranslationContext } from "../context/translation.js";
import { useAsyncAsHook } from "../hooks/useAsyncAsHook.js";
import { useBackupDeviceName } from "../hooks/useBackupDeviceName.js";
import { useExtendedPermissions } from "../hooks/useExtendedPermissions.js";
+import { ToggleHandler } from "../mui/handlers.js";
import { Pages } from "../NavigationBar.js";
import { buildTermsOfServiceStatus } from "../utils/index.js";
import * as wxApi from "../wxApi.js";
export function SettingsPage(): VNode {
- const [permissionsEnabled, togglePermissions] = useExtendedPermissions();
+ const permissionToggle = useExtendedPermissions();
const { devMode, toggleDevMode } = useDevContext();
const { name, update } = useBackupDeviceName();
@@ -52,8 +54,7 @@ export function SettingsPage(): VNode {
}
deviceName={name}
setDeviceName={update}
- permissionsEnabled={permissionsEnabled}
- togglePermissions={togglePermissions}
+ permissionToggle={permissionToggle}
developerMode={devMode}
toggleDeveloperMode={toggleDevMode}
/>
@@ -63,8 +64,7 @@ export function SettingsPage(): VNode {
export interface ViewProps {
deviceName: string;
setDeviceName: (s: string) => Promise<void>;
- permissionsEnabled: boolean;
- togglePermissions: () => void;
+ permissionToggle: ToggleHandler;
developerMode: boolean;
toggleDeveloperMode: () => void;
knownExchanges: Array<ExchangeListItem>;
@@ -72,8 +72,7 @@ export interface ViewProps {
export function SettingsView({
knownExchanges,
- permissionsEnabled,
- togglePermissions,
+ permissionToggle,
developerMode,
toggleDeveloperMode,
}: ViewProps): VNode {
@@ -82,6 +81,12 @@ export function SettingsView({
return (
<Fragment>
<section>
+ {permissionToggle.button.error && (
+ <ErrorTalerOperation
+ title={<i18n.Translate>Could not toggle auto-open</i18n.Translate>}
+ error={permissionToggle.button.error.errorDetail}
+ />
+ )}
<SubTitle>
<i18n.Translate>Navigator</i18n.Translate>
</SubTitle>
@@ -98,8 +103,8 @@ export function SettingsView({
requires more permissions from your browser.
</i18n.Translate>
}
- enabled={permissionsEnabled}
- onToggle={togglePermissions}
+ enabled={permissionToggle.value!}
+ onToggle={permissionToggle.button.onClick!}
/>
<SubTitle>
diff --git a/packages/taler-wallet-webextension/src/wallet/Welcome.stories.tsx b/packages/taler-wallet-webextension/src/wallet/Welcome.stories.tsx
index 424eb9d7f..10ff78b28 100644
--- a/packages/taler-wallet-webextension/src/wallet/Welcome.stories.tsx
+++ b/packages/taler-wallet-webextension/src/wallet/Welcome.stories.tsx
@@ -28,7 +28,7 @@ export default {
};
export const Normal = createExample(TestedComponent, {
- permissionsEnabled: true,
+ permissionToggle: { value: true, button: {} },
diagnostics: {
errors: [],
walletManifestVersion: "1.0",
@@ -40,9 +40,9 @@ export const Normal = createExample(TestedComponent, {
export const TimedoutDiagnostics = createExample(TestedComponent, {
timedOut: true,
- permissionsEnabled: false,
+ permissionToggle: { value: true, button: {} },
});
export const RunningDiagnostics = createExample(TestedComponent, {
- permissionsEnabled: false,
+ permissionToggle: { value: true, button: {} },
});
diff --git a/packages/taler-wallet-webextension/src/wallet/Welcome.tsx b/packages/taler-wallet-webextension/src/wallet/Welcome.tsx
index 58023a203..38bcf800d 100644
--- a/packages/taler-wallet-webextension/src/wallet/Welcome.tsx
+++ b/packages/taler-wallet-webextension/src/wallet/Welcome.tsx
@@ -27,15 +27,15 @@ import { SubTitle, Title } from "../components/styled/index.js";
import { useTranslationContext } from "../context/translation.js";
import { useDiagnostics } from "../hooks/useDiagnostics.js";
import { useExtendedPermissions } from "../hooks/useExtendedPermissions.js";
+import { ToggleHandler } from "../mui/handlers.js";
import { platform } from "../platform/api.js";
export function WelcomePage(): VNode {
- const [permissionsEnabled, togglePermissions] = useExtendedPermissions();
+ const permissionToggle = useExtendedPermissions();
const [diagnostics, timedOut] = useDiagnostics();
return (
<View
- permissionsEnabled={permissionsEnabled}
- togglePermissions={togglePermissions}
+ permissionToggle={permissionToggle}
diagnostics={diagnostics}
timedOut={timedOut}
/>
@@ -43,14 +43,12 @@ export function WelcomePage(): VNode {
}
export interface ViewProps {
- permissionsEnabled: boolean;
- togglePermissions: () => void;
+ permissionToggle: ToggleHandler;
diagnostics: WalletDiagnostics | undefined;
timedOut: boolean;
}
export function View({
- permissionsEnabled,
- togglePermissions,
+ permissionToggle,
diagnostics,
timedOut,
}: ViewProps): VNode {
@@ -105,8 +103,8 @@ export function View({
requires more permissions from your browser.)
</i18n.Translate>
}
- enabled={permissionsEnabled}
- onToggle={togglePermissions}
+ enabled={permissionToggle.value!}
+ onToggle={permissionToggle.button.onClick!}
/>
<SubTitle>
<i18n.Translate>Next Steps</i18n.Translate>