From 162e17cf3d5d968fbdb9edaa21565f076306409c Mon Sep 17 00:00:00 2001 From: Sebastian Date: Fri, 12 Nov 2021 13:26:05 -0300 Subject: fix #7062 --- .../src/pages/home/ReviewPoliciesScreen.tsx | 44 +++++++++++++++++++--- .../src/pages/home/SecretEditorScreen.tsx | 1 - 2 files changed, 39 insertions(+), 6 deletions(-) (limited to 'packages/anastasis-webui') diff --git a/packages/anastasis-webui/src/pages/home/ReviewPoliciesScreen.tsx b/packages/anastasis-webui/src/pages/home/ReviewPoliciesScreen.tsx index 3b3b441ed..0ed08e037 100644 --- a/packages/anastasis-webui/src/pages/home/ReviewPoliciesScreen.tsx +++ b/packages/anastasis-webui/src/pages/home/ReviewPoliciesScreen.tsx @@ -1,13 +1,16 @@ import { AuthenticationProviderStatusOk } from "anastasis-core"; import { h, VNode } from "preact"; import { useState } from "preact/hooks"; +import { AsyncButton } from "../../components/AsyncButton"; import { useAnastasisContext } from "../../context/anastasis"; import { authMethods, KnownAuthMethods } from "./authMethod"; +import { ConfirmModal } from "./ConfirmModal"; import { EditPoliciesScreen } from "./EditPoliciesScreen"; import { AnastasisClientFrame } from "./index"; export function ReviewPoliciesScreen(): VNode { const [editingPolicy, setEditingPolicy] = useState(); + const [confirmReset, setConfirmReset] = useState(false); const reducer = useAnastasisContext(); if (!reducer) { return
no reducer in context
; @@ -23,8 +26,8 @@ export function ReviewPoliciesScreen(): VNode { reducer.currentReducerState.authentication_methods ?? []; const policies = reducer.currentReducerState.policies ?? []; - const providers = reducer.currentReducerState.authentication_providers ?? {} - + const providers = reducer.currentReducerState.authentication_providers ?? {}; + if (editingPolicy !== undefined) { return ( ); } + async function resetPolicies(): Promise { + if (!reducer) return Promise.resolve(); + return reducer.runTransaction(async (tx) => { + await tx.transition("back", {}); + await tx.transition("next", {}); + setConfirmReset(false); + }); + } const errors = policies.length < 1 ? "Need more policies" : undefined; return ( @@ -60,9 +71,13 @@ export function ReviewPoliciesScreen(): VNode { methods.

)} -
+
+ setConfirmReset(true)}> + Reset policies +
); })} + {confirmReset && ( + setConfirmReset(false)} + description="Do you want to reset the policies to default state?" + label="Reset policies" + cancelLabel="Cancel" + onConfirm={resetPolicies} + > +

+ All policies will be recalculated based on the authentication + providers configured and any change that you did will be lost +

+
+ )} ); } diff --git a/packages/anastasis-webui/src/pages/home/SecretEditorScreen.tsx b/packages/anastasis-webui/src/pages/home/SecretEditorScreen.tsx index be8135ef5..3fe088c4f 100644 --- a/packages/anastasis-webui/src/pages/home/SecretEditorScreen.tsx +++ b/packages/anastasis-webui/src/pages/home/SecretEditorScreen.tsx @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/camelcase */ import { encodeCrock, stringToBytes } from "@gnu-taler/taler-util"; import { h, VNode } from "preact"; import { useState } from "preact/hooks"; -- cgit v1.2.3