fix resource context updating problem

This commit is contained in:
miloschwartz
2026-06-09 14:49:57 -07:00
parent cdb43d9658
commit 20a66bba6f
3 changed files with 41 additions and 4 deletions

View File

@@ -32,7 +32,10 @@ import { useEnvContext } from "@app/hooks/useEnvContext";
import { toast } from "@app/hooks/useToast";
import { createApiClient, formatAxiosError } from "@app/lib/api";
import { finalizeSubdomainSanitize } from "@app/lib/subdomain-utils";
import { UpdateResourceResponse } from "@server/routers/resource";
import {
GetResourceAuthInfoResponse,
UpdateResourceResponse
} from "@server/routers/resource";
import { AxiosResponse } from "axios";
import { AlertCircle } from "lucide-react";
import { useTranslations } from "next-intl";
@@ -441,7 +444,7 @@ function MaintenanceSectionForm({
export default function GeneralForm() {
const params = useParams();
const { org } = useOrgContext();
const { resource, updateResource } = useResourceContext();
const { resource, updateResource, updateAuthInfo } = useResourceContext();
const router = useRouter();
const t = useTranslations();
@@ -576,6 +579,18 @@ export default function GeneralForm() {
})
});
if (resourcePolicyId !== undefined) {
const authRes = await api
.get<AxiosResponse<GetResourceAuthInfoResponse>>(
`/resource/${resource.resourceGuid}/auth`
)
.catch(() => null);
if (authRes?.status === 200) {
updateAuthInfo(authRes.data.data);
}
}
toast({
title: t("resourceUpdated"),
description: t("resourceUpdatedDescription")

View File

@@ -25,6 +25,7 @@ import { useEnvContext } from "@app/hooks/useEnvContext";
import { createApiClient, formatAxiosError } from "@app/lib/api";
import { getUserDisplayName } from "@app/lib/getUserDisplayName";
import { resourceQueries } from "@app/lib/queries";
import ResourceContext from "@app/contexts/resourceContext";
import { useResourcePolicyContext } from "@app/providers/ResourcePolicyProvider";
import { zodResolver } from "@hookform/resolvers/zod";
import type { GetResourcePolicyResponse } from "@server/routers/policy";
@@ -33,7 +34,14 @@ import { useQuery } from "@tanstack/react-query";
import type { AxiosResponse } from "axios";
import { useTranslations } from "next-intl";
import { useRouter } from "next/navigation";
import { useActionState, useEffect, useMemo, useRef, useState } from "react";
import {
useActionState,
useContext,
useEffect,
useMemo,
useRef,
useState
} from "react";
import { useForm, useWatch } from "react-hook-form";
import { createPolicySchema } from ".";
import {
@@ -107,6 +115,7 @@ export function PolicyAuthStackSectionEdit({
const t = useTranslations();
const router = useRouter();
const { policy, updatePolicy } = useResourcePolicyContext();
const resourceContext = useContext(ResourceContext);
const api = createApiClient(useEnvContext());
const isResourceOverlay = resourceId !== undefined;
@@ -412,6 +421,14 @@ export function PolicyAuthStackSectionEdit({
updatePolicy(policyUpdates);
resourceContext?.updateAuthInfo({
sso: payload.sso,
whitelist: payload.emailWhitelistEnabled,
password: passcodeOnServerRef.current,
pincode: pincodeOnServerRef.current,
headerAuth: headerAuthOnServerRef.current
});
toast({
title: t("success"),
description: t("policyUpdatedSuccess")

View File

@@ -3,7 +3,7 @@
import ResourceContext from "@app/contexts/resourceContext";
import { GetResourceAuthInfoResponse } from "@server/routers/resource";
import { GetResourceResponse } from "@server/routers/resource/getResource";
import { useState } from "react";
import { useEffect, useState } from "react";
import { useTranslations } from "next-intl";
interface ResourceProviderProps {
@@ -23,6 +23,11 @@ export function ResourceProvider({
const [authInfo, setAuthInfo] =
useState<GetResourceAuthInfoResponse>(serverAuthInfo);
useEffect(() => {
setResource(serverResource);
setAuthInfo(serverAuthInfo);
}, [serverResource, serverAuthInfo]);
const t = useTranslations();
const updateResource = (updatedResource: Partial<GetResourceResponse>) => {