From 54ca8cc0f3fa0e22fa7778023f2c5d09f7c6ffa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89mile=20R=C3=A9?= Date: Thu, 4 Dec 2025 19:27:44 +0400 Subject: [PATCH] Fix useless not founds & duplicated graphQL queries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Émile Ré --- .../organizations/assets/AssetDetailsPage.tsx | 4 ---- .../organizations/audits/AuditDetailsPage.tsx | 6 +----- .../ContinualImprovementDetailsPage.tsx | 4 ---- .../ContinualImprovementsPage.tsx | 21 +++++-------------- .../organizations/documents/DocumentsPage.tsx | 2 +- .../meetings/MeetingDetailPage.tsx | 4 ---- .../nonconformities/NonconformitiesPage.tsx | 16 ++++---------- .../obligations/ObligationDetailsPage.tsx | 4 ---- .../obligations/ObligationsPage.tsx | 16 ++++---------- .../ProcessingActivitiesPage.tsx | 21 +++++-------------- .../ProcessingActivityDetailsPage.tsx | 4 ---- .../vendors/VendorDetailPage.tsx | 4 ---- 12 files changed, 20 insertions(+), 86 deletions(-) diff --git a/apps/console/src/pages/organizations/assets/AssetDetailsPage.tsx b/apps/console/src/pages/organizations/assets/AssetDetailsPage.tsx index c7b315ca5..83e4f430a 100644 --- a/apps/console/src/pages/organizations/assets/AssetDetailsPage.tsx +++ b/apps/console/src/pages/organizations/assets/AssetDetailsPage.tsx @@ -79,10 +79,6 @@ export default function AssetDetailsPage(props: Props) { const updateAsset = useUpdateAsset(); - if (!assetEntry || !assetEntry.id) { - return
{__("Asset not found")}
; - } - const onSubmit = handleSubmit(async (formData) => { await updateAsset({ id: assetEntry.id!, diff --git a/apps/console/src/pages/organizations/audits/AuditDetailsPage.tsx b/apps/console/src/pages/organizations/audits/AuditDetailsPage.tsx index f5d37a47d..7c655365d 100644 --- a/apps/console/src/pages/organizations/audits/AuditDetailsPage.tsx +++ b/apps/console/src/pages/organizations/audits/AuditDetailsPage.tsx @@ -56,7 +56,7 @@ export default function AuditDetailsPage(props: Props) { const { isAuthorized } = use(PermissionsContext); const deleteAudit = useDeleteAudit( - { id: auditEntry.id!, framework: { name: auditEntry.framework!.name } }, + { id: auditEntry.id!, framework: { name: auditEntry.framework!.name} }, ConnectionHandler.getConnectionID(organizationId, "AuditsPage_audits") ); @@ -75,10 +75,6 @@ export default function AuditDetailsPage(props: Props) { const confirm = useConfirm(); const { toast } = useToast(); - if (!auditEntry || !auditEntry.id || !auditEntry.framework) { - return
{__("Audit not found")}
; - } - const onSubmit = handleSubmit(async (formData) => { if (!auditEntry.id) return; diff --git a/apps/console/src/pages/organizations/continualImprovements/ContinualImprovementDetailsPage.tsx b/apps/console/src/pages/organizations/continualImprovements/ContinualImprovementDetailsPage.tsx index 82da474ad..3e5b96b1b 100644 --- a/apps/console/src/pages/organizations/continualImprovements/ContinualImprovementDetailsPage.tsx +++ b/apps/console/src/pages/organizations/continualImprovements/ContinualImprovementDetailsPage.tsx @@ -91,10 +91,6 @@ export default function ContinualImprovementDetailsPage(props: Props) { } ); - if (!improvement) { - return
{__("Continual improvement entry not found")}
; - } - const onSubmit = handleSubmit(async (formData) => { try { await updateImprovement({ diff --git a/apps/console/src/pages/organizations/continualImprovements/ContinualImprovementsPage.tsx b/apps/console/src/pages/organizations/continualImprovements/ContinualImprovementsPage.tsx index f0d14b9f6..272d3a8c8 100644 --- a/apps/console/src/pages/organizations/continualImprovements/ContinualImprovementsPage.tsx +++ b/apps/console/src/pages/organizations/continualImprovements/ContinualImprovementsPage.tsx @@ -28,20 +28,20 @@ import { import { useOrganizationId } from "/hooks/useOrganizationId"; import { useParams } from "react-router"; import { CreateContinualImprovementDialog } from "./dialogs/CreateContinualImprovementDialog"; -import { deleteContinualImprovementMutation, ContinualImprovementsConnectionKey } from "../../../hooks/graph/ContinualImprovementGraph"; +import { deleteContinualImprovementMutation, ContinualImprovementsConnectionKey, continualImprovementsQuery } from "../../../hooks/graph/ContinualImprovementGraph"; import { sprintf, promisifyMutation, getStatusVariant, getStatusLabel, formatDate } from "@probo/helpers"; import { SnapshotBanner } from "/components/SnapshotBanner"; import type { NodeOf } from "/types"; -import type { ContinualImprovementsPageQuery } from "./__generated__/ContinualImprovementsPageQuery.graphql"; import type { ContinualImprovementsPageFragment$key, ContinualImprovementsPageFragment$data, } from "./__generated__/ContinualImprovementsPageFragment.graphql"; import { use } from "react"; import { PermissionsContext } from "/providers/PermissionsContext"; +import type { ContinualImprovementGraphListQuery } from "/hooks/graph/__generated__/ContinualImprovementGraphListQuery.graphql"; interface ContinualImprovementsPageProps { - queryRef: PreloadedQuery; + queryRef: PreloadedQuery; } const continualImprovementsPageFragment = graphql` @@ -98,15 +98,7 @@ export default function ContinualImprovementsPage({ queryRef }: ContinualImprove usePageTitle(__("Continual Improvements")); const organization = usePreloadedQuery( - graphql` - query ContinualImprovementsPageQuery($organizationId: ID!, $snapshotId: ID) { - node(id: $organizationId) { - ... on Organization { - ...ContinualImprovementsPageFragment @arguments(snapshotId: $snapshotId) - } - } - } - `, + continualImprovementsQuery, queryRef ); @@ -116,12 +108,9 @@ export default function ContinualImprovementsPage({ queryRef }: ContinualImprove hasNext, isLoadingNext, } = usePaginationFragment< - ContinualImprovementsPageQuery, + ContinualImprovementGraphListQuery, ContinualImprovementsPageFragment$key >(continualImprovementsPageFragment, organization.node); - if (!data) { - return
{__("Organization not found")}
; - } const connectionId = ConnectionHandler.getConnectionID( organizationId, diff --git a/apps/console/src/pages/organizations/documents/DocumentsPage.tsx b/apps/console/src/pages/organizations/documents/DocumentsPage.tsx index 585f6299d..10fead022 100644 --- a/apps/console/src/pages/organizations/documents/DocumentsPage.tsx +++ b/apps/console/src/pages/organizations/documents/DocumentsPage.tsx @@ -399,7 +399,7 @@ function DocumentRow({ ); const lastVersion = document.versions.edges?.[0]?.node; - const isDraft = lastVersion.status === "DRAFT"; + const isDraft = lastVersion?.status === "DRAFT"; const { __ } = useTranslate(); const [deleteDocument] = useDeleteDocumentMutation(); diff --git a/apps/console/src/pages/organizations/meetings/MeetingDetailPage.tsx b/apps/console/src/pages/organizations/meetings/MeetingDetailPage.tsx index e07896ad2..5d0c8df3f 100644 --- a/apps/console/src/pages/organizations/meetings/MeetingDetailPage.tsx +++ b/apps/console/src/pages/organizations/meetings/MeetingDetailPage.tsx @@ -117,10 +117,6 @@ export default function MeetingDetailPage(props: Props) { usePageTitle(meeting.name); - if (!meeting) { - return
{__("Meeting not found")}
; - } - const hasAnyAction = canUpdate || canDelete; const handleDelete = () => { diff --git a/apps/console/src/pages/organizations/nonconformities/NonconformitiesPage.tsx b/apps/console/src/pages/organizations/nonconformities/NonconformitiesPage.tsx index 911eb5e34..28a24793e 100644 --- a/apps/console/src/pages/organizations/nonconformities/NonconformitiesPage.tsx +++ b/apps/console/src/pages/organizations/nonconformities/NonconformitiesPage.tsx @@ -27,22 +27,22 @@ import { } from "react-relay"; import { useOrganizationId } from "/hooks/useOrganizationId"; import { CreateNonconformityDialog } from "./dialogs/CreateNonconformityDialog"; -import { deleteNonconformityMutation, NonconformitiesConnectionKey } from "../../../hooks/graph/NonconformityGraph"; +import { deleteNonconformityMutation, NonconformitiesConnectionKey, nonconformitiesQuery } from "../../../hooks/graph/NonconformityGraph"; import { sprintf, promisifyMutation, getStatusVariant, getStatusLabel, formatDate } from "@probo/helpers"; import { SnapshotBanner } from "/components/SnapshotBanner"; import { useParams } from "react-router"; -import type { NonconformitiesPageQuery } from "./__generated__/NonconformitiesPageQuery.graphql"; import type { NonconformitiesPageFragment$key, NonconformitiesPageFragment$data, } from "./__generated__/NonconformitiesPageFragment.graphql"; import { use } from "react"; import { PermissionsContext } from "/providers/PermissionsContext"; +import type { NonconformityGraphListQuery } from "/hooks/graph/__generated__/NonconformityGraphListQuery.graphql"; type Nonconformity = NonconformitiesPageFragment$data['nonconformities']['edges'][number]['node']; interface NonconformitiesPageProps { - queryRef: PreloadedQuery; + queryRef: PreloadedQuery; } const nonconformitiesPageFragment = graphql` @@ -108,15 +108,7 @@ export default function NonconformitiesPage({ queryRef }: NonconformitiesPagePro usePageTitle(__("Nonconformities")); const organization = usePreloadedQuery( - graphql` - query NonconformitiesPageQuery($organizationId: ID!, $snapshotId: ID) { - node(id: $organizationId) { - ... on Organization { - ...NonconformitiesPageFragment @arguments(snapshotId: $snapshotId) - } - } - } - `, + nonconformitiesQuery, queryRef ); diff --git a/apps/console/src/pages/organizations/obligations/ObligationDetailsPage.tsx b/apps/console/src/pages/organizations/obligations/ObligationDetailsPage.tsx index 4ab15d4bc..8704b8164 100644 --- a/apps/console/src/pages/organizations/obligations/ObligationDetailsPage.tsx +++ b/apps/console/src/pages/organizations/obligations/ObligationDetailsPage.tsx @@ -100,10 +100,6 @@ export default function ObligationDetailsPage(props: Props) { } ); - if (!obligation) { - return
{__("Obligation not found")}
; - } - const onSubmit = handleSubmit(async (formData) => { try { await updateObligation({ diff --git a/apps/console/src/pages/organizations/obligations/ObligationsPage.tsx b/apps/console/src/pages/organizations/obligations/ObligationsPage.tsx index 8c875f41b..03eee5b8a 100644 --- a/apps/console/src/pages/organizations/obligations/ObligationsPage.tsx +++ b/apps/console/src/pages/organizations/obligations/ObligationsPage.tsx @@ -27,21 +27,21 @@ import { import { useParams } from "react-router"; import { useOrganizationId } from "/hooks/useOrganizationId"; import { CreateObligationDialog } from "./dialogs/CreateObligationDialog"; -import { deleteObligationMutation } from "../../../hooks/graph/ObligationGraph"; +import { deleteObligationMutation, obligationsQuery } from "../../../hooks/graph/ObligationGraph"; import { promisifyMutation, getObligationStatusVariant, getObligationStatusLabel, formatDate } from "@probo/helpers"; import { SnapshotBanner } from "/components/SnapshotBanner"; -import type { ObligationsPageQuery } from "./__generated__/ObligationsPageQuery.graphql"; import type { ObligationsPageFragment$key, ObligationsPageFragment$data, } from "./__generated__/ObligationsPageFragment.graphql"; import { use } from "react"; import { PermissionsContext } from "/providers/PermissionsContext"; +import type { ObligationGraphListQuery } from "/hooks/graph/__generated__/ObligationGraphListQuery.graphql"; type Obligation = ObligationsPageFragment$data['obligations']['edges'][number]['node']; interface ObligationsPageProps { - queryRef: PreloadedQuery; + queryRef: PreloadedQuery; } const obligationsPageFragment = graphql` @@ -100,15 +100,7 @@ export default function ObligationsPage({ queryRef }: ObligationsPageProps) { usePageTitle(__("Obligations")); const organization = usePreloadedQuery( - graphql` - query ObligationsPageQuery($organizationId: ID!, $snapshotId: ID) { - node(id: $organizationId) { - ... on Organization { - ...ObligationsPageFragment @arguments(snapshotId: $snapshotId) - } - } - } - `, + obligationsQuery, queryRef ); diff --git a/apps/console/src/pages/organizations/processingActivities/ProcessingActivitiesPage.tsx b/apps/console/src/pages/organizations/processingActivities/ProcessingActivitiesPage.tsx index a17a9cea1..9c59472ad 100644 --- a/apps/console/src/pages/organizations/processingActivities/ProcessingActivitiesPage.tsx +++ b/apps/console/src/pages/organizations/processingActivities/ProcessingActivitiesPage.tsx @@ -29,20 +29,20 @@ import { import { useOrganizationId } from "/hooks/useOrganizationId"; import { useParams } from "react-router"; import { CreateProcessingActivityDialog } from "./dialogs/CreateProcessingActivityDialog"; -import { deleteProcessingActivityMutation, ProcessingActivitiesConnectionKey } from "../../../hooks/graph/ProcessingActivityGraph"; +import { deleteProcessingActivityMutation, ProcessingActivitiesConnectionKey, processingActivitiesQuery } from "../../../hooks/graph/ProcessingActivityGraph"; import { sprintf, promisifyMutation } from "@probo/helpers"; import { SnapshotBanner } from "/components/SnapshotBanner"; import type { NodeOf } from "/types"; -import type { ProcessingActivitiesPageQuery } from "./__generated__/ProcessingActivitiesPageQuery.graphql"; import type { ProcessingActivitiesPageFragment$key, ProcessingActivitiesPageFragment$data, } from "./__generated__/ProcessingActivitiesPageFragment.graphql"; import { PermissionsContext } from "/providers/PermissionsContext"; import { use } from "react"; +import type { ProcessingActivityGraphListQuery } from "/hooks/graph/__generated__/ProcessingActivityGraphListQuery.graphql"; interface ProcessingActivitiesPageProps { - queryRef: PreloadedQuery; + queryRef: PreloadedQuery; } const processingActivitiesPageFragment = graphql` @@ -96,15 +96,7 @@ export default function ProcessingActivitiesPage({ queryRef }: ProcessingActivit usePageTitle(__("Processing Activities")); const organization = usePreloadedQuery( - graphql` - query ProcessingActivitiesPageQuery($organizationId: ID!, $snapshotId: ID) { - node(id: $organizationId) { - ... on Organization { - ...ProcessingActivitiesPageFragment @arguments(snapshotId: $snapshotId) - } - } - } - `, + processingActivitiesQuery, queryRef ); @@ -114,12 +106,9 @@ export default function ProcessingActivitiesPage({ queryRef }: ProcessingActivit hasNext, isLoadingNext, } = usePaginationFragment< - ProcessingActivitiesPageQuery, + ProcessingActivityGraphListQuery, ProcessingActivitiesPageFragment$key >(processingActivitiesPageFragment, organization.node); - if (!data) { - return
{__("Organization not found")}
; - } const connectionId = ConnectionHandler.getConnectionID( organizationId, diff --git a/apps/console/src/pages/organizations/processingActivities/ProcessingActivityDetailsPage.tsx b/apps/console/src/pages/organizations/processingActivities/ProcessingActivityDetailsPage.tsx index 7ef34bc28..de666bf9d 100644 --- a/apps/console/src/pages/organizations/processingActivities/ProcessingActivityDetailsPage.tsx +++ b/apps/console/src/pages/organizations/processingActivities/ProcessingActivityDetailsPage.tsx @@ -116,10 +116,6 @@ export default function ProcessingActivityDetailsPage(props: Props) { } ); - if (!activity) { - return
{__("Processing activity not found")}
; - } - const onSubmit = handleSubmit(async (formData) => { try { await updateActivity({ diff --git a/apps/console/src/pages/organizations/vendors/VendorDetailPage.tsx b/apps/console/src/pages/organizations/vendors/VendorDetailPage.tsx index 264542067..7d34de1c7 100644 --- a/apps/console/src/pages/organizations/vendors/VendorDetailPage.tsx +++ b/apps/console/src/pages/organizations/vendors/VendorDetailPage.tsx @@ -56,10 +56,6 @@ export default function VendorDetailPage(props: Props) { vendor as VendorComplianceTabFragment$key ).complianceReports.edges.length; - if (!vendor) { - return
{__("Vendor not found")}
; - } - const vendorsUrl = isSnapshotMode && snapshotId ? `/organizations/${organizationId}/snapshots/${snapshotId}/vendors` : `/organizations/${organizationId}/vendors`;