Add request param presence callback to request accesses
Signed-off-by: Émile Ré <emile@getprobo.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* @generated SignedSource<<72029a8e627a0b60cb1e2c226af0d535>>
|
||||
* @generated SignedSource<<754e567fe99c9c96b8d4e324ce5373b8>>
|
||||
* @lightSyntaxTransform
|
||||
* @nogrep
|
||||
*/
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* @generated SignedSource<<310671de1c8bca322875bfca9102fcbf>>
|
||||
* @generated SignedSource<<876124efbbec99a5059c28550cb638c0>>
|
||||
* @lightSyntaxTransform
|
||||
* @nogrep
|
||||
*/
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* @generated SignedSource<<c58f6047e14212818972c5cf56162c1c>>
|
||||
* @generated SignedSource<<ad43a2ccfc4f0bd38bf04b06ae2f8183>>
|
||||
* @lightSyntaxTransform
|
||||
* @nogrep
|
||||
*/
|
||||
|
||||
@@ -11,10 +11,11 @@ import {
|
||||
} from "@probo/ui";
|
||||
import { useState } from "react";
|
||||
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 { useMutationWithToasts } from "#/hooks/useMutationWithToast";
|
||||
import { getPathPrefix } from "#/utils/pathPrefix";
|
||||
|
||||
import type { DocumentRow_requestAccessMutation } from "./__generated__/DocumentRow_requestAccessMutation.graphql";
|
||||
import type { DocumentRowDownloadMutation } from "./__generated__/DocumentRowDownloadMutation.graphql";
|
||||
@@ -54,6 +55,7 @@ export function DocumentRow(props: { document: DocumentRowFragment$key }) {
|
||||
const { toast } = useToast();
|
||||
const navigate = useNavigate();
|
||||
const location = useLocation();
|
||||
const [searchParams] = useSearchParams();
|
||||
|
||||
const document = useFragment(documentRowFragment, props.document);
|
||||
const [hasRequested, setHasRequested] = useState(
|
||||
@@ -90,10 +92,15 @@ export function DocumentRow(props: { document: DocumentRowFragment$key }) {
|
||||
},
|
||||
onError: (error) => {
|
||||
if (error instanceof UnAuthenticatedError) {
|
||||
const searchParams = new URLSearchParams([[
|
||||
"continue", window.location.origin + location.pathname + location.search,
|
||||
const pathPrefix = getPathPrefix();
|
||||
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({
|
||||
|
||||
87
apps/trust/src/hooks/__generated__/useRequestAccessCallback_allMutation.graphql.ts
generated
Normal file
87
apps/trust/src/hooks/__generated__/useRequestAccessCallback_allMutation.graphql.ts
generated
Normal 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;
|
||||
105
apps/trust/src/hooks/__generated__/useRequestAccessCallback_documentMutation.graphql.ts
generated
Normal file
105
apps/trust/src/hooks/__generated__/useRequestAccessCallback_documentMutation.graphql.ts
generated
Normal 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;
|
||||
105
apps/trust/src/hooks/__generated__/useRequestAccessCallback_fileMutation.graphql.ts
generated
Normal file
105
apps/trust/src/hooks/__generated__/useRequestAccessCallback_fileMutation.graphql.ts
generated
Normal 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;
|
||||
105
apps/trust/src/hooks/__generated__/useRequestAccessCallback_reportMutation.graphql.ts
generated
Normal file
105
apps/trust/src/hooks/__generated__/useRequestAccessCallback_reportMutation.graphql.ts
generated
Normal 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;
|
||||
198
apps/trust/src/hooks/useRequestAccessCallback.ts
Normal file
198
apps/trust/src/hooks/useRequestAccessCallback.ts
Normal 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,
|
||||
]);
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import { type PreloadedQuery, usePreloadedQuery } from "react-relay";
|
||||
import { Navigate, Outlet } from "react-router";
|
||||
|
||||
import { OrganizationSidebar } from "#/components/OrganizationSidebar";
|
||||
import { useRequestAccessCallback } from "#/hooks/useRequestAccessCallback";
|
||||
import { TrustCenterProvider } from "#/providers/TrustCenterProvider";
|
||||
import { Viewer } from "#/providers/Viewer";
|
||||
import type { TrustGraphCurrentQuery } from "#/queries/__generated__/TrustGraphCurrentQuery.graphql";
|
||||
@@ -21,11 +22,12 @@ export function MainLayout(props: Props) {
|
||||
|
||||
const theme = useSystemTheme();
|
||||
|
||||
useFavicon(theme === "dark" ? (trustCenter?.darkLogoFileUrl ?? trustCenter?.logoFileUrl) : trustCenter?.logoFileUrl);
|
||||
|
||||
if (!trustCenter) {
|
||||
return null;
|
||||
}
|
||||
useFavicon(
|
||||
theme === "dark"
|
||||
? (trustCenter?.darkLogoFileUrl ?? trustCenter?.logoFileUrl)
|
||||
: trustCenter?.logoFileUrl,
|
||||
);
|
||||
useRequestAccessCallback();
|
||||
|
||||
const hasPendingNDA
|
||||
= data.viewer
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
||||
import { StrictMode } from "react";
|
||||
import { createRoot } from "react-dom/client";
|
||||
|
||||
import "./index.css";
|
||||
@@ -17,13 +16,11 @@ const queryClient = new QueryClient({
|
||||
});
|
||||
|
||||
createRoot(document.getElementById("root")!).render(
|
||||
<StrictMode>
|
||||
<QueryClientProvider client={queryClient}>
|
||||
<RelayProvider>
|
||||
<TranslatorProvider>
|
||||
<App />
|
||||
</TranslatorProvider>
|
||||
</RelayProvider>
|
||||
</QueryClientProvider>
|
||||
</StrictMode>,
|
||||
<QueryClientProvider client={queryClient}>
|
||||
<RelayProvider>
|
||||
<TranslatorProvider>
|
||||
<App />
|
||||
</TranslatorProvider>
|
||||
</RelayProvider>
|
||||
</QueryClientProvider>,
|
||||
);
|
||||
|
||||
@@ -7,7 +7,7 @@ export const currentTrustGraphQuery = graphql`
|
||||
email
|
||||
fullName
|
||||
}
|
||||
currentTrustCenter {
|
||||
currentTrustCenter @required(action: THROW) {
|
||||
id
|
||||
slug
|
||||
isViewerMember
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* @generated SignedSource<<663225cc4e0d94b50dc97084c3d51aae>>
|
||||
* @generated SignedSource<<700a3b76b18e7182c5a08c98b5d7fa2a>>
|
||||
* @lightSyntaxTransform
|
||||
* @nogrep
|
||||
*/
|
||||
@@ -45,7 +45,7 @@ export type TrustGraphCurrentQuery$data = {
|
||||
readonly totalCount: number;
|
||||
};
|
||||
readonly " $fragmentSpreads": FragmentRefs<"OverviewPageFragment">;
|
||||
} | null | undefined;
|
||||
};
|
||||
readonly viewer: {
|
||||
readonly email: any;
|
||||
readonly fullName: string;
|
||||
@@ -228,106 +228,110 @@ return {
|
||||
"storageKey": null
|
||||
},
|
||||
{
|
||||
"alias": null,
|
||||
"args": null,
|
||||
"concreteType": "TrustCenter",
|
||||
"kind": "LinkedField",
|
||||
"name": "currentTrustCenter",
|
||||
"plural": false,
|
||||
"selections": [
|
||||
(v2/*: any*/),
|
||||
(v3/*: any*/),
|
||||
(v4/*: any*/),
|
||||
(v5/*: any*/),
|
||||
(v6/*: any*/),
|
||||
{
|
||||
"alias": null,
|
||||
"args": null,
|
||||
"concreteType": "NonDisclosureAgreement",
|
||||
"kind": "LinkedField",
|
||||
"name": "nonDisclosureAgreement",
|
||||
"plural": false,
|
||||
"selections": [
|
||||
(v7/*: any*/),
|
||||
(v8/*: any*/),
|
||||
{
|
||||
"alias": null,
|
||||
"args": null,
|
||||
"concreteType": "ElectronicSignature",
|
||||
"kind": "LinkedField",
|
||||
"name": "viewerSignature",
|
||||
"plural": false,
|
||||
"selections": [
|
||||
(v9/*: any*/)
|
||||
],
|
||||
"storageKey": null
|
||||
}
|
||||
],
|
||||
"storageKey": null
|
||||
},
|
||||
{
|
||||
"alias": null,
|
||||
"args": null,
|
||||
"concreteType": "Organization",
|
||||
"kind": "LinkedField",
|
||||
"name": "organization",
|
||||
"plural": false,
|
||||
"selections": [
|
||||
(v10/*: any*/),
|
||||
(v11/*: any*/),
|
||||
(v12/*: any*/),
|
||||
(v0/*: any*/),
|
||||
(v13/*: any*/)
|
||||
],
|
||||
"storageKey": null
|
||||
},
|
||||
{
|
||||
"args": null,
|
||||
"kind": "FragmentSpread",
|
||||
"name": "OverviewPageFragment"
|
||||
},
|
||||
(v14/*: any*/),
|
||||
{
|
||||
"alias": null,
|
||||
"args": (v15/*: any*/),
|
||||
"concreteType": "AuditConnection",
|
||||
"kind": "LinkedField",
|
||||
"name": "audits",
|
||||
"plural": false,
|
||||
"selections": [
|
||||
{
|
||||
"alias": null,
|
||||
"args": null,
|
||||
"concreteType": "AuditEdge",
|
||||
"kind": "LinkedField",
|
||||
"name": "edges",
|
||||
"plural": true,
|
||||
"selections": [
|
||||
{
|
||||
"alias": null,
|
||||
"args": null,
|
||||
"concreteType": "Audit",
|
||||
"kind": "LinkedField",
|
||||
"name": "node",
|
||||
"plural": false,
|
||||
"selections": [
|
||||
(v2/*: any*/),
|
||||
{
|
||||
"args": null,
|
||||
"kind": "FragmentSpread",
|
||||
"name": "AuditRowFragment"
|
||||
}
|
||||
],
|
||||
"storageKey": null
|
||||
}
|
||||
],
|
||||
"storageKey": null
|
||||
}
|
||||
],
|
||||
"storageKey": "audits(first:50)"
|
||||
}
|
||||
],
|
||||
"storageKey": null
|
||||
"kind": "RequiredField",
|
||||
"field": {
|
||||
"alias": null,
|
||||
"args": null,
|
||||
"concreteType": "TrustCenter",
|
||||
"kind": "LinkedField",
|
||||
"name": "currentTrustCenter",
|
||||
"plural": false,
|
||||
"selections": [
|
||||
(v2/*: any*/),
|
||||
(v3/*: any*/),
|
||||
(v4/*: any*/),
|
||||
(v5/*: any*/),
|
||||
(v6/*: any*/),
|
||||
{
|
||||
"alias": null,
|
||||
"args": null,
|
||||
"concreteType": "NonDisclosureAgreement",
|
||||
"kind": "LinkedField",
|
||||
"name": "nonDisclosureAgreement",
|
||||
"plural": false,
|
||||
"selections": [
|
||||
(v7/*: any*/),
|
||||
(v8/*: any*/),
|
||||
{
|
||||
"alias": null,
|
||||
"args": null,
|
||||
"concreteType": "ElectronicSignature",
|
||||
"kind": "LinkedField",
|
||||
"name": "viewerSignature",
|
||||
"plural": false,
|
||||
"selections": [
|
||||
(v9/*: any*/)
|
||||
],
|
||||
"storageKey": null
|
||||
}
|
||||
],
|
||||
"storageKey": null
|
||||
},
|
||||
{
|
||||
"alias": null,
|
||||
"args": null,
|
||||
"concreteType": "Organization",
|
||||
"kind": "LinkedField",
|
||||
"name": "organization",
|
||||
"plural": false,
|
||||
"selections": [
|
||||
(v10/*: any*/),
|
||||
(v11/*: any*/),
|
||||
(v12/*: any*/),
|
||||
(v0/*: any*/),
|
||||
(v13/*: any*/)
|
||||
],
|
||||
"storageKey": null
|
||||
},
|
||||
{
|
||||
"args": null,
|
||||
"kind": "FragmentSpread",
|
||||
"name": "OverviewPageFragment"
|
||||
},
|
||||
(v14/*: any*/),
|
||||
{
|
||||
"alias": null,
|
||||
"args": (v15/*: any*/),
|
||||
"concreteType": "AuditConnection",
|
||||
"kind": "LinkedField",
|
||||
"name": "audits",
|
||||
"plural": false,
|
||||
"selections": [
|
||||
{
|
||||
"alias": null,
|
||||
"args": null,
|
||||
"concreteType": "AuditEdge",
|
||||
"kind": "LinkedField",
|
||||
"name": "edges",
|
||||
"plural": true,
|
||||
"selections": [
|
||||
{
|
||||
"alias": null,
|
||||
"args": null,
|
||||
"concreteType": "Audit",
|
||||
"kind": "LinkedField",
|
||||
"name": "node",
|
||||
"plural": false,
|
||||
"selections": [
|
||||
(v2/*: any*/),
|
||||
{
|
||||
"args": null,
|
||||
"kind": "FragmentSpread",
|
||||
"name": "AuditRowFragment"
|
||||
}
|
||||
],
|
||||
"storageKey": null
|
||||
}
|
||||
],
|
||||
"storageKey": null
|
||||
}
|
||||
],
|
||||
"storageKey": "audits(first:50)"
|
||||
}
|
||||
],
|
||||
"storageKey": null
|
||||
},
|
||||
"action": "THROW"
|
||||
}
|
||||
],
|
||||
"type": "Query",
|
||||
@@ -702,6 +706,6 @@ return {
|
||||
};
|
||||
})();
|
||||
|
||||
(node as any).hash = "6cbe676214b698d12e2cae08060a7285";
|
||||
(node as any).hash = "64b166174da80cd3082ab4becf716b1c";
|
||||
|
||||
export default node;
|
||||
|
||||
@@ -769,7 +769,7 @@ type Mutation {
|
||||
input: ExportTrustCenterFileInput!
|
||||
): ExportTrustCenterFilePayload! @session(required: OPTIONAL)
|
||||
|
||||
requestDocumentAccess(
|
||||
requestDocumentAccess(
|
||||
input: RequestDocumentAccessInput!
|
||||
): RequestAccessesPayload! @session(required: PRESENT)
|
||||
|
||||
|
||||
@@ -2076,7 +2076,7 @@ type Mutation {
|
||||
input: ExportTrustCenterFileInput!
|
||||
): ExportTrustCenterFilePayload! @session(required: OPTIONAL)
|
||||
|
||||
requestDocumentAccess(
|
||||
requestDocumentAccess(
|
||||
input: RequestDocumentAccessInput!
|
||||
): RequestAccessesPayload! @session(required: PRESENT)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user