mirror of
https://github.com/fosrl/pangolin.git
synced 2026-06-10 17:43:15 +00:00
fix resource context updating problem
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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>) => {
|
||||
|
||||
Reference in New Issue
Block a user