Add request param presence callback to request accesses

Signed-off-by: Émile Ré <emile@getprobo.com>
This commit is contained in:
Émile Ré
2026-02-20 16:54:11 +04:00
parent c79c62fc78
commit bb8d477495
15 changed files with 738 additions and 128 deletions

View File

@@ -1,5 +1,5 @@
/** /**
* @generated SignedSource<<72029a8e627a0b60cb1e2c226af0d535>> * @generated SignedSource<<754e567fe99c9c96b8d4e324ce5373b8>>
* @lightSyntaxTransform * @lightSyntaxTransform
* @nogrep * @nogrep
*/ */

View File

@@ -1,5 +1,5 @@
/** /**
* @generated SignedSource<<310671de1c8bca322875bfca9102fcbf>> * @generated SignedSource<<876124efbbec99a5059c28550cb638c0>>
* @lightSyntaxTransform * @lightSyntaxTransform
* @nogrep * @nogrep
*/ */

View File

@@ -1,5 +1,5 @@
/** /**
* @generated SignedSource<<c58f6047e14212818972c5cf56162c1c>> * @generated SignedSource<<ad43a2ccfc4f0bd38bf04b06ae2f8183>>
* @lightSyntaxTransform * @lightSyntaxTransform
* @nogrep * @nogrep
*/ */

View File

@@ -11,10 +11,11 @@ import {
} from "@probo/ui"; } from "@probo/ui";
import { useState } from "react"; import { useState } from "react";
import { useFragment, useMutation } from "react-relay"; import { useFragment, useMutation } from "react-relay";
import { useLocation, useNavigate } from "react-router"; import { useLocation, useNavigate, useSearchParams } from "react-router";
import { graphql } from "relay-runtime"; import { graphql } from "relay-runtime";
import { useMutationWithToasts } from "#/hooks/useMutationWithToast"; import { useMutationWithToasts } from "#/hooks/useMutationWithToast";
import { getPathPrefix } from "#/utils/pathPrefix";
import type { DocumentRow_requestAccessMutation } from "./__generated__/DocumentRow_requestAccessMutation.graphql"; import type { DocumentRow_requestAccessMutation } from "./__generated__/DocumentRow_requestAccessMutation.graphql";
import type { DocumentRowDownloadMutation } from "./__generated__/DocumentRowDownloadMutation.graphql"; import type { DocumentRowDownloadMutation } from "./__generated__/DocumentRowDownloadMutation.graphql";
@@ -54,6 +55,7 @@ export function DocumentRow(props: { document: DocumentRowFragment$key }) {
const { toast } = useToast(); const { toast } = useToast();
const navigate = useNavigate(); const navigate = useNavigate();
const location = useLocation(); const location = useLocation();
const [searchParams] = useSearchParams();
const document = useFragment(documentRowFragment, props.document); const document = useFragment(documentRowFragment, props.document);
const [hasRequested, setHasRequested] = useState( const [hasRequested, setHasRequested] = useState(
@@ -90,10 +92,15 @@ export function DocumentRow(props: { document: DocumentRowFragment$key }) {
}, },
onError: (error) => { onError: (error) => {
if (error instanceof UnAuthenticatedError) { if (error instanceof UnAuthenticatedError) {
const searchParams = new URLSearchParams([[ const pathPrefix = getPathPrefix();
"continue", window.location.origin + location.pathname + location.search, searchParams.set("request-document-id", document.id);
const urlSearchParams = new URLSearchParams([[
"continue",
window.location.origin + pathPrefix + location.pathname + "?" + searchParams.toString(),
]]); ]]);
void navigate(`/connect?${searchParams.toString()}`); void navigate(`/connect?${urlSearchParams.toString()}`);
return;
} }
toast({ toast({

View File

@@ -0,0 +1,87 @@
/**
* @generated SignedSource<<71c76287347e6e819c625f5072b4fae4>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type useRequestAccessCallback_allMutation$variables = Record<PropertyKey, never>;
export type useRequestAccessCallback_allMutation$data = {
readonly requestAllAccesses: {
readonly trustCenterAccess: {
readonly id: string;
};
};
};
export type useRequestAccessCallback_allMutation = {
response: useRequestAccessCallback_allMutation$data;
variables: useRequestAccessCallback_allMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"alias": null,
"args": null,
"concreteType": "RequestAccessesPayload",
"kind": "LinkedField",
"name": "requestAllAccesses",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "TrustCenterAccess",
"kind": "LinkedField",
"name": "trustCenterAccess",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
}
];
return {
"fragment": {
"argumentDefinitions": [],
"kind": "Fragment",
"metadata": null,
"name": "useRequestAccessCallback_allMutation",
"selections": (v0/*: any*/),
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": [],
"kind": "Operation",
"name": "useRequestAccessCallback_allMutation",
"selections": (v0/*: any*/)
},
"params": {
"cacheID": "dd26f85da037142a278f934f06c8c0a0",
"id": null,
"metadata": {},
"name": "useRequestAccessCallback_allMutation",
"operationKind": "mutation",
"text": "mutation useRequestAccessCallback_allMutation {\n requestAllAccesses {\n trustCenterAccess {\n id\n }\n }\n}\n"
}
};
})();
(node as any).hash = "7f32c58dba23b76a39950d08c25eaaa7";
export default node;

View File

@@ -0,0 +1,105 @@
/**
* @generated SignedSource<<6b6304c9a22de890f171632f8c9dabe1>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type RequestDocumentAccessInput = {
documentId: string;
};
export type useRequestAccessCallback_documentMutation$variables = {
input: RequestDocumentAccessInput;
};
export type useRequestAccessCallback_documentMutation$data = {
readonly requestDocumentAccess: {
readonly trustCenterAccess: {
readonly id: string;
};
};
};
export type useRequestAccessCallback_documentMutation = {
response: useRequestAccessCallback_documentMutation$data;
variables: useRequestAccessCallback_documentMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "input"
}
],
v1 = [
{
"alias": null,
"args": [
{
"kind": "Variable",
"name": "input",
"variableName": "input"
}
],
"concreteType": "RequestAccessesPayload",
"kind": "LinkedField",
"name": "requestDocumentAccess",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "TrustCenterAccess",
"kind": "LinkedField",
"name": "trustCenterAccess",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
}
];
return {
"fragment": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Fragment",
"metadata": null,
"name": "useRequestAccessCallback_documentMutation",
"selections": (v1/*: any*/),
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "useRequestAccessCallback_documentMutation",
"selections": (v1/*: any*/)
},
"params": {
"cacheID": "849ea6a746660bdee8ebf805baef7a33",
"id": null,
"metadata": {},
"name": "useRequestAccessCallback_documentMutation",
"operationKind": "mutation",
"text": "mutation useRequestAccessCallback_documentMutation(\n $input: RequestDocumentAccessInput!\n) {\n requestDocumentAccess(input: $input) {\n trustCenterAccess {\n id\n }\n }\n}\n"
}
};
})();
(node as any).hash = "1ff8b5f560d8c3024e6d5c11bb2ed889";
export default node;

View File

@@ -0,0 +1,105 @@
/**
* @generated SignedSource<<6db2a4322199d638b3f1ac498ecd066b>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type RequestTrustCenterFileAccessInput = {
trustCenterFileId: string;
};
export type useRequestAccessCallback_fileMutation$variables = {
input: RequestTrustCenterFileAccessInput;
};
export type useRequestAccessCallback_fileMutation$data = {
readonly requestTrustCenterFileAccess: {
readonly trustCenterAccess: {
readonly id: string;
};
};
};
export type useRequestAccessCallback_fileMutation = {
response: useRequestAccessCallback_fileMutation$data;
variables: useRequestAccessCallback_fileMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "input"
}
],
v1 = [
{
"alias": null,
"args": [
{
"kind": "Variable",
"name": "input",
"variableName": "input"
}
],
"concreteType": "RequestAccessesPayload",
"kind": "LinkedField",
"name": "requestTrustCenterFileAccess",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "TrustCenterAccess",
"kind": "LinkedField",
"name": "trustCenterAccess",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
}
];
return {
"fragment": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Fragment",
"metadata": null,
"name": "useRequestAccessCallback_fileMutation",
"selections": (v1/*: any*/),
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "useRequestAccessCallback_fileMutation",
"selections": (v1/*: any*/)
},
"params": {
"cacheID": "1ed0d9f8a3b3dc08c2af16101729d3a9",
"id": null,
"metadata": {},
"name": "useRequestAccessCallback_fileMutation",
"operationKind": "mutation",
"text": "mutation useRequestAccessCallback_fileMutation(\n $input: RequestTrustCenterFileAccessInput!\n) {\n requestTrustCenterFileAccess(input: $input) {\n trustCenterAccess {\n id\n }\n }\n}\n"
}
};
})();
(node as any).hash = "5105b60de987b135523ada9ee2777dea";
export default node;

View File

@@ -0,0 +1,105 @@
/**
* @generated SignedSource<<d36c3f435afa928b80d415bd53786d81>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type RequestReportAccessInput = {
reportId: string;
};
export type useRequestAccessCallback_reportMutation$variables = {
input: RequestReportAccessInput;
};
export type useRequestAccessCallback_reportMutation$data = {
readonly requestReportAccess: {
readonly trustCenterAccess: {
readonly id: string;
};
};
};
export type useRequestAccessCallback_reportMutation = {
response: useRequestAccessCallback_reportMutation$data;
variables: useRequestAccessCallback_reportMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "input"
}
],
v1 = [
{
"alias": null,
"args": [
{
"kind": "Variable",
"name": "input",
"variableName": "input"
}
],
"concreteType": "RequestAccessesPayload",
"kind": "LinkedField",
"name": "requestReportAccess",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "TrustCenterAccess",
"kind": "LinkedField",
"name": "trustCenterAccess",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
}
];
return {
"fragment": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Fragment",
"metadata": null,
"name": "useRequestAccessCallback_reportMutation",
"selections": (v1/*: any*/),
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "useRequestAccessCallback_reportMutation",
"selections": (v1/*: any*/)
},
"params": {
"cacheID": "c859384ca219b8302245e0bed292e698",
"id": null,
"metadata": {},
"name": "useRequestAccessCallback_reportMutation",
"operationKind": "mutation",
"text": "mutation useRequestAccessCallback_reportMutation(\n $input: RequestReportAccessInput!\n) {\n requestReportAccess(input: $input) {\n trustCenterAccess {\n id\n }\n }\n}\n"
}
};
})();
(node as any).hash = "6ad61c2f6638f5d31c9c25b0044f080a";
export default node;

View File

@@ -0,0 +1,198 @@
import { formatError, type GraphQLError } from "@probo/helpers";
import { useTranslate } from "@probo/i18n";
import { useToast } from "@probo/ui";
import { useEffect } from "react";
import { useMutation } from "react-relay";
import { useSearchParams } from "react-router";
import { graphql } from "relay-runtime";
import type { useRequestAccessCallback_allMutation } from "./__generated__/useRequestAccessCallback_allMutation.graphql";
import type { useRequestAccessCallback_documentMutation } from "./__generated__/useRequestAccessCallback_documentMutation.graphql";
import type { useRequestAccessCallback_fileMutation } from "./__generated__/useRequestAccessCallback_fileMutation.graphql";
import type { useRequestAccessCallback_reportMutation } from "./__generated__/useRequestAccessCallback_reportMutation.graphql";
const documentMutation = graphql`
mutation useRequestAccessCallback_documentMutation(
$input: RequestDocumentAccessInput!
) {
requestDocumentAccess(input: $input) {
trustCenterAccess {
id
}
}
}
`;
const reportMutation = graphql`
mutation useRequestAccessCallback_reportMutation(
$input: RequestReportAccessInput!
) {
requestReportAccess(input: $input) {
trustCenterAccess {
id
}
}
}
`;
const fileMutation = graphql`
mutation useRequestAccessCallback_fileMutation(
$input: RequestTrustCenterFileAccessInput!
) {
requestTrustCenterFileAccess(input: $input) {
trustCenterAccess {
id
}
}
}
`;
const allMutation = graphql`
mutation useRequestAccessCallback_allMutation {
requestAllAccesses {
trustCenterAccess {
id
}
}
}
`;
function errorToastArgs(__: (s: string) => string, error: GraphQLError | GraphQLError[]) {
return {
title: __("Error"),
description: formatError(__("Cannot request access"), error),
variant: "error" as const,
};
}
function successToastArgs(__: (s: string) => string) {
return {
title: __("Success"),
description: __("Access request submitted successfully."),
variant: "success" as const,
};
}
export function useRequestAccessCallback() {
const [searchParams, setSearchParams] = useSearchParams();
const documentId = searchParams.get("request-document-id");
const reportId = searchParams.get("request-report-id");
const fileId = searchParams.get("request-file-id");
const all = searchParams.get("request-all");
const { __ } = useTranslate();
const { toast } = useToast();
const [requestDocumentAccess] = useMutation<useRequestAccessCallback_documentMutation>(documentMutation);
const [requestReportAccess] = useMutation<useRequestAccessCallback_reportMutation>(reportMutation);
const [requestFileAccess] = useMutation<useRequestAccessCallback_fileMutation>(fileMutation);
const [requestAll] = useMutation<useRequestAccessCallback_allMutation>(allMutation);
useEffect(() => {
if (documentId) {
void requestDocumentAccess({
variables: {
input: { documentId },
},
onCompleted: (_, errors) => {
if (errors?.length) {
toast(errorToastArgs(__, errors));
searchParams.delete("request-document-id");
setSearchParams(searchParams);
return;
}
toast(successToastArgs(__));
searchParams.delete("request-document-id");
setSearchParams(searchParams);
},
onError: (error) => {
toast(errorToastArgs(__, error));
searchParams.delete("request-document-id");
setSearchParams(searchParams);
},
});
} else if (reportId) {
void requestReportAccess({
variables: {
input: { reportId },
},
onCompleted: (_, errors) => {
if (errors?.length) {
toast(errorToastArgs(__, errors));
searchParams.delete("request-report-id");
setSearchParams(searchParams);
return;
}
toast(successToastArgs(__));
searchParams.delete("request-report-id");
setSearchParams(searchParams);
},
onError: (error) => {
toast(errorToastArgs(__, error));
searchParams.delete("request-report-id");
setSearchParams(searchParams);
},
});
} else if (fileId) {
void requestFileAccess({
variables: {
input: { trustCenterFileId: fileId },
},
onCompleted: (_, errors) => {
if (errors?.length) {
toast(errorToastArgs(__, errors));
searchParams.delete("request-file-id");
setSearchParams(searchParams);
return;
}
toast(successToastArgs(__));
searchParams.delete("request-file-id");
setSearchParams(searchParams);
},
onError: (error) => {
toast(errorToastArgs(__, error));
searchParams.delete("request-file-id");
setSearchParams(searchParams);
},
});
} else if (all) {
void requestAll({
variables: {},
onCompleted: (_, errors) => {
if (errors?.length) {
toast(errorToastArgs(__, errors));
searchParams.delete("request-all");
setSearchParams(searchParams);
return;
}
toast(successToastArgs(__));
searchParams.delete("request-all");
setSearchParams(searchParams);
},
onError: (error) => {
toast(errorToastArgs(__, error));
searchParams.delete("request-all");
setSearchParams(searchParams);
},
});
}
}, [
documentId,
reportId,
fileId,
all,
__,
requestDocumentAccess,
requestReportAccess,
requestFileAccess,
requestAll,
searchParams,
setSearchParams,
toast,
]);
}

View File

@@ -5,6 +5,7 @@ import { type PreloadedQuery, usePreloadedQuery } from "react-relay";
import { Navigate, Outlet } from "react-router"; import { Navigate, Outlet } from "react-router";
import { OrganizationSidebar } from "#/components/OrganizationSidebar"; import { OrganizationSidebar } from "#/components/OrganizationSidebar";
import { useRequestAccessCallback } from "#/hooks/useRequestAccessCallback";
import { TrustCenterProvider } from "#/providers/TrustCenterProvider"; import { TrustCenterProvider } from "#/providers/TrustCenterProvider";
import { Viewer } from "#/providers/Viewer"; import { Viewer } from "#/providers/Viewer";
import type { TrustGraphCurrentQuery } from "#/queries/__generated__/TrustGraphCurrentQuery.graphql"; import type { TrustGraphCurrentQuery } from "#/queries/__generated__/TrustGraphCurrentQuery.graphql";
@@ -21,11 +22,12 @@ export function MainLayout(props: Props) {
const theme = useSystemTheme(); const theme = useSystemTheme();
useFavicon(theme === "dark" ? (trustCenter?.darkLogoFileUrl ?? trustCenter?.logoFileUrl) : trustCenter?.logoFileUrl); useFavicon(
theme === "dark"
if (!trustCenter) { ? (trustCenter?.darkLogoFileUrl ?? trustCenter?.logoFileUrl)
return null; : trustCenter?.logoFileUrl,
} );
useRequestAccessCallback();
const hasPendingNDA const hasPendingNDA
= data.viewer = data.viewer

View File

@@ -1,5 +1,4 @@
import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { StrictMode } from "react";
import { createRoot } from "react-dom/client"; import { createRoot } from "react-dom/client";
import "./index.css"; import "./index.css";
@@ -17,13 +16,11 @@ const queryClient = new QueryClient({
}); });
createRoot(document.getElementById("root")!).render( createRoot(document.getElementById("root")!).render(
<StrictMode> <QueryClientProvider client={queryClient}>
<QueryClientProvider client={queryClient}> <RelayProvider>
<RelayProvider> <TranslatorProvider>
<TranslatorProvider> <App />
<App /> </TranslatorProvider>
</TranslatorProvider> </RelayProvider>
</RelayProvider> </QueryClientProvider>,
</QueryClientProvider>
</StrictMode>,
); );

View File

@@ -7,7 +7,7 @@ export const currentTrustGraphQuery = graphql`
email email
fullName fullName
} }
currentTrustCenter { currentTrustCenter @required(action: THROW) {
id id
slug slug
isViewerMember isViewerMember

View File

@@ -1,5 +1,5 @@
/** /**
* @generated SignedSource<<663225cc4e0d94b50dc97084c3d51aae>> * @generated SignedSource<<700a3b76b18e7182c5a08c98b5d7fa2a>>
* @lightSyntaxTransform * @lightSyntaxTransform
* @nogrep * @nogrep
*/ */
@@ -45,7 +45,7 @@ export type TrustGraphCurrentQuery$data = {
readonly totalCount: number; readonly totalCount: number;
}; };
readonly " $fragmentSpreads": FragmentRefs<"OverviewPageFragment">; readonly " $fragmentSpreads": FragmentRefs<"OverviewPageFragment">;
} | null | undefined; };
readonly viewer: { readonly viewer: {
readonly email: any; readonly email: any;
readonly fullName: string; readonly fullName: string;
@@ -228,106 +228,110 @@ return {
"storageKey": null "storageKey": null
}, },
{ {
"alias": null, "kind": "RequiredField",
"args": null, "field": {
"concreteType": "TrustCenter", "alias": null,
"kind": "LinkedField", "args": null,
"name": "currentTrustCenter", "concreteType": "TrustCenter",
"plural": false, "kind": "LinkedField",
"selections": [ "name": "currentTrustCenter",
(v2/*: any*/), "plural": false,
(v3/*: any*/), "selections": [
(v4/*: any*/), (v2/*: any*/),
(v5/*: any*/), (v3/*: any*/),
(v6/*: any*/), (v4/*: any*/),
{ (v5/*: any*/),
"alias": null, (v6/*: any*/),
"args": null, {
"concreteType": "NonDisclosureAgreement", "alias": null,
"kind": "LinkedField", "args": null,
"name": "nonDisclosureAgreement", "concreteType": "NonDisclosureAgreement",
"plural": false, "kind": "LinkedField",
"selections": [ "name": "nonDisclosureAgreement",
(v7/*: any*/), "plural": false,
(v8/*: any*/), "selections": [
{ (v7/*: any*/),
"alias": null, (v8/*: any*/),
"args": null, {
"concreteType": "ElectronicSignature", "alias": null,
"kind": "LinkedField", "args": null,
"name": "viewerSignature", "concreteType": "ElectronicSignature",
"plural": false, "kind": "LinkedField",
"selections": [ "name": "viewerSignature",
(v9/*: any*/) "plural": false,
], "selections": [
"storageKey": null (v9/*: any*/)
} ],
], "storageKey": null
"storageKey": null }
}, ],
{ "storageKey": null
"alias": null, },
"args": null, {
"concreteType": "Organization", "alias": null,
"kind": "LinkedField", "args": null,
"name": "organization", "concreteType": "Organization",
"plural": false, "kind": "LinkedField",
"selections": [ "name": "organization",
(v10/*: any*/), "plural": false,
(v11/*: any*/), "selections": [
(v12/*: any*/), (v10/*: any*/),
(v0/*: any*/), (v11/*: any*/),
(v13/*: any*/) (v12/*: any*/),
], (v0/*: any*/),
"storageKey": null (v13/*: any*/)
}, ],
{ "storageKey": null
"args": null, },
"kind": "FragmentSpread", {
"name": "OverviewPageFragment" "args": null,
}, "kind": "FragmentSpread",
(v14/*: any*/), "name": "OverviewPageFragment"
{ },
"alias": null, (v14/*: any*/),
"args": (v15/*: any*/), {
"concreteType": "AuditConnection", "alias": null,
"kind": "LinkedField", "args": (v15/*: any*/),
"name": "audits", "concreteType": "AuditConnection",
"plural": false, "kind": "LinkedField",
"selections": [ "name": "audits",
{ "plural": false,
"alias": null, "selections": [
"args": null, {
"concreteType": "AuditEdge", "alias": null,
"kind": "LinkedField", "args": null,
"name": "edges", "concreteType": "AuditEdge",
"plural": true, "kind": "LinkedField",
"selections": [ "name": "edges",
{ "plural": true,
"alias": null, "selections": [
"args": null, {
"concreteType": "Audit", "alias": null,
"kind": "LinkedField", "args": null,
"name": "node", "concreteType": "Audit",
"plural": false, "kind": "LinkedField",
"selections": [ "name": "node",
(v2/*: any*/), "plural": false,
{ "selections": [
"args": null, (v2/*: any*/),
"kind": "FragmentSpread", {
"name": "AuditRowFragment" "args": null,
} "kind": "FragmentSpread",
], "name": "AuditRowFragment"
"storageKey": null }
} ],
], "storageKey": null
"storageKey": null }
} ],
], "storageKey": null
"storageKey": "audits(first:50)" }
} ],
], "storageKey": "audits(first:50)"
"storageKey": null }
],
"storageKey": null
},
"action": "THROW"
} }
], ],
"type": "Query", "type": "Query",
@@ -702,6 +706,6 @@ return {
}; };
})(); })();
(node as any).hash = "6cbe676214b698d12e2cae08060a7285"; (node as any).hash = "64b166174da80cd3082ab4becf716b1c";
export default node; export default node;

View File

@@ -769,7 +769,7 @@ type Mutation {
input: ExportTrustCenterFileInput! input: ExportTrustCenterFileInput!
): ExportTrustCenterFilePayload! @session(required: OPTIONAL) ): ExportTrustCenterFilePayload! @session(required: OPTIONAL)
requestDocumentAccess( requestDocumentAccess(
input: RequestDocumentAccessInput! input: RequestDocumentAccessInput!
): RequestAccessesPayload! @session(required: PRESENT) ): RequestAccessesPayload! @session(required: PRESENT)

View File

@@ -2076,7 +2076,7 @@ type Mutation {
input: ExportTrustCenterFileInput! input: ExportTrustCenterFileInput!
): ExportTrustCenterFilePayload! @session(required: OPTIONAL) ): ExportTrustCenterFilePayload! @session(required: OPTIONAL)
requestDocumentAccess( requestDocumentAccess(
input: RequestDocumentAccessInput! input: RequestDocumentAccessInput!
): RequestAccessesPayload! @session(required: PRESENT) ): RequestAccessesPayload! @session(required: PRESENT)