Fix request mutations on complete store updates

Signed-off-by: Émile Ré <emile@getprobo.com>
This commit is contained in:
Émile Ré
2026-03-03 22:06:25 +04:00
parent 5703bccc9a
commit a160dc1f47
20 changed files with 1600 additions and 525 deletions

View File

@@ -1,5 +1,5 @@
/**
* @generated SignedSource<<6b6304c9a22de890f171632f8c9dabe1>>
* @generated SignedSource<<aae03fb419e3ef00b45151ceeb0988cd>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -9,6 +9,7 @@
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type DocumentAccessStatus = "GRANTED" | "REJECTED" | "REQUESTED" | "REVOKED";
export type RequestDocumentAccessInput = {
documentId: string;
};
@@ -17,9 +18,12 @@ export type useRequestAccessCallback_documentMutation$variables = {
};
export type useRequestAccessCallback_documentMutation$data = {
readonly requestDocumentAccess: {
readonly trustCenterAccess: {
readonly id: string;
};
readonly document: {
readonly access: {
readonly id: string;
readonly status: DocumentAccessStatus;
} | null | undefined;
} | null | undefined;
};
};
export type useRequestAccessCallback_documentMutation = {
@@ -37,48 +41,68 @@ var v0 = [
],
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
"kind": "Variable",
"name": "input",
"variableName": "input"
}
];
],
v2 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
v3 = {
"alias": null,
"args": null,
"concreteType": "DocumentAccess",
"kind": "LinkedField",
"name": "access",
"plural": false,
"selections": [
(v2/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "status",
"storageKey": null
}
],
"storageKey": null
};
return {
"fragment": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Fragment",
"metadata": null,
"name": "useRequestAccessCallback_documentMutation",
"selections": (v1/*: any*/),
"selections": [
{
"alias": null,
"args": (v1/*: any*/),
"concreteType": "RequestDocumentAccessPayload",
"kind": "LinkedField",
"name": "requestDocumentAccess",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Document",
"kind": "LinkedField",
"name": "document",
"plural": false,
"selections": [
(v3/*: any*/)
],
"storageKey": null
}
],
"storageKey": null
}
],
"type": "Mutation",
"abstractKey": null
},
@@ -87,19 +111,44 @@ return {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "useRequestAccessCallback_documentMutation",
"selections": (v1/*: any*/)
"selections": [
{
"alias": null,
"args": (v1/*: any*/),
"concreteType": "RequestDocumentAccessPayload",
"kind": "LinkedField",
"name": "requestDocumentAccess",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Document",
"kind": "LinkedField",
"name": "document",
"plural": false,
"selections": [
(v3/*: any*/),
(v2/*: any*/)
],
"storageKey": null
}
],
"storageKey": null
}
]
},
"params": {
"cacheID": "849ea6a746660bdee8ebf805baef7a33",
"cacheID": "e3153093fd3da3f95ac5bc98a09163a7",
"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"
"text": "mutation useRequestAccessCallback_documentMutation(\n $input: RequestDocumentAccessInput!\n) {\n requestDocumentAccess(input: $input) {\n document {\n access {\n id\n status\n }\n id\n }\n }\n}\n"
}
};
})();
(node as any).hash = "1ff8b5f560d8c3024e6d5c11bb2ed889";
(node as any).hash = "afc533a5d5b764f81f6bc7632f1614ff";
export default node;

View File

@@ -1,5 +1,5 @@
/**
* @generated SignedSource<<6db2a4322199d638b3f1ac498ecd066b>>
* @generated SignedSource<<688bb06b7534c867b9427a6fcbb52d57>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -9,6 +9,7 @@
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type DocumentAccessStatus = "GRANTED" | "REJECTED" | "REQUESTED" | "REVOKED";
export type RequestTrustCenterFileAccessInput = {
trustCenterFileId: string;
};
@@ -17,9 +18,12 @@ export type useRequestAccessCallback_fileMutation$variables = {
};
export type useRequestAccessCallback_fileMutation$data = {
readonly requestTrustCenterFileAccess: {
readonly trustCenterAccess: {
readonly id: string;
};
readonly file: {
readonly access: {
readonly id: string;
readonly status: DocumentAccessStatus;
} | null | undefined;
} | null | undefined;
};
};
export type useRequestAccessCallback_fileMutation = {
@@ -37,48 +41,68 @@ var v0 = [
],
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
"kind": "Variable",
"name": "input",
"variableName": "input"
}
];
],
v2 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
v3 = {
"alias": null,
"args": null,
"concreteType": "DocumentAccess",
"kind": "LinkedField",
"name": "access",
"plural": false,
"selections": [
(v2/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "status",
"storageKey": null
}
],
"storageKey": null
};
return {
"fragment": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Fragment",
"metadata": null,
"name": "useRequestAccessCallback_fileMutation",
"selections": (v1/*: any*/),
"selections": [
{
"alias": null,
"args": (v1/*: any*/),
"concreteType": "RequestFileAccessPayload",
"kind": "LinkedField",
"name": "requestTrustCenterFileAccess",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "TrustCenterFile",
"kind": "LinkedField",
"name": "file",
"plural": false,
"selections": [
(v3/*: any*/)
],
"storageKey": null
}
],
"storageKey": null
}
],
"type": "Mutation",
"abstractKey": null
},
@@ -87,19 +111,44 @@ return {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "useRequestAccessCallback_fileMutation",
"selections": (v1/*: any*/)
"selections": [
{
"alias": null,
"args": (v1/*: any*/),
"concreteType": "RequestFileAccessPayload",
"kind": "LinkedField",
"name": "requestTrustCenterFileAccess",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "TrustCenterFile",
"kind": "LinkedField",
"name": "file",
"plural": false,
"selections": [
(v3/*: any*/),
(v2/*: any*/)
],
"storageKey": null
}
],
"storageKey": null
}
]
},
"params": {
"cacheID": "1ed0d9f8a3b3dc08c2af16101729d3a9",
"cacheID": "0c66e592bdb92aa92fbaef21c8133e17",
"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"
"text": "mutation useRequestAccessCallback_fileMutation(\n $input: RequestTrustCenterFileAccessInput!\n) {\n requestTrustCenterFileAccess(input: $input) {\n file {\n access {\n id\n status\n }\n id\n }\n }\n}\n"
}
};
})();
(node as any).hash = "5105b60de987b135523ada9ee2777dea";
(node as any).hash = "0dbe835b29f81d086b94cfecb8fc832f";
export default node;

View File

@@ -1,5 +1,5 @@
/**
* @generated SignedSource<<d36c3f435afa928b80d415bd53786d81>>
* @generated SignedSource<<b995c7259ba7df94fbdc49770ec83a92>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -9,6 +9,7 @@
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type DocumentAccessStatus = "GRANTED" | "REJECTED" | "REQUESTED" | "REVOKED";
export type RequestReportAccessInput = {
reportId: string;
};
@@ -17,9 +18,14 @@ export type useRequestAccessCallback_reportMutation$variables = {
};
export type useRequestAccessCallback_reportMutation$data = {
readonly requestReportAccess: {
readonly trustCenterAccess: {
readonly id: string;
};
readonly audit: {
readonly report: {
readonly access: {
readonly id: string;
readonly status: DocumentAccessStatus;
} | null | undefined;
} | null | undefined;
} | null | undefined;
};
};
export type useRequestAccessCallback_reportMutation = {
@@ -37,48 +43,79 @@ var v0 = [
],
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
"kind": "Variable",
"name": "input",
"variableName": "input"
}
];
],
v2 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
v3 = {
"alias": null,
"args": null,
"concreteType": "DocumentAccess",
"kind": "LinkedField",
"name": "access",
"plural": false,
"selections": [
(v2/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "status",
"storageKey": null
}
],
"storageKey": null
};
return {
"fragment": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Fragment",
"metadata": null,
"name": "useRequestAccessCallback_reportMutation",
"selections": (v1/*: any*/),
"selections": [
{
"alias": null,
"args": (v1/*: any*/),
"concreteType": "RequestReportAccessPayload",
"kind": "LinkedField",
"name": "requestReportAccess",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Audit",
"kind": "LinkedField",
"name": "audit",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Report",
"kind": "LinkedField",
"name": "report",
"plural": false,
"selections": [
(v3/*: any*/)
],
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
}
],
"type": "Mutation",
"abstractKey": null
},
@@ -87,19 +124,56 @@ return {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "useRequestAccessCallback_reportMutation",
"selections": (v1/*: any*/)
"selections": [
{
"alias": null,
"args": (v1/*: any*/),
"concreteType": "RequestReportAccessPayload",
"kind": "LinkedField",
"name": "requestReportAccess",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Audit",
"kind": "LinkedField",
"name": "audit",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Report",
"kind": "LinkedField",
"name": "report",
"plural": false,
"selections": [
(v3/*: any*/),
(v2/*: any*/)
],
"storageKey": null
},
(v2/*: any*/)
],
"storageKey": null
}
],
"storageKey": null
}
]
},
"params": {
"cacheID": "c859384ca219b8302245e0bed292e698",
"cacheID": "82539e9ad64aa2bd9e5bd2cac4597f23",
"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"
"text": "mutation useRequestAccessCallback_reportMutation(\n $input: RequestReportAccessInput!\n) {\n requestReportAccess(input: $input) {\n audit {\n report {\n access {\n id\n status\n }\n id\n }\n id\n }\n }\n}\n"
}
};
})();
(node as any).hash = "6ad61c2f6638f5d31c9c25b0044f080a";
(node as any).hash = "6b07d19642a0227f76f81bb64dac82ea";
export default node;

View File

@@ -3,7 +3,7 @@ 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 { useLocation, useSearchParams } from "react-router";
import { graphql } from "relay-runtime";
import type { useRequestAccessCallback_allMutation } from "./__generated__/useRequestAccessCallback_allMutation.graphql";
@@ -16,8 +16,11 @@ const documentMutation = graphql`
$input: RequestDocumentAccessInput!
) {
requestDocumentAccess(input: $input) {
trustCenterAccess {
id
document {
access {
id
status
}
}
}
}
@@ -28,8 +31,13 @@ const reportMutation = graphql`
$input: RequestReportAccessInput!
) {
requestReportAccess(input: $input) {
trustCenterAccess {
id
audit {
report {
access {
id
status
}
}
}
}
}
@@ -40,8 +48,11 @@ const fileMutation = graphql`
$input: RequestTrustCenterFileAccessInput!
) {
requestTrustCenterFileAccess(input: $input) {
trustCenterAccess {
id
file {
access {
id
status
}
}
}
}
@@ -75,6 +86,7 @@ function successToastArgs(__: (s: string) => string) {
export function useRequestAccessCallback() {
const [searchParams, setSearchParams] = useSearchParams();
const location = useLocation();
const documentId = searchParams.get("request-document-id");
const reportId = searchParams.get("request-report-id");
@@ -173,6 +185,7 @@ export function useRequestAccessCallback() {
toast(successToastArgs(__));
searchParams.delete("request-all");
setSearchParams(searchParams);
window.location.href = location.pathname;
},
onError: (error) => {
toast(errorToastArgs(__, error));
@@ -194,5 +207,6 @@ export function useRequestAccessCallback() {
searchParams,
setSearchParams,
toast,
location,
]);
}