diff --git a/frontend/src/app/procurement/page.tsx b/frontend/src/app/procurement/page.tsx index 65192a15..f30d07b1 100644 --- a/frontend/src/app/procurement/page.tsx +++ b/frontend/src/app/procurement/page.tsx @@ -15,7 +15,6 @@ import { ProjectSelectMenu } from "@/components/ui/ProjectSelectMenu"; import { useUser } from "@/contexts/UserContext"; import Link from "next/link"; import { ProcurementRequestDetailContent } from "@/components/procurement/ProcurementRequestDetailContent"; -import ProcurementProjectsQuickEditor from "@/components/procurement/ProcurementProjectsQuickEditor"; import { ProcurementTaskLinks } from "@/components/procurement/ProcurementTaskLinks"; import ProcurementStatsPanel from "@/components/procurement/ProcurementStatsPanel"; import ProcurementSuppliersPanel from "@/components/procurement/ProcurementSuppliersPanel"; @@ -2027,18 +2026,6 @@ export default function ProcurementPage() { ) : null} -
- { - await Promise.all([ - refreshOne(selectedRequest.id), - loadPage1(), - ]); - }} - /> -

Описание: {selectedRequest.description || "—"} @@ -2132,6 +2119,10 @@ export default function ProcurementPage() { currentUserId={user?.id} request={selectedRequest} displayUserName={displayUserName} + onProjectsSaved={async () => { + await refreshOne(selectedRequest.id); + await loadPage1(); + }} canProcessItems={Boolean( selectedRequest.can_current_user_process_items, )} @@ -2971,6 +2962,10 @@ export default function ProcurementPage() { currentUserId={user?.id} request={resolvedDetail} displayUserName={displayUserName} + onProjectsSaved={async () => { + await refreshOne(resolvedDetail.id); + await loadPage1(); + }} canProcessItems={Boolean( resolvedDetail.can_current_user_process_items, )} @@ -3228,6 +3223,10 @@ export default function ProcurementPage() { currentUserId={user?.id} request={selectedRequest} displayUserName={displayUserName} + onProjectsSaved={async () => { + await refreshOne(selectedRequest.id); + await loadPage1(); + }} canProcessItems={Boolean( selectedRequest.can_current_user_process_items, )} diff --git a/frontend/src/components/procurement/ProcurementRequestDetailContent.tsx b/frontend/src/components/procurement/ProcurementRequestDetailContent.tsx index f04dfce8..18810c02 100644 --- a/frontend/src/components/procurement/ProcurementRequestDetailContent.tsx +++ b/frontend/src/components/procurement/ProcurementRequestDetailContent.tsx @@ -25,6 +25,7 @@ import { import { RequestAvatar } from "@/components/requests/RequestAvatar"; import { ProcurementCommentAttachment } from "@/components/procurement/ProcurementCommentAttachment"; import { ProcurementRequestHistory } from "@/components/procurement/ProcurementRequestHistory"; +import ProcurementProjectsQuickEditor from "@/components/procurement/ProcurementProjectsQuickEditor"; import { CommentComposer, CommentDeleteButton, @@ -53,6 +54,7 @@ interface ProcurementRequestDetailContentProps { fallbackEmail?: string | null, ) => string; canProcessItems?: boolean; + onProjectsSaved?: () => Promise; busyKey?: string | null; canDeleteAnyComment?: boolean; onUpdateItem?: ( @@ -1861,6 +1863,7 @@ export function ProcurementRequestDetailContent({ request, displayUserName, canProcessItems = false, + onProjectsSaved, busyKey, canDeleteAnyComment = false, onUpdateItem, @@ -1990,6 +1993,15 @@ export function ProcurementRequestDetailContent({

+ {onProjectsSaved ? ( +
+ +
+ ) : null} {!wideLayout ? (