From 1dc8be373c6f8e35b314175d491e22c0223a24a5 Mon Sep 17 00:00:00 2001 From: Fred KISSIE Date: Tue, 3 Mar 2026 18:54:35 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A7=20wip:=20add=20password?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EditPolicyAuthMethodsSectionForm.tsx | 49 +++++++++++++++++-- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/src/components/resource-policy/EditPolicyAuthMethodsSectionForm.tsx b/src/components/resource-policy/EditPolicyAuthMethodsSectionForm.tsx index 25db214e7..99d01930a 100644 --- a/src/components/resource-policy/EditPolicyAuthMethodsSectionForm.tsx +++ b/src/components/resource-policy/EditPolicyAuthMethodsSectionForm.tsx @@ -16,7 +16,7 @@ import { useTranslations } from "next-intl"; import z from "zod"; -import { createApiClient } from "@app/lib/api"; +import { createApiClient, formatAxiosError } from "@app/lib/api"; import { useRouter } from "next/navigation"; import { createPolicySchema } from "."; @@ -53,6 +53,8 @@ import { cn } from "@app/lib/cn"; import { useResourcePolicyContext } from "@app/providers/ResourcePolicyProvider"; import { useActionState, useState } from "react"; import { useForm } from "react-hook-form"; +import { toast } from "@app/hooks/useToast"; +import type { AxiosResponse } from "axios"; // ─── PolicyAuthMethodsSection ───────────────────────────────────────────────── @@ -87,7 +89,6 @@ export function EditPolicyAuthMethodsSectionForm() { }); const t = useTranslations(); - const [isExpanded, setIsExpanded] = useState(false); const [isSetPasswordOpen, setIsSetPasswordOpen] = useState(false); const [isSetPincodeOpen, setIsSetPincodeOpen] = useState(false); const [isSetHeaderAuthOpen, setIsSetHeaderAuthOpen] = useState(false); @@ -98,6 +99,10 @@ export function EditPolicyAuthMethodsSectionForm() { form.watch("headerAuth") ?? policy.headerAuth ); + const [isExpanded, setIsExpanded] = useState( + hasPassword || hasPincode || hasHeaderAuth + ); + const passwordForm = useForm({ resolver: zodResolver(setPasswordSchema), defaultValues: { password: "" } @@ -121,7 +126,43 @@ export function EditPolicyAuthMethodsSectionForm() { if (!isValid) return; const payload = form.getValues(); - console.log({ payload }); + console.log({ payload, policy }); + + return; + + try { + const res = await api + .put>( + `/resource-policy/${policy.resourcePolicyId}/password`, + { + password: payload.password?.password ?? null + } + ) + .catch((e) => { + toast({ + variant: "destructive", + title: t("policyErrorUpdate"), + description: formatAxiosError( + e, + t("policyErrorUpdateDescription") + ) + }); + }); + + if (res && res.status === 200) { + toast({ + title: t("success"), + description: t("policyUpdatedSuccess") + }); + router.refresh(); + } + } catch (e) { + toast({ + variant: "destructive", + title: t("policyErrorUpdate"), + description: t("policyErrorUpdateMessageDescription") + }); + } } if (!isExpanded) { @@ -407,7 +448,7 @@ export function EditPolicyAuthMethodsSectionForm() {
- {}}> +