diff options
author | Sebastian <sebasjm@gmail.com> | 2022-09-12 14:28:53 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2022-09-12 14:28:53 -0300 |
commit | ad63d4c0e1ab249362e1f684ac9dbe5fae2ef34e (patch) | |
tree | dfc38c13a23e45f4916071c76e26049a57ebd63b /packages/taler-wallet-webextension/src/hooks/useExtendedPermissions.ts | |
parent | 27201416c7d234361507e6055ce7ed42c11c650e (diff) | |
download | wallet-core-ad63d4c0e1ab249362e1f684ac9dbe5fae2ef34e.tar.xz |
add clipboard perms
Diffstat (limited to 'packages/taler-wallet-webextension/src/hooks/useExtendedPermissions.ts')
-rw-r--r-- | packages/taler-wallet-webextension/src/hooks/useExtendedPermissions.ts | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/packages/taler-wallet-webextension/src/hooks/useExtendedPermissions.ts b/packages/taler-wallet-webextension/src/hooks/useExtendedPermissions.ts deleted file mode 100644 index 06ae84593..000000000 --- a/packages/taler-wallet-webextension/src/hooks/useExtendedPermissions.ts +++ /dev/null @@ -1,72 +0,0 @@ -/* - This file is part of GNU Taler - (C) 2022 Taler Systems S.A. - - GNU Taler is free software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the Free Software - Foundation; either version 3, or (at your option) any later version. - - GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with - GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> - */ - -import { useState, useEffect } from "preact/hooks"; -import * as wxApi from "../wxApi.js"; -import { platform } from "../platform/api.js"; -import { ToggleHandler } from "../mui/handlers.js"; -import { TalerError } from "@gnu-taler/taler-wallet-core"; - -export function useExtendedPermissions(): ToggleHandler { - const [enabled, setEnabled] = useState(false); - const [error, setError] = useState<TalerError | undefined>(); - const toggle = async (): Promise<void> => { - return handleExtendedPerm(enabled, setEnabled).catch((e) => { - setError(TalerError.fromException(e)); - }); - }; - - useEffect(() => { - async function getExtendedPermValue(): Promise<void> { - const res = await wxApi.containsHeaderListener(); - setEnabled(res.newValue); - } - getExtendedPermValue(); - }, []); - return { - value: enabled, - button: { - onClick: toggle, - error, - }, - }; -} - -async function handleExtendedPerm( - isEnabled: boolean, - onChange: (value: boolean) => void, -): Promise<void> { - if (!isEnabled) { - // We set permissions here, since apparently FF wants this to be done - // as the result of an input event ... - let granted: boolean; - try { - granted = await platform.getPermissionsApi().requestHostPermissions(); - } catch (lastError) { - onChange(false); - throw lastError; - } - const res = await wxApi.toggleHeaderListener(granted); - onChange(res.newValue); - } else { - try { - await wxApi.toggleHeaderListener(false).then((r) => onChange(r.newValue)); - } catch (e) { - console.log(e); - } - } - return; -} |