remove duplicate save buttons

This commit is contained in:
Owen
2026-08-10 15:31:45 -04:00
parent e012063f5b
commit 88515a7dad
4 changed files with 258 additions and 113 deletions
+32
View File
@@ -15,6 +15,8 @@ import { useEnvContext } from "@app/hooks/useEnvContext";
import { usePaidStatus } from "@app/hooks/usePaidStatus";
import { toast } from "@app/hooks/useToast";
import { createApiClient, formatAxiosError } from "@app/lib/api";
import { aiBudgetQueries } from "@app/lib/queries";
import { useQueryClient } from "@tanstack/react-query";
import type { Role } from "@server/db";
import type { UpdateRoleBody, UpdateRoleResponse } from "@server/routers/role";
import { AxiosResponse } from "axios";
@@ -26,6 +28,7 @@ import {
RoleForm,
type RoleFormValues
} from "./RoleForm";
import { saveBudgetRows } from "./BudgetsEditor";
import { tierMatrix } from "@server/lib/billing/tierMatrix";
type EditRoleFormProps = {
@@ -44,6 +47,7 @@ export default function EditRoleForm({
const t = useTranslations();
const { isPaidUser } = usePaidStatus();
const api = createApiClient(useEnvContext());
const queryClient = useQueryClient();
const [loading, startTransition] = useTransition();
async function onSubmit(values: RoleFormValues) {
@@ -83,6 +87,34 @@ export default function EditRoleForm({
});
if (res && res.status === 200) {
if (values.budgets) {
try {
const scope = { type: "role" as const, id: role.roleId };
const existingBudgets = await queryClient.fetchQuery(
aiBudgetQueries.scoped({ scope })
);
await saveBudgetRows({
api,
orgId: role.orgId,
scope,
existingBudgets,
rows: values.budgets
});
await queryClient.invalidateQueries(
aiBudgetQueries.scoped({ scope })
);
} catch (e) {
toast({
variant: "destructive",
title: t("aiBudgetErrorSave"),
description: formatAxiosError(
e,
t("aiBudgetErrorSave")
)
});
}
}
toast({
variant: "default",
title: t("accessRoleUpdated"),