Refactor compliance page documents page
Signed-off-by: Émile Ré <emile@getprobo.com>
This commit is contained in:
116
apps/console/src/__generated__/core/CompliancePageDocumentListFragment.graphql.ts
generated
Normal file
116
apps/console/src/__generated__/core/CompliancePageDocumentListFragment.graphql.ts
generated
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
/**
|
||||||
|
* @generated SignedSource<<520e633d06f7c68a9270600108ec81da>>
|
||||||
|
* @lightSyntaxTransform
|
||||||
|
* @nogrep
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* tslint:disable */
|
||||||
|
/* eslint-disable */
|
||||||
|
// @ts-nocheck
|
||||||
|
|
||||||
|
import { ReaderFragment } from 'relay-runtime';
|
||||||
|
import { FragmentRefs } from "relay-runtime";
|
||||||
|
export type CompliancePageDocumentListFragment$data = {
|
||||||
|
readonly compliancePage: {
|
||||||
|
readonly " $fragmentSpreads": FragmentRefs<"CompliancePageDocumentListItem_compliancePageFragment">;
|
||||||
|
};
|
||||||
|
readonly documents: {
|
||||||
|
readonly edges: ReadonlyArray<{
|
||||||
|
readonly node: {
|
||||||
|
readonly id: string;
|
||||||
|
readonly " $fragmentSpreads": FragmentRefs<"CompliancePageDocumentListItem_documentFragment">;
|
||||||
|
};
|
||||||
|
}>;
|
||||||
|
};
|
||||||
|
readonly " $fragmentType": "CompliancePageDocumentListFragment";
|
||||||
|
};
|
||||||
|
export type CompliancePageDocumentListFragment$key = {
|
||||||
|
readonly " $data"?: CompliancePageDocumentListFragment$data;
|
||||||
|
readonly " $fragmentSpreads": FragmentRefs<"CompliancePageDocumentListFragment">;
|
||||||
|
};
|
||||||
|
|
||||||
|
const node: ReaderFragment = {
|
||||||
|
"argumentDefinitions": [],
|
||||||
|
"kind": "Fragment",
|
||||||
|
"metadata": null,
|
||||||
|
"name": "CompliancePageDocumentListFragment",
|
||||||
|
"selections": [
|
||||||
|
{
|
||||||
|
"kind": "RequiredField",
|
||||||
|
"field": {
|
||||||
|
"alias": "compliancePage",
|
||||||
|
"args": null,
|
||||||
|
"concreteType": "TrustCenter",
|
||||||
|
"kind": "LinkedField",
|
||||||
|
"name": "trustCenter",
|
||||||
|
"plural": false,
|
||||||
|
"selections": [
|
||||||
|
{
|
||||||
|
"args": null,
|
||||||
|
"kind": "FragmentSpread",
|
||||||
|
"name": "CompliancePageDocumentListItem_compliancePageFragment"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"storageKey": null
|
||||||
|
},
|
||||||
|
"action": "THROW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"alias": null,
|
||||||
|
"args": [
|
||||||
|
{
|
||||||
|
"kind": "Literal",
|
||||||
|
"name": "first",
|
||||||
|
"value": 1000
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"concreteType": "DocumentConnection",
|
||||||
|
"kind": "LinkedField",
|
||||||
|
"name": "documents",
|
||||||
|
"plural": false,
|
||||||
|
"selections": [
|
||||||
|
{
|
||||||
|
"alias": null,
|
||||||
|
"args": null,
|
||||||
|
"concreteType": "DocumentEdge",
|
||||||
|
"kind": "LinkedField",
|
||||||
|
"name": "edges",
|
||||||
|
"plural": true,
|
||||||
|
"selections": [
|
||||||
|
{
|
||||||
|
"alias": null,
|
||||||
|
"args": null,
|
||||||
|
"concreteType": "Document",
|
||||||
|
"kind": "LinkedField",
|
||||||
|
"name": "node",
|
||||||
|
"plural": false,
|
||||||
|
"selections": [
|
||||||
|
{
|
||||||
|
"alias": null,
|
||||||
|
"args": null,
|
||||||
|
"kind": "ScalarField",
|
||||||
|
"name": "id",
|
||||||
|
"storageKey": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"args": null,
|
||||||
|
"kind": "FragmentSpread",
|
||||||
|
"name": "CompliancePageDocumentListItem_documentFragment"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"storageKey": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"storageKey": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"storageKey": "documents(first:1000)"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "Organization",
|
||||||
|
"abstractKey": null
|
||||||
|
};
|
||||||
|
|
||||||
|
(node as any).hash = "10da8f0838c700d4a2535ec5193844a8";
|
||||||
|
|
||||||
|
export default node;
|
||||||
48
apps/console/src/__generated__/core/CompliancePageDocumentListItem_compliancePageFragment.graphql.ts
generated
Normal file
48
apps/console/src/__generated__/core/CompliancePageDocumentListItem_compliancePageFragment.graphql.ts
generated
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
/**
|
||||||
|
* @generated SignedSource<<24c6b253b4339703abe0106728cb4a6f>>
|
||||||
|
* @lightSyntaxTransform
|
||||||
|
* @nogrep
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* tslint:disable */
|
||||||
|
/* eslint-disable */
|
||||||
|
// @ts-nocheck
|
||||||
|
|
||||||
|
import { ReaderFragment } from 'relay-runtime';
|
||||||
|
import { FragmentRefs } from "relay-runtime";
|
||||||
|
export type CompliancePageDocumentListItem_compliancePageFragment$data = {
|
||||||
|
readonly canUpdate: boolean;
|
||||||
|
readonly " $fragmentType": "CompliancePageDocumentListItem_compliancePageFragment";
|
||||||
|
};
|
||||||
|
export type CompliancePageDocumentListItem_compliancePageFragment$key = {
|
||||||
|
readonly " $data"?: CompliancePageDocumentListItem_compliancePageFragment$data;
|
||||||
|
readonly " $fragmentSpreads": FragmentRefs<"CompliancePageDocumentListItem_compliancePageFragment">;
|
||||||
|
};
|
||||||
|
|
||||||
|
const node: ReaderFragment = {
|
||||||
|
"argumentDefinitions": [],
|
||||||
|
"kind": "Fragment",
|
||||||
|
"metadata": null,
|
||||||
|
"name": "CompliancePageDocumentListItem_compliancePageFragment",
|
||||||
|
"selections": [
|
||||||
|
{
|
||||||
|
"alias": "canUpdate",
|
||||||
|
"args": [
|
||||||
|
{
|
||||||
|
"kind": "Literal",
|
||||||
|
"name": "action",
|
||||||
|
"value": "core:trust-center:update"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"kind": "ScalarField",
|
||||||
|
"name": "permission",
|
||||||
|
"storageKey": "permission(action:\"core:trust-center:update\")"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "TrustCenter",
|
||||||
|
"abstractKey": null
|
||||||
|
};
|
||||||
|
|
||||||
|
(node as any).hash = "7c884fb02ab6613707d02aa44c547ac7";
|
||||||
|
|
||||||
|
export default node;
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<ef7a2d6e28f14d4b48c27c6db864b876>>
|
* @generated SignedSource<<112e917e3fb881859a56b794f07ce7e7>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -13,13 +13,10 @@ export type DocumentStatus = "DRAFT" | "PUBLISHED";
|
|||||||
export type DocumentType = "ISMS" | "OTHER" | "POLICY" | "PROCEDURE";
|
export type DocumentType = "ISMS" | "OTHER" | "POLICY" | "PROCEDURE";
|
||||||
export type TrustCenterVisibility = "NONE" | "PRIVATE" | "PUBLIC";
|
export type TrustCenterVisibility = "NONE" | "PRIVATE" | "PUBLIC";
|
||||||
import { FragmentRefs } from "relay-runtime";
|
import { FragmentRefs } from "relay-runtime";
|
||||||
export type TrustCenterDocumentsCardFragment$data = {
|
export type CompliancePageDocumentListItem_documentFragment$data = {
|
||||||
readonly createdAt: string;
|
|
||||||
readonly documentType: DocumentType;
|
readonly documentType: DocumentType;
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
readonly title: string;
|
readonly lastVersion: {
|
||||||
readonly trustCenterVisibility: TrustCenterVisibility;
|
|
||||||
readonly versions: {
|
|
||||||
readonly edges: ReadonlyArray<{
|
readonly edges: ReadonlyArray<{
|
||||||
readonly node: {
|
readonly node: {
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
@@ -27,11 +24,13 @@ export type TrustCenterDocumentsCardFragment$data = {
|
|||||||
};
|
};
|
||||||
}>;
|
}>;
|
||||||
};
|
};
|
||||||
readonly " $fragmentType": "TrustCenterDocumentsCardFragment";
|
readonly title: string;
|
||||||
|
readonly trustCenterVisibility: TrustCenterVisibility;
|
||||||
|
readonly " $fragmentType": "CompliancePageDocumentListItem_documentFragment";
|
||||||
};
|
};
|
||||||
export type TrustCenterDocumentsCardFragment$key = {
|
export type CompliancePageDocumentListItem_documentFragment$key = {
|
||||||
readonly " $data"?: TrustCenterDocumentsCardFragment$data;
|
readonly " $data"?: CompliancePageDocumentListItem_documentFragment$data;
|
||||||
readonly " $fragmentSpreads": FragmentRefs<"TrustCenterDocumentsCardFragment">;
|
readonly " $fragmentSpreads": FragmentRefs<"CompliancePageDocumentListItem_documentFragment">;
|
||||||
};
|
};
|
||||||
|
|
||||||
const node: ReaderFragment = (function(){
|
const node: ReaderFragment = (function(){
|
||||||
@@ -46,23 +45,9 @@ return {
|
|||||||
"argumentDefinitions": [],
|
"argumentDefinitions": [],
|
||||||
"kind": "Fragment",
|
"kind": "Fragment",
|
||||||
"metadata": null,
|
"metadata": null,
|
||||||
"name": "TrustCenterDocumentsCardFragment",
|
"name": "CompliancePageDocumentListItem_documentFragment",
|
||||||
"selections": [
|
"selections": [
|
||||||
(v0/*: any*/),
|
(v0/*: any*/),
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": null,
|
|
||||||
"kind": "ScalarField",
|
|
||||||
"name": "title",
|
|
||||||
"storageKey": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": null,
|
|
||||||
"kind": "ScalarField",
|
|
||||||
"name": "createdAt",
|
|
||||||
"storageKey": null
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"alias": null,
|
"alias": null,
|
||||||
"args": null,
|
"args": null,
|
||||||
@@ -74,16 +59,31 @@ return {
|
|||||||
"alias": null,
|
"alias": null,
|
||||||
"args": null,
|
"args": null,
|
||||||
"kind": "ScalarField",
|
"kind": "ScalarField",
|
||||||
"name": "trustCenterVisibility",
|
"name": "title",
|
||||||
"storageKey": null
|
"storageKey": null
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"alias": null,
|
"alias": null,
|
||||||
|
"args": null,
|
||||||
|
"kind": "ScalarField",
|
||||||
|
"name": "trustCenterVisibility",
|
||||||
|
"storageKey": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"alias": "lastVersion",
|
||||||
"args": [
|
"args": [
|
||||||
{
|
{
|
||||||
"kind": "Literal",
|
"kind": "Literal",
|
||||||
"name": "first",
|
"name": "first",
|
||||||
"value": 1
|
"value": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"kind": "Literal",
|
||||||
|
"name": "orderBy",
|
||||||
|
"value": {
|
||||||
|
"direction": "DESC",
|
||||||
|
"field": "CREATED_AT"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"concreteType": "DocumentVersionConnection",
|
"concreteType": "DocumentVersionConnection",
|
||||||
@@ -122,7 +122,7 @@ return {
|
|||||||
"storageKey": null
|
"storageKey": null
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"storageKey": "versions(first:1)"
|
"storageKey": "versions(first:1,orderBy:{\"direction\":\"DESC\",\"field\":\"CREATED_AT\"})"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"type": "Document",
|
"type": "Document",
|
||||||
@@ -130,6 +130,6 @@ return {
|
|||||||
};
|
};
|
||||||
})();
|
})();
|
||||||
|
|
||||||
(node as any).hash = "a90715444be8a289eae6615ce44e244d";
|
(node as any).hash = "ab2b10ffbd76c59d1a3facab0f794402";
|
||||||
|
|
||||||
export default node;
|
export default node;
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<383c2d6a9d25911bb5df8c148a8a3e51>>
|
* @generated SignedSource<<499820c9df6a66e5a4969b593e6f257c>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -22,21 +22,19 @@ export type UpdateDocumentInput = {
|
|||||||
title?: string | null | undefined;
|
title?: string | null | undefined;
|
||||||
trustCenterVisibility?: TrustCenterVisibility | null | undefined;
|
trustCenterVisibility?: TrustCenterVisibility | null | undefined;
|
||||||
};
|
};
|
||||||
export type TrustCenterDocumentGraphUpdateMutation$variables = {
|
export type CompliancePageDocumentListItem_updateVisibilityMutation$variables = {
|
||||||
input: UpdateDocumentInput;
|
input: UpdateDocumentInput;
|
||||||
};
|
};
|
||||||
export type TrustCenterDocumentGraphUpdateMutation$data = {
|
export type CompliancePageDocumentListItem_updateVisibilityMutation$data = {
|
||||||
readonly updateDocument: {
|
readonly updateDocument: {
|
||||||
readonly document: {
|
readonly document: {
|
||||||
readonly id: string;
|
readonly " $fragmentSpreads": FragmentRefs<"CompliancePageDocumentListItem_documentFragment">;
|
||||||
readonly trustCenterVisibility: TrustCenterVisibility;
|
|
||||||
readonly " $fragmentSpreads": FragmentRefs<"TrustCenterDocumentsCardFragment">;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
export type TrustCenterDocumentGraphUpdateMutation = {
|
export type CompliancePageDocumentListItem_updateVisibilityMutation = {
|
||||||
response: TrustCenterDocumentGraphUpdateMutation$data;
|
response: CompliancePageDocumentListItem_updateVisibilityMutation$data;
|
||||||
variables: TrustCenterDocumentGraphUpdateMutation$variables;
|
variables: CompliancePageDocumentListItem_updateVisibilityMutation$variables;
|
||||||
};
|
};
|
||||||
|
|
||||||
const node: ConcreteRequest = (function(){
|
const node: ConcreteRequest = (function(){
|
||||||
@@ -60,20 +58,13 @@ v2 = {
|
|||||||
"kind": "ScalarField",
|
"kind": "ScalarField",
|
||||||
"name": "id",
|
"name": "id",
|
||||||
"storageKey": null
|
"storageKey": null
|
||||||
},
|
|
||||||
v3 = {
|
|
||||||
"alias": null,
|
|
||||||
"args": null,
|
|
||||||
"kind": "ScalarField",
|
|
||||||
"name": "trustCenterVisibility",
|
|
||||||
"storageKey": null
|
|
||||||
};
|
};
|
||||||
return {
|
return {
|
||||||
"fragment": {
|
"fragment": {
|
||||||
"argumentDefinitions": (v0/*: any*/),
|
"argumentDefinitions": (v0/*: any*/),
|
||||||
"kind": "Fragment",
|
"kind": "Fragment",
|
||||||
"metadata": null,
|
"metadata": null,
|
||||||
"name": "TrustCenterDocumentGraphUpdateMutation",
|
"name": "CompliancePageDocumentListItem_updateVisibilityMutation",
|
||||||
"selections": [
|
"selections": [
|
||||||
{
|
{
|
||||||
"alias": null,
|
"alias": null,
|
||||||
@@ -91,12 +82,10 @@ return {
|
|||||||
"name": "document",
|
"name": "document",
|
||||||
"plural": false,
|
"plural": false,
|
||||||
"selections": [
|
"selections": [
|
||||||
(v2/*: any*/),
|
|
||||||
(v3/*: any*/),
|
|
||||||
{
|
{
|
||||||
"args": null,
|
"args": null,
|
||||||
"kind": "FragmentSpread",
|
"kind": "FragmentSpread",
|
||||||
"name": "TrustCenterDocumentsCardFragment"
|
"name": "CompliancePageDocumentListItem_documentFragment"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"storageKey": null
|
"storageKey": null
|
||||||
@@ -112,7 +101,7 @@ return {
|
|||||||
"operation": {
|
"operation": {
|
||||||
"argumentDefinitions": (v0/*: any*/),
|
"argumentDefinitions": (v0/*: any*/),
|
||||||
"kind": "Operation",
|
"kind": "Operation",
|
||||||
"name": "TrustCenterDocumentGraphUpdateMutation",
|
"name": "CompliancePageDocumentListItem_updateVisibilityMutation",
|
||||||
"selections": [
|
"selections": [
|
||||||
{
|
{
|
||||||
"alias": null,
|
"alias": null,
|
||||||
@@ -131,7 +120,13 @@ return {
|
|||||||
"plural": false,
|
"plural": false,
|
||||||
"selections": [
|
"selections": [
|
||||||
(v2/*: any*/),
|
(v2/*: any*/),
|
||||||
(v3/*: any*/),
|
{
|
||||||
|
"alias": null,
|
||||||
|
"args": null,
|
||||||
|
"kind": "ScalarField",
|
||||||
|
"name": "documentType",
|
||||||
|
"storageKey": null
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"alias": null,
|
"alias": null,
|
||||||
"args": null,
|
"args": null,
|
||||||
@@ -143,23 +138,24 @@ return {
|
|||||||
"alias": null,
|
"alias": null,
|
||||||
"args": null,
|
"args": null,
|
||||||
"kind": "ScalarField",
|
"kind": "ScalarField",
|
||||||
"name": "createdAt",
|
"name": "trustCenterVisibility",
|
||||||
"storageKey": null
|
"storageKey": null
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"alias": null,
|
"alias": "lastVersion",
|
||||||
"args": null,
|
|
||||||
"kind": "ScalarField",
|
|
||||||
"name": "documentType",
|
|
||||||
"storageKey": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": [
|
"args": [
|
||||||
{
|
{
|
||||||
"kind": "Literal",
|
"kind": "Literal",
|
||||||
"name": "first",
|
"name": "first",
|
||||||
"value": 1
|
"value": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"kind": "Literal",
|
||||||
|
"name": "orderBy",
|
||||||
|
"value": {
|
||||||
|
"direction": "DESC",
|
||||||
|
"field": "CREATED_AT"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"concreteType": "DocumentVersionConnection",
|
"concreteType": "DocumentVersionConnection",
|
||||||
@@ -198,7 +194,7 @@ return {
|
|||||||
"storageKey": null
|
"storageKey": null
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"storageKey": "versions(first:1)"
|
"storageKey": "versions(first:1,orderBy:{\"direction\":\"DESC\",\"field\":\"CREATED_AT\"})"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"storageKey": null
|
"storageKey": null
|
||||||
@@ -209,16 +205,16 @@ return {
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"params": {
|
"params": {
|
||||||
"cacheID": "04cb2a4e83386dfffce8c12eae320cfe",
|
"cacheID": "f72f0dd5039dbfeaa609b7914308c0fe",
|
||||||
"id": null,
|
"id": null,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"name": "TrustCenterDocumentGraphUpdateMutation",
|
"name": "CompliancePageDocumentListItem_updateVisibilityMutation",
|
||||||
"operationKind": "mutation",
|
"operationKind": "mutation",
|
||||||
"text": "mutation TrustCenterDocumentGraphUpdateMutation(\n $input: UpdateDocumentInput!\n) {\n updateDocument(input: $input) {\n document {\n id\n trustCenterVisibility\n ...TrustCenterDocumentsCardFragment\n }\n }\n}\n\nfragment TrustCenterDocumentsCardFragment on Document {\n id\n title\n createdAt\n documentType\n trustCenterVisibility\n versions(first: 1) {\n edges {\n node {\n id\n status\n }\n }\n }\n}\n"
|
"text": "mutation CompliancePageDocumentListItem_updateVisibilityMutation(\n $input: UpdateDocumentInput!\n) {\n updateDocument(input: $input) {\n document {\n ...CompliancePageDocumentListItem_documentFragment\n id\n }\n }\n}\n\nfragment CompliancePageDocumentListItem_documentFragment on Document {\n id\n documentType\n title\n trustCenterVisibility\n lastVersion: versions(first: 1, orderBy: {field: CREATED_AT, direction: DESC}) {\n edges {\n node {\n id\n status\n }\n }\n }\n}\n"
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
})();
|
})();
|
||||||
|
|
||||||
(node as any).hash = "293896dbfec4de53d0fe30a2462f833b";
|
(node as any).hash = "3f49f1e719ba93bc8cc69c483d50e225";
|
||||||
|
|
||||||
export default node;
|
export default node;
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<1135bf3b786a26466e2763cbeecb7b5b>>
|
* @generated SignedSource<<d8855e4115fa54daf8305e6427c8e519>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -10,25 +10,17 @@
|
|||||||
|
|
||||||
import { ConcreteRequest } from 'relay-runtime';
|
import { ConcreteRequest } from 'relay-runtime';
|
||||||
import { FragmentRefs } from "relay-runtime";
|
import { FragmentRefs } from "relay-runtime";
|
||||||
export type TrustCenterDocumentGraphQuery$variables = {
|
export type CompliancePageDocumentsPageQuery$variables = {
|
||||||
organizationId: string;
|
organizationId: string;
|
||||||
};
|
};
|
||||||
export type TrustCenterDocumentGraphQuery$data = {
|
export type CompliancePageDocumentsPageQuery$data = {
|
||||||
readonly organization: {
|
readonly organization: {
|
||||||
readonly documents?: {
|
readonly " $fragmentSpreads": FragmentRefs<"CompliancePageDocumentListFragment">;
|
||||||
readonly edges: ReadonlyArray<{
|
|
||||||
readonly node: {
|
|
||||||
readonly id: string;
|
|
||||||
readonly " $fragmentSpreads": FragmentRefs<"TrustCenterDocumentsCardFragment">;
|
|
||||||
};
|
|
||||||
}>;
|
|
||||||
};
|
|
||||||
readonly id?: string;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
export type TrustCenterDocumentGraphQuery = {
|
export type CompliancePageDocumentsPageQuery = {
|
||||||
response: TrustCenterDocumentGraphQuery$data;
|
response: CompliancePageDocumentsPageQuery$data;
|
||||||
variables: TrustCenterDocumentGraphQuery$variables;
|
variables: CompliancePageDocumentsPageQuery$variables;
|
||||||
};
|
};
|
||||||
|
|
||||||
const node: ConcreteRequest = (function(){
|
const node: ConcreteRequest = (function(){
|
||||||
@@ -52,20 +44,13 @@ v2 = {
|
|||||||
"kind": "ScalarField",
|
"kind": "ScalarField",
|
||||||
"name": "id",
|
"name": "id",
|
||||||
"storageKey": null
|
"storageKey": null
|
||||||
},
|
};
|
||||||
v3 = [
|
|
||||||
{
|
|
||||||
"kind": "Literal",
|
|
||||||
"name": "first",
|
|
||||||
"value": 100
|
|
||||||
}
|
|
||||||
];
|
|
||||||
return {
|
return {
|
||||||
"fragment": {
|
"fragment": {
|
||||||
"argumentDefinitions": (v0/*: any*/),
|
"argumentDefinitions": (v0/*: any*/),
|
||||||
"kind": "Fragment",
|
"kind": "Fragment",
|
||||||
"metadata": null,
|
"metadata": null,
|
||||||
"name": "TrustCenterDocumentGraphQuery",
|
"name": "CompliancePageDocumentsPageQuery",
|
||||||
"selections": [
|
"selections": [
|
||||||
{
|
{
|
||||||
"alias": "organization",
|
"alias": "organization",
|
||||||
@@ -76,51 +61,9 @@ return {
|
|||||||
"plural": false,
|
"plural": false,
|
||||||
"selections": [
|
"selections": [
|
||||||
{
|
{
|
||||||
"kind": "InlineFragment",
|
"args": null,
|
||||||
"selections": [
|
"kind": "FragmentSpread",
|
||||||
(v2/*: any*/),
|
"name": "CompliancePageDocumentListFragment"
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": (v3/*: any*/),
|
|
||||||
"concreteType": "DocumentConnection",
|
|
||||||
"kind": "LinkedField",
|
|
||||||
"name": "documents",
|
|
||||||
"plural": false,
|
|
||||||
"selections": [
|
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": null,
|
|
||||||
"concreteType": "DocumentEdge",
|
|
||||||
"kind": "LinkedField",
|
|
||||||
"name": "edges",
|
|
||||||
"plural": true,
|
|
||||||
"selections": [
|
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": null,
|
|
||||||
"concreteType": "Document",
|
|
||||||
"kind": "LinkedField",
|
|
||||||
"name": "node",
|
|
||||||
"plural": false,
|
|
||||||
"selections": [
|
|
||||||
(v2/*: any*/),
|
|
||||||
{
|
|
||||||
"args": null,
|
|
||||||
"kind": "FragmentSpread",
|
|
||||||
"name": "TrustCenterDocumentsCardFragment"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"storageKey": null
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"storageKey": null
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"storageKey": "documents(first:100)"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"type": "Organization",
|
|
||||||
"abstractKey": null
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"storageKey": null
|
"storageKey": null
|
||||||
@@ -133,7 +76,7 @@ return {
|
|||||||
"operation": {
|
"operation": {
|
||||||
"argumentDefinitions": (v0/*: any*/),
|
"argumentDefinitions": (v0/*: any*/),
|
||||||
"kind": "Operation",
|
"kind": "Operation",
|
||||||
"name": "TrustCenterDocumentGraphQuery",
|
"name": "CompliancePageDocumentsPageQuery",
|
||||||
"selections": [
|
"selections": [
|
||||||
{
|
{
|
||||||
"alias": "organization",
|
"alias": "organization",
|
||||||
@@ -150,13 +93,43 @@ return {
|
|||||||
"name": "__typename",
|
"name": "__typename",
|
||||||
"storageKey": null
|
"storageKey": null
|
||||||
},
|
},
|
||||||
(v2/*: any*/),
|
|
||||||
{
|
{
|
||||||
"kind": "InlineFragment",
|
"kind": "InlineFragment",
|
||||||
"selections": [
|
"selections": [
|
||||||
|
{
|
||||||
|
"alias": "compliancePage",
|
||||||
|
"args": null,
|
||||||
|
"concreteType": "TrustCenter",
|
||||||
|
"kind": "LinkedField",
|
||||||
|
"name": "trustCenter",
|
||||||
|
"plural": false,
|
||||||
|
"selections": [
|
||||||
|
{
|
||||||
|
"alias": "canUpdate",
|
||||||
|
"args": [
|
||||||
|
{
|
||||||
|
"kind": "Literal",
|
||||||
|
"name": "action",
|
||||||
|
"value": "core:trust-center:update"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"kind": "ScalarField",
|
||||||
|
"name": "permission",
|
||||||
|
"storageKey": "permission(action:\"core:trust-center:update\")"
|
||||||
|
},
|
||||||
|
(v2/*: any*/)
|
||||||
|
],
|
||||||
|
"storageKey": null
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"alias": null,
|
"alias": null,
|
||||||
"args": (v3/*: any*/),
|
"args": [
|
||||||
|
{
|
||||||
|
"kind": "Literal",
|
||||||
|
"name": "first",
|
||||||
|
"value": 1000
|
||||||
|
}
|
||||||
|
],
|
||||||
"concreteType": "DocumentConnection",
|
"concreteType": "DocumentConnection",
|
||||||
"kind": "LinkedField",
|
"kind": "LinkedField",
|
||||||
"name": "documents",
|
"name": "documents",
|
||||||
@@ -179,20 +152,6 @@ return {
|
|||||||
"plural": false,
|
"plural": false,
|
||||||
"selections": [
|
"selections": [
|
||||||
(v2/*: any*/),
|
(v2/*: any*/),
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": null,
|
|
||||||
"kind": "ScalarField",
|
|
||||||
"name": "title",
|
|
||||||
"storageKey": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": null,
|
|
||||||
"kind": "ScalarField",
|
|
||||||
"name": "createdAt",
|
|
||||||
"storageKey": null
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"alias": null,
|
"alias": null,
|
||||||
"args": null,
|
"args": null,
|
||||||
@@ -200,6 +159,13 @@ return {
|
|||||||
"name": "documentType",
|
"name": "documentType",
|
||||||
"storageKey": null
|
"storageKey": null
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"alias": null,
|
||||||
|
"args": null,
|
||||||
|
"kind": "ScalarField",
|
||||||
|
"name": "title",
|
||||||
|
"storageKey": null
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"alias": null,
|
"alias": null,
|
||||||
"args": null,
|
"args": null,
|
||||||
@@ -208,12 +174,20 @@ return {
|
|||||||
"storageKey": null
|
"storageKey": null
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"alias": null,
|
"alias": "lastVersion",
|
||||||
"args": [
|
"args": [
|
||||||
{
|
{
|
||||||
"kind": "Literal",
|
"kind": "Literal",
|
||||||
"name": "first",
|
"name": "first",
|
||||||
"value": 1
|
"value": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"kind": "Literal",
|
||||||
|
"name": "orderBy",
|
||||||
|
"value": {
|
||||||
|
"direction": "DESC",
|
||||||
|
"field": "CREATED_AT"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"concreteType": "DocumentVersionConnection",
|
"concreteType": "DocumentVersionConnection",
|
||||||
@@ -252,7 +226,7 @@ return {
|
|||||||
"storageKey": null
|
"storageKey": null
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"storageKey": "versions(first:1)"
|
"storageKey": "versions(first:1,orderBy:{\"direction\":\"DESC\",\"field\":\"CREATED_AT\"})"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"storageKey": null
|
"storageKey": null
|
||||||
@@ -261,28 +235,29 @@ return {
|
|||||||
"storageKey": null
|
"storageKey": null
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"storageKey": "documents(first:100)"
|
"storageKey": "documents(first:1000)"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"type": "Organization",
|
"type": "Organization",
|
||||||
"abstractKey": null
|
"abstractKey": null
|
||||||
}
|
},
|
||||||
|
(v2/*: any*/)
|
||||||
],
|
],
|
||||||
"storageKey": null
|
"storageKey": null
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"params": {
|
"params": {
|
||||||
"cacheID": "1df18b182ace4562ffa876b7e8073a22",
|
"cacheID": "675dc82aa65110e99b4ddc51992999c3",
|
||||||
"id": null,
|
"id": null,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"name": "TrustCenterDocumentGraphQuery",
|
"name": "CompliancePageDocumentsPageQuery",
|
||||||
"operationKind": "query",
|
"operationKind": "query",
|
||||||
"text": "query TrustCenterDocumentGraphQuery(\n $organizationId: ID!\n) {\n organization: node(id: $organizationId) {\n __typename\n ... on Organization {\n id\n documents(first: 100) {\n edges {\n node {\n id\n ...TrustCenterDocumentsCardFragment\n }\n }\n }\n }\n id\n }\n}\n\nfragment TrustCenterDocumentsCardFragment on Document {\n id\n title\n createdAt\n documentType\n trustCenterVisibility\n versions(first: 1) {\n edges {\n node {\n id\n status\n }\n }\n }\n}\n"
|
"text": "query CompliancePageDocumentsPageQuery(\n $organizationId: ID!\n) {\n organization: node(id: $organizationId) {\n __typename\n ...CompliancePageDocumentListFragment\n id\n }\n}\n\nfragment CompliancePageDocumentListFragment on Organization {\n compliancePage: trustCenter {\n ...CompliancePageDocumentListItem_compliancePageFragment\n id\n }\n documents(first: 1000) {\n edges {\n node {\n id\n ...CompliancePageDocumentListItem_documentFragment\n }\n }\n }\n}\n\nfragment CompliancePageDocumentListItem_compliancePageFragment on TrustCenter {\n canUpdate: permission(action: \"core:trust-center:update\")\n}\n\nfragment CompliancePageDocumentListItem_documentFragment on Document {\n id\n documentType\n title\n trustCenterVisibility\n lastVersion: versions(first: 1, orderBy: {field: CREATED_AT, direction: DESC}) {\n edges {\n node {\n id\n status\n }\n }\n }\n}\n"
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
})();
|
})();
|
||||||
|
|
||||||
(node as any).hash = "f4e34ac09a2b56c2298bc319d9701f4d";
|
(node as any).hash = "d81c7a5da1810d0e8d7fadb5b8a3766a";
|
||||||
|
|
||||||
export default node;
|
export default node;
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<409b8c7ffaa92ad8d718689cb254228e>>
|
* @generated SignedSource<<0f4473cdf4275afaab6b6825f6b6d546>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -20,27 +20,8 @@ export type TrustCenterGraphQuery$data = {
|
|||||||
readonly domain: string;
|
readonly domain: string;
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
} | null | undefined;
|
} | null | undefined;
|
||||||
readonly documents?: {
|
|
||||||
readonly edges: ReadonlyArray<{
|
|
||||||
readonly node: {
|
|
||||||
readonly id: string;
|
|
||||||
readonly " $fragmentSpreads": FragmentRefs<"TrustCenterDocumentsCardFragment">;
|
|
||||||
};
|
|
||||||
}>;
|
|
||||||
};
|
|
||||||
readonly id?: string;
|
readonly id?: string;
|
||||||
readonly name?: string;
|
readonly name?: string;
|
||||||
readonly slackConnections?: {
|
|
||||||
readonly edges: ReadonlyArray<{
|
|
||||||
readonly node: {
|
|
||||||
readonly channel: string | null | undefined;
|
|
||||||
readonly channelId: string | null | undefined;
|
|
||||||
readonly createdAt: string;
|
|
||||||
readonly id: string;
|
|
||||||
readonly updatedAt: string;
|
|
||||||
};
|
|
||||||
}>;
|
|
||||||
};
|
|
||||||
readonly trustCenter?: {
|
readonly trustCenter?: {
|
||||||
readonly active: boolean;
|
readonly active: boolean;
|
||||||
readonly canCreateAccess: boolean;
|
readonly canCreateAccess: boolean;
|
||||||
@@ -326,63 +307,6 @@ v13 = {
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
v14 = {
|
v14 = {
|
||||||
"alias": null,
|
|
||||||
"args": (v9/*: any*/),
|
|
||||||
"concreteType": "SlackConnectionConnection",
|
|
||||||
"kind": "LinkedField",
|
|
||||||
"name": "slackConnections",
|
|
||||||
"plural": false,
|
|
||||||
"selections": [
|
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": null,
|
|
||||||
"concreteType": "SlackConnectionEdge",
|
|
||||||
"kind": "LinkedField",
|
|
||||||
"name": "edges",
|
|
||||||
"plural": true,
|
|
||||||
"selections": [
|
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": null,
|
|
||||||
"concreteType": "SlackConnection",
|
|
||||||
"kind": "LinkedField",
|
|
||||||
"name": "node",
|
|
||||||
"plural": false,
|
|
||||||
"selections": [
|
|
||||||
(v2/*: any*/),
|
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": null,
|
|
||||||
"kind": "ScalarField",
|
|
||||||
"name": "channel",
|
|
||||||
"storageKey": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": null,
|
|
||||||
"kind": "ScalarField",
|
|
||||||
"name": "channelId",
|
|
||||||
"storageKey": null
|
|
||||||
},
|
|
||||||
(v6/*: any*/),
|
|
||||||
(v7/*: any*/)
|
|
||||||
],
|
|
||||||
"storageKey": null
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"storageKey": null
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"storageKey": "slackConnections(first:100)"
|
|
||||||
},
|
|
||||||
v15 = {
|
|
||||||
"alias": null,
|
|
||||||
"args": null,
|
|
||||||
"kind": "ScalarField",
|
|
||||||
"name": "trustCenterVisibility",
|
|
||||||
"storageKey": null
|
|
||||||
},
|
|
||||||
v16 = {
|
|
||||||
"alias": null,
|
"alias": null,
|
||||||
"args": null,
|
"args": null,
|
||||||
"kind": "ScalarField",
|
"kind": "ScalarField",
|
||||||
@@ -412,45 +336,6 @@ return {
|
|||||||
(v4/*: any*/),
|
(v4/*: any*/),
|
||||||
(v5/*: any*/),
|
(v5/*: any*/),
|
||||||
(v8/*: any*/),
|
(v8/*: any*/),
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": (v9/*: any*/),
|
|
||||||
"concreteType": "DocumentConnection",
|
|
||||||
"kind": "LinkedField",
|
|
||||||
"name": "documents",
|
|
||||||
"plural": false,
|
|
||||||
"selections": [
|
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": null,
|
|
||||||
"concreteType": "DocumentEdge",
|
|
||||||
"kind": "LinkedField",
|
|
||||||
"name": "edges",
|
|
||||||
"plural": true,
|
|
||||||
"selections": [
|
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": null,
|
|
||||||
"concreteType": "Document",
|
|
||||||
"kind": "LinkedField",
|
|
||||||
"name": "node",
|
|
||||||
"plural": false,
|
|
||||||
"selections": [
|
|
||||||
(v2/*: any*/),
|
|
||||||
{
|
|
||||||
"args": null,
|
|
||||||
"kind": "FragmentSpread",
|
|
||||||
"name": "TrustCenterDocumentsCardFragment"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"storageKey": null
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"storageKey": null
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"storageKey": "documents(first:100)"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"alias": null,
|
"alias": null,
|
||||||
"args": (v9/*: any*/),
|
"args": (v9/*: any*/),
|
||||||
@@ -532,8 +417,7 @@ return {
|
|||||||
(v13/*: any*/)
|
(v13/*: any*/)
|
||||||
],
|
],
|
||||||
"storageKey": null
|
"storageKey": null
|
||||||
},
|
}
|
||||||
(v14/*: any*/)
|
|
||||||
],
|
],
|
||||||
"type": "Organization",
|
"type": "Organization",
|
||||||
"abstractKey": null
|
"abstractKey": null
|
||||||
@@ -568,103 +452,6 @@ return {
|
|||||||
(v4/*: any*/),
|
(v4/*: any*/),
|
||||||
(v5/*: any*/),
|
(v5/*: any*/),
|
||||||
(v8/*: any*/),
|
(v8/*: any*/),
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": (v9/*: any*/),
|
|
||||||
"concreteType": "DocumentConnection",
|
|
||||||
"kind": "LinkedField",
|
|
||||||
"name": "documents",
|
|
||||||
"plural": false,
|
|
||||||
"selections": [
|
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": null,
|
|
||||||
"concreteType": "DocumentEdge",
|
|
||||||
"kind": "LinkedField",
|
|
||||||
"name": "edges",
|
|
||||||
"plural": true,
|
|
||||||
"selections": [
|
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": null,
|
|
||||||
"concreteType": "Document",
|
|
||||||
"kind": "LinkedField",
|
|
||||||
"name": "node",
|
|
||||||
"plural": false,
|
|
||||||
"selections": [
|
|
||||||
(v2/*: any*/),
|
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": null,
|
|
||||||
"kind": "ScalarField",
|
|
||||||
"name": "title",
|
|
||||||
"storageKey": null
|
|
||||||
},
|
|
||||||
(v6/*: any*/),
|
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": null,
|
|
||||||
"kind": "ScalarField",
|
|
||||||
"name": "documentType",
|
|
||||||
"storageKey": null
|
|
||||||
},
|
|
||||||
(v15/*: any*/),
|
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": [
|
|
||||||
{
|
|
||||||
"kind": "Literal",
|
|
||||||
"name": "first",
|
|
||||||
"value": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"concreteType": "DocumentVersionConnection",
|
|
||||||
"kind": "LinkedField",
|
|
||||||
"name": "versions",
|
|
||||||
"plural": false,
|
|
||||||
"selections": [
|
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": null,
|
|
||||||
"concreteType": "DocumentVersionEdge",
|
|
||||||
"kind": "LinkedField",
|
|
||||||
"name": "edges",
|
|
||||||
"plural": true,
|
|
||||||
"selections": [
|
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": null,
|
|
||||||
"concreteType": "DocumentVersion",
|
|
||||||
"kind": "LinkedField",
|
|
||||||
"name": "node",
|
|
||||||
"plural": false,
|
|
||||||
"selections": [
|
|
||||||
(v2/*: any*/),
|
|
||||||
{
|
|
||||||
"alias": null,
|
|
||||||
"args": null,
|
|
||||||
"kind": "ScalarField",
|
|
||||||
"name": "status",
|
|
||||||
"storageKey": null
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"storageKey": null
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"storageKey": null
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"storageKey": "versions(first:1)"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"storageKey": null
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"storageKey": null
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"storageKey": "documents(first:100)"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"alias": null,
|
"alias": null,
|
||||||
"args": (v9/*: any*/),
|
"args": (v9/*: any*/),
|
||||||
@@ -691,7 +478,7 @@ return {
|
|||||||
"selections": [
|
"selections": [
|
||||||
(v2/*: any*/),
|
(v2/*: any*/),
|
||||||
(v3/*: any*/),
|
(v3/*: any*/),
|
||||||
(v16/*: any*/),
|
(v14/*: any*/),
|
||||||
{
|
{
|
||||||
"alias": null,
|
"alias": null,
|
||||||
"args": null,
|
"args": null,
|
||||||
@@ -755,7 +542,7 @@ return {
|
|||||||
"selections": [
|
"selections": [
|
||||||
(v2/*: any*/),
|
(v2/*: any*/),
|
||||||
(v3/*: any*/),
|
(v3/*: any*/),
|
||||||
(v16/*: any*/),
|
(v14/*: any*/),
|
||||||
{
|
{
|
||||||
"alias": null,
|
"alias": null,
|
||||||
"args": null,
|
"args": null,
|
||||||
@@ -763,7 +550,13 @@ return {
|
|||||||
"name": "fileUrl",
|
"name": "fileUrl",
|
||||||
"storageKey": null
|
"storageKey": null
|
||||||
},
|
},
|
||||||
(v15/*: any*/),
|
{
|
||||||
|
"alias": null,
|
||||||
|
"args": null,
|
||||||
|
"kind": "ScalarField",
|
||||||
|
"name": "trustCenterVisibility",
|
||||||
|
"storageKey": null
|
||||||
|
},
|
||||||
(v6/*: any*/),
|
(v6/*: any*/),
|
||||||
(v7/*: any*/),
|
(v7/*: any*/),
|
||||||
{
|
{
|
||||||
@@ -813,8 +606,7 @@ return {
|
|||||||
"key": "TrustCenterPage_trustCenterFiles",
|
"key": "TrustCenterPage_trustCenterFiles",
|
||||||
"kind": "LinkedHandle",
|
"kind": "LinkedHandle",
|
||||||
"name": "trustCenterFiles"
|
"name": "trustCenterFiles"
|
||||||
},
|
}
|
||||||
(v14/*: any*/)
|
|
||||||
],
|
],
|
||||||
"type": "Organization",
|
"type": "Organization",
|
||||||
"abstractKey": null
|
"abstractKey": null
|
||||||
@@ -825,7 +617,7 @@ return {
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"params": {
|
"params": {
|
||||||
"cacheID": "9c65178da92b31263957b8ccc6747639",
|
"cacheID": "ae3ba021303da59b774b89df514bd91e",
|
||||||
"id": null,
|
"id": null,
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"connection": [
|
"connection": [
|
||||||
@@ -842,11 +634,11 @@ return {
|
|||||||
},
|
},
|
||||||
"name": "TrustCenterGraphQuery",
|
"name": "TrustCenterGraphQuery",
|
||||||
"operationKind": "query",
|
"operationKind": "query",
|
||||||
"text": "query TrustCenterGraphQuery(\n $organizationId: ID!\n) {\n organization: node(id: $organizationId) {\n __typename\n ... on Organization {\n id\n name\n canCreateTrustCenterFile: permission(action: \"core:trust-center-file:create\")\n customDomain {\n id\n domain\n }\n trustCenter {\n id\n active\n ndaFileName\n ndaFileUrl\n createdAt\n updatedAt\n canUpdate: permission(action: \"core:trust-center:update\")\n canGetNDA: permission(action: \"core:trust-center:get-nda\")\n canUploadNDA: permission(action: \"core:trust-center:upload-nda\")\n canDeleteNDA: permission(action: \"core:trust-center:delete-nda\")\n canCreateReference: permission(action: \"core:trust-center-reference:create\")\n canCreateAccess: permission(action: \"core:trust-center-access:create\")\n }\n documents(first: 100) {\n edges {\n node {\n id\n ...TrustCenterDocumentsCardFragment\n }\n }\n }\n vendors(first: 100) {\n edges {\n node {\n id\n ...TrustCenterVendorsCardFragment\n }\n }\n }\n trustCenterFiles(first: 100) {\n edges {\n node {\n id\n ...TrustCenterFilesCardFragment\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n slackConnections(first: 100) {\n edges {\n node {\n id\n channel\n channelId\n createdAt\n updatedAt\n }\n }\n }\n }\n id\n }\n}\n\nfragment TrustCenterDocumentsCardFragment on Document {\n id\n title\n createdAt\n documentType\n trustCenterVisibility\n versions(first: 1) {\n edges {\n node {\n id\n status\n }\n }\n }\n}\n\nfragment TrustCenterFilesCardFragment on TrustCenterFile {\n id\n name\n category\n fileUrl\n trustCenterVisibility\n createdAt\n updatedAt\n canUpdate: permission(action: \"core:trust-center-file:update\")\n canDelete: permission(action: \"core:trust-center-file:delete\")\n}\n\nfragment TrustCenterVendorsCardFragment on Vendor {\n id\n name\n category\n description\n showOnTrustCenter\n createdAt\n canUpdate: permission(action: \"core:vendor:update\")\n}\n"
|
"text": "query TrustCenterGraphQuery(\n $organizationId: ID!\n) {\n organization: node(id: $organizationId) {\n __typename\n ... on Organization {\n id\n name\n canCreateTrustCenterFile: permission(action: \"core:trust-center-file:create\")\n customDomain {\n id\n domain\n }\n trustCenter {\n id\n active\n ndaFileName\n ndaFileUrl\n createdAt\n updatedAt\n canUpdate: permission(action: \"core:trust-center:update\")\n canGetNDA: permission(action: \"core:trust-center:get-nda\")\n canUploadNDA: permission(action: \"core:trust-center:upload-nda\")\n canDeleteNDA: permission(action: \"core:trust-center:delete-nda\")\n canCreateReference: permission(action: \"core:trust-center-reference:create\")\n canCreateAccess: permission(action: \"core:trust-center-access:create\")\n }\n vendors(first: 100) {\n edges {\n node {\n id\n ...TrustCenterVendorsCardFragment\n }\n }\n }\n trustCenterFiles(first: 100) {\n edges {\n node {\n id\n ...TrustCenterFilesCardFragment\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n }\n id\n }\n}\n\nfragment TrustCenterFilesCardFragment on TrustCenterFile {\n id\n name\n category\n fileUrl\n trustCenterVisibility\n createdAt\n updatedAt\n canUpdate: permission(action: \"core:trust-center-file:update\")\n canDelete: permission(action: \"core:trust-center-file:delete\")\n}\n\nfragment TrustCenterVendorsCardFragment on Vendor {\n id\n name\n category\n description\n showOnTrustCenter\n createdAt\n canUpdate: permission(action: \"core:vendor:update\")\n}\n"
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
})();
|
})();
|
||||||
|
|
||||||
(node as any).hash = "5f4dd8eb5f6ceb0dcb1d3ce3eff4978c";
|
(node as any).hash = "abd5b3222d2bd168213a8ede829b4881";
|
||||||
|
|
||||||
export default node;
|
export default node;
|
||||||
|
|||||||
@@ -1,104 +0,0 @@
|
|||||||
import { sprintf } from "@probo/helpers";
|
|
||||||
import { useTranslate } from "@probo/i18n";
|
|
||||||
import { Badge, Button, Card } from "@probo/ui";
|
|
||||||
|
|
||||||
import type { TrustCenterGraphQuery$data } from "#/__generated__/core/TrustCenterGraphQuery.graphql";
|
|
||||||
|
|
||||||
type Props = {
|
|
||||||
canUpdate: boolean;
|
|
||||||
organizationId: string;
|
|
||||||
slackConnections: NonNullable<
|
|
||||||
TrustCenterGraphQuery$data["organization"]["slackConnections"]
|
|
||||||
>["edges"][number]["node"][];
|
|
||||||
};
|
|
||||||
|
|
||||||
export function SlackConnections({
|
|
||||||
canUpdate,
|
|
||||||
organizationId,
|
|
||||||
slackConnections: connectedSlackConnections,
|
|
||||||
}: Props) {
|
|
||||||
const { __, dateTimeFormat } = useTranslate();
|
|
||||||
const slackConnectionDefinitions = [
|
|
||||||
{
|
|
||||||
id: "SLACK",
|
|
||||||
name: "Slack",
|
|
||||||
protocol: "OAUTH2",
|
|
||||||
description: __("Manage your trust center access with slack"),
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
const slackConnections = slackConnectionDefinitions.map((def) => {
|
|
||||||
const connected = connectedSlackConnections.find(c => c.id);
|
|
||||||
return {
|
|
||||||
...def,
|
|
||||||
createdAt: connected?.createdAt,
|
|
||||||
channel: connected?.channel,
|
|
||||||
channelId: connected?.channelId,
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
const getUrl = (provider: string) => {
|
|
||||||
const baseUrl = import.meta.env.VITE_API_URL || window.location.origin;
|
|
||||||
const url = new URL("/api/console/v1/connectors/initiate", baseUrl);
|
|
||||||
url.searchParams.append("organization_id", organizationId);
|
|
||||||
url.searchParams.append("provider", provider);
|
|
||||||
const trustCenterUrl = `/organizations/${organizationId}/trust-center`;
|
|
||||||
url.searchParams.append("continue", trustCenterUrl);
|
|
||||||
const finalUrl = url.toString();
|
|
||||||
return finalUrl;
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div className="space-y-2">
|
|
||||||
{slackConnections.map(slackConnection => (
|
|
||||||
<Card
|
|
||||||
key={slackConnection.id}
|
|
||||||
padded
|
|
||||||
className="flex items-center gap-3"
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
<img src={`/${slackConnection.id.toLowerCase()}.png`} alt="" />
|
|
||||||
</div>
|
|
||||||
<div className="mr-auto">
|
|
||||||
<h3 className="text-base font-semibold">{slackConnection.name}</h3>
|
|
||||||
<p className="text-sm text-txt-tertiary">
|
|
||||||
{slackConnection.createdAt
|
|
||||||
? (
|
|
||||||
<>
|
|
||||||
{sprintf(
|
|
||||||
__("Connected on %s"),
|
|
||||||
dateTimeFormat(slackConnection.createdAt),
|
|
||||||
)}
|
|
||||||
{slackConnection.channel && (
|
|
||||||
<>
|
|
||||||
{" • "}
|
|
||||||
{sprintf(__("Channel: %s"), slackConnection.channel)}
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
</>
|
|
||||||
)
|
|
||||||
: (
|
|
||||||
slackConnection.description
|
|
||||||
)}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
{slackConnection.createdAt
|
|
||||||
? (
|
|
||||||
<div>
|
|
||||||
<Badge variant="success" size="md">
|
|
||||||
{__("Connected")}
|
|
||||||
</Badge>
|
|
||||||
</div>
|
|
||||||
)
|
|
||||||
: (
|
|
||||||
canUpdate && (
|
|
||||||
<Button variant="secondary" asChild>
|
|
||||||
<a href={getUrl(slackConnection.id)}>{__("Connect")}</a>
|
|
||||||
</Button>
|
|
||||||
)
|
|
||||||
)}
|
|
||||||
</Card>
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@@ -1,188 +0,0 @@
|
|||||||
import { getTrustCenterVisibilityOptions, sprintf } from "@probo/helpers";
|
|
||||||
import { useTranslate } from "@probo/i18n";
|
|
||||||
import {
|
|
||||||
Badge,
|
|
||||||
Button,
|
|
||||||
DocumentTypeBadge,
|
|
||||||
DocumentVersionBadge,
|
|
||||||
Field,
|
|
||||||
IconChevronDown,
|
|
||||||
Option,
|
|
||||||
Table,
|
|
||||||
Tbody,
|
|
||||||
Td,
|
|
||||||
Th,
|
|
||||||
Thead,
|
|
||||||
Tr,
|
|
||||||
} from "@probo/ui";
|
|
||||||
import { useCallback, useMemo, useState } from "react";
|
|
||||||
import { useFragment } from "react-relay";
|
|
||||||
import { graphql } from "relay-runtime";
|
|
||||||
|
|
||||||
import type { TrustCenterDocumentsCardFragment$key } from "#/__generated__/core/TrustCenterDocumentsCardFragment.graphql";
|
|
||||||
import { useOrganizationId } from "#/hooks/useOrganizationId";
|
|
||||||
|
|
||||||
const trustCenterDocumentFragment = graphql`
|
|
||||||
fragment TrustCenterDocumentsCardFragment on Document {
|
|
||||||
id
|
|
||||||
title
|
|
||||||
createdAt
|
|
||||||
documentType
|
|
||||||
trustCenterVisibility
|
|
||||||
versions(first: 1) {
|
|
||||||
edges {
|
|
||||||
node {
|
|
||||||
id
|
|
||||||
status
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
|
|
||||||
type Mutation<Params> = (p: {
|
|
||||||
variables: {
|
|
||||||
input: {
|
|
||||||
id: string;
|
|
||||||
trustCenterVisibility: "NONE" | "PRIVATE" | "PUBLIC";
|
|
||||||
} & Params;
|
|
||||||
};
|
|
||||||
}) => Promise<void>;
|
|
||||||
|
|
||||||
type Props<Params> = {
|
|
||||||
documents: TrustCenterDocumentsCardFragment$key[];
|
|
||||||
params: Params;
|
|
||||||
disabled?: boolean;
|
|
||||||
onChangeVisibility: Mutation<Params>;
|
|
||||||
canUpdate: boolean;
|
|
||||||
};
|
|
||||||
|
|
||||||
export function TrustCenterDocumentsCard<Params>(props: Props<Params>) {
|
|
||||||
const { __ } = useTranslate();
|
|
||||||
const [limit, setLimit] = useState<number | null>(100);
|
|
||||||
const documents = useMemo(() => {
|
|
||||||
return limit ? props.documents.slice(0, limit) : props.documents;
|
|
||||||
}, [props.documents, limit]);
|
|
||||||
const showMoreButton = limit !== null && props.documents.length > limit;
|
|
||||||
|
|
||||||
const onChangeVisibility = async (
|
|
||||||
documentId: string,
|
|
||||||
trustCenterVisibility: "NONE" | "PRIVATE" | "PUBLIC",
|
|
||||||
) => {
|
|
||||||
await props.onChangeVisibility({
|
|
||||||
variables: {
|
|
||||||
input: {
|
|
||||||
id: documentId,
|
|
||||||
trustCenterVisibility,
|
|
||||||
...props.params,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div className="space-y-[10px]">
|
|
||||||
<Table>
|
|
||||||
<Thead>
|
|
||||||
<Tr>
|
|
||||||
<Th>{__("Name")}</Th>
|
|
||||||
<Th>{__("Type")}</Th>
|
|
||||||
<Th>{__("State")}</Th>
|
|
||||||
<Th>{__("Visibility")}</Th>
|
|
||||||
</Tr>
|
|
||||||
</Thead>
|
|
||||||
<Tbody>
|
|
||||||
{documents.length === 0 && (
|
|
||||||
<Tr>
|
|
||||||
<Td colSpan={5} className="text-center text-txt-secondary">
|
|
||||||
{__("No documents available")}
|
|
||||||
</Td>
|
|
||||||
</Tr>
|
|
||||||
)}
|
|
||||||
{documents.map((document, index) => (
|
|
||||||
<DocumentRow
|
|
||||||
key={index}
|
|
||||||
documentFragmentRef={document}
|
|
||||||
onChangeVisibility={onChangeVisibility}
|
|
||||||
disabled={props.disabled}
|
|
||||||
canUpdate={props.canUpdate}
|
|
||||||
/>
|
|
||||||
))}
|
|
||||||
</Tbody>
|
|
||||||
</Table>
|
|
||||||
{showMoreButton && (
|
|
||||||
<Button
|
|
||||||
variant="tertiary"
|
|
||||||
onClick={() => setLimit(null)}
|
|
||||||
className="mt-3 mx-auto"
|
|
||||||
icon={IconChevronDown}
|
|
||||||
>
|
|
||||||
{sprintf(__("Show %s more"), props.documents.length - limit)}
|
|
||||||
</Button>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
function DocumentRow(props: {
|
|
||||||
documentFragmentRef: TrustCenterDocumentsCardFragment$key;
|
|
||||||
onChangeVisibility: (
|
|
||||||
documentId: string,
|
|
||||||
trustCenterVisibility: "NONE" | "PRIVATE" | "PUBLIC",
|
|
||||||
) => Promise<void>;
|
|
||||||
disabled?: boolean;
|
|
||||||
canUpdate: boolean;
|
|
||||||
}) {
|
|
||||||
const { documentFragmentRef, onChangeVisibility, disabled, canUpdate }
|
|
||||||
= props;
|
|
||||||
const document = useFragment(
|
|
||||||
trustCenterDocumentFragment,
|
|
||||||
documentFragmentRef,
|
|
||||||
);
|
|
||||||
const organizationId = useOrganizationId();
|
|
||||||
const { __ } = useTranslate();
|
|
||||||
|
|
||||||
const handleValueChange = useCallback(
|
|
||||||
async (value: string) => {
|
|
||||||
const stringValue = typeof value === "string" ? value : "";
|
|
||||||
const typedValue = stringValue as "NONE" | "PRIVATE" | "PUBLIC";
|
|
||||||
await onChangeVisibility(document.id, typedValue);
|
|
||||||
},
|
|
||||||
[document.id, onChangeVisibility],
|
|
||||||
);
|
|
||||||
|
|
||||||
const visibilityOptions = getTrustCenterVisibilityOptions(__);
|
|
||||||
|
|
||||||
return (
|
|
||||||
<Tr to={`/organizations/${organizationId}/documents/${document.id}`}>
|
|
||||||
<Td>
|
|
||||||
<div className="flex gap-4 items-center">{document.title}</div>
|
|
||||||
</Td>
|
|
||||||
<Td>
|
|
||||||
<DocumentTypeBadge type={document.documentType} />
|
|
||||||
</Td>
|
|
||||||
<Td>
|
|
||||||
<DocumentVersionBadge
|
|
||||||
state={document.versions?.edges?.[0]?.node?.status}
|
|
||||||
/>
|
|
||||||
</Td>
|
|
||||||
<Td noLink width={130} className="pr-0">
|
|
||||||
<Field
|
|
||||||
type="select"
|
|
||||||
value={document.trustCenterVisibility}
|
|
||||||
onValueChange={value => void handleValueChange(value)}
|
|
||||||
disabled={disabled || !canUpdate}
|
|
||||||
className="w-[105px]"
|
|
||||||
>
|
|
||||||
{visibilityOptions.map(option => (
|
|
||||||
<Option key={option.value} value={option.value}>
|
|
||||||
<div className="flex items-center justify-between w-full">
|
|
||||||
<Badge variant={option.variant}>{option.label}</Badge>
|
|
||||||
</div>
|
|
||||||
</Option>
|
|
||||||
))}
|
|
||||||
</Field>
|
|
||||||
</Td>
|
|
||||||
</Tr>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
import { useTranslate } from "@probo/i18n";
|
|
||||||
import { graphql } from "relay-runtime";
|
|
||||||
|
|
||||||
import type { TrustCenterDocumentGraphUpdateMutation } from "#/__generated__/core/TrustCenterDocumentGraphUpdateMutation.graphql";
|
|
||||||
import { useMutationWithToasts } from "#/hooks/useMutationWithToasts";
|
|
||||||
|
|
||||||
export const trustCenterDocumentsQuery = graphql`
|
|
||||||
query TrustCenterDocumentGraphQuery($organizationId: ID!) {
|
|
||||||
organization: node(id: $organizationId) {
|
|
||||||
... on Organization {
|
|
||||||
id
|
|
||||||
documents(first: 100) {
|
|
||||||
edges {
|
|
||||||
node {
|
|
||||||
id
|
|
||||||
...TrustCenterDocumentsCardFragment
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
|
|
||||||
export const updateDocumentVisibilityMutation = graphql`
|
|
||||||
mutation TrustCenterDocumentGraphUpdateMutation(
|
|
||||||
$input: UpdateDocumentInput!
|
|
||||||
) {
|
|
||||||
updateDocument(input: $input) {
|
|
||||||
document {
|
|
||||||
id
|
|
||||||
trustCenterVisibility
|
|
||||||
...TrustCenterDocumentsCardFragment
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
|
|
||||||
export function useUpdateDocumentVisibilityMutation() {
|
|
||||||
const { __ } = useTranslate();
|
|
||||||
|
|
||||||
return useMutationWithToasts<TrustCenterDocumentGraphUpdateMutation>(
|
|
||||||
updateDocumentVisibilityMutation,
|
|
||||||
{
|
|
||||||
successMessage: __("Document visibility updated successfully."),
|
|
||||||
errorMessage: __("Failed to update document visibility"),
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@@ -32,14 +32,6 @@ export const trustCenterQuery = graphql`
|
|||||||
)
|
)
|
||||||
canCreateAccess: permission(action: "core:trust-center-access:create")
|
canCreateAccess: permission(action: "core:trust-center-access:create")
|
||||||
}
|
}
|
||||||
documents(first: 100) {
|
|
||||||
edges {
|
|
||||||
node {
|
|
||||||
id
|
|
||||||
...TrustCenterDocumentsCardFragment
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
vendors(first: 100) {
|
vendors(first: 100) {
|
||||||
edges {
|
edges {
|
||||||
node {
|
node {
|
||||||
@@ -58,17 +50,6 @@ export const trustCenterQuery = graphql`
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
slackConnections(first: 100) {
|
|
||||||
edges {
|
|
||||||
node {
|
|
||||||
id
|
|
||||||
channel
|
|
||||||
channelId
|
|
||||||
createdAt
|
|
||||||
updatedAt
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
import { useTranslate } from "@probo/i18n";
|
||||||
|
import { graphql, type PreloadedQuery, usePreloadedQuery } from "react-relay";
|
||||||
|
|
||||||
|
import type { CompliancePageDocumentsPageQuery } from "#/__generated__/core/CompliancePageDocumentsPageQuery.graphql";
|
||||||
|
|
||||||
|
import { CompliancePageDocumentList } from "./_components/CompliancePageDocumentList";
|
||||||
|
|
||||||
|
export const compliancePageDocumentsPageQuery = graphql`
|
||||||
|
query CompliancePageDocumentsPageQuery($organizationId: ID!) {
|
||||||
|
organization: node(id: $organizationId) {
|
||||||
|
...CompliancePageDocumentListFragment
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
export function CompliancePageDocumentsPage(props: { queryRef: PreloadedQuery<CompliancePageDocumentsPageQuery> }) {
|
||||||
|
const { queryRef } = props;
|
||||||
|
|
||||||
|
const { __ } = useTranslate();
|
||||||
|
|
||||||
|
const { organization } = usePreloadedQuery<CompliancePageDocumentsPageQuery>(
|
||||||
|
compliancePageDocumentsPageQuery,
|
||||||
|
queryRef,
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="space-y-4">
|
||||||
|
<div className="flex items-center justify-between">
|
||||||
|
<div>
|
||||||
|
<h3 className="text-base font-medium">{__("Documents")}</h3>
|
||||||
|
<p className="text-sm text-txt-tertiary">
|
||||||
|
{__("Manage policies, procedures and compliance documents")}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<CompliancePageDocumentList fragmentRef={organization} />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
import { useEffect } from "react";
|
||||||
|
import { useQueryLoader } from "react-relay";
|
||||||
|
|
||||||
|
import type { CompliancePageDocumentsPageQuery } from "#/__generated__/core/CompliancePageDocumentsPageQuery.graphql";
|
||||||
|
import { LinkCardSkeleton } from "#/components/skeletons/LinkCardSkeleton";
|
||||||
|
import { useOrganizationId } from "#/hooks/useOrganizationId";
|
||||||
|
import { CoreRelayProvider } from "#/providers/CoreRelayProvider";
|
||||||
|
|
||||||
|
import { CompliancePageDocumentsPage, compliancePageDocumentsPageQuery } from "./CompliancePageDocumentsPage";
|
||||||
|
|
||||||
|
function CompliancePageDocumentsPageQueryLoader() {
|
||||||
|
const organizationId = useOrganizationId();
|
||||||
|
const [queryRef, loadQuery] = useQueryLoader<CompliancePageDocumentsPageQuery>(compliancePageDocumentsPageQuery);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!queryRef) {
|
||||||
|
loadQuery({ organizationId });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!queryRef) return <LinkCardSkeleton />;
|
||||||
|
|
||||||
|
return <CompliancePageDocumentsPage queryRef={queryRef} />;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function CompliancePageDocumentsPageLoader() {
|
||||||
|
return (
|
||||||
|
<CoreRelayProvider>
|
||||||
|
<CompliancePageDocumentsPageQueryLoader />
|
||||||
|
</CoreRelayProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
import { sprintf } from "@probo/helpers";
|
||||||
|
import { useTranslate } from "@probo/i18n";
|
||||||
|
import { Button, IconChevronDown, Table, Tbody, Td, Th, Thead, Tr } from "@probo/ui";
|
||||||
|
import { useState } from "react";
|
||||||
|
import { useFragment } from "react-relay";
|
||||||
|
import { graphql } from "relay-runtime";
|
||||||
|
|
||||||
|
import type { CompliancePageDocumentListFragment$key } from "#/__generated__/core/CompliancePageDocumentListFragment.graphql";
|
||||||
|
|
||||||
|
import { CompliancePageDocumentListItem } from "./CompliancePageDocumentListItem";
|
||||||
|
|
||||||
|
const fragment = graphql`
|
||||||
|
fragment CompliancePageDocumentListFragment on Organization {
|
||||||
|
compliancePage: trustCenter @required(action: THROW) {
|
||||||
|
...CompliancePageDocumentListItem_compliancePageFragment
|
||||||
|
}
|
||||||
|
documents(first: 1000) {
|
||||||
|
edges {
|
||||||
|
node {
|
||||||
|
id
|
||||||
|
...CompliancePageDocumentListItem_documentFragment
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
export function CompliancePageDocumentList(props: { fragmentRef: CompliancePageDocumentListFragment$key }) {
|
||||||
|
const { fragmentRef } = props;
|
||||||
|
|
||||||
|
const { __ } = useTranslate();
|
||||||
|
|
||||||
|
const { compliancePage, documents } = useFragment<CompliancePageDocumentListFragment$key>(fragment, fragmentRef);
|
||||||
|
|
||||||
|
const [limit, setLimit] = useState<number | null>(100);
|
||||||
|
const showMoreButton = limit !== null && documents.edges.length > limit;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="space-y-[10px]">
|
||||||
|
<Table>
|
||||||
|
<Thead>
|
||||||
|
<Tr>
|
||||||
|
<Th>{__("Name")}</Th>
|
||||||
|
<Th>{__("Type")}</Th>
|
||||||
|
<Th>{__("State")}</Th>
|
||||||
|
<Th>{__("Visibility")}</Th>
|
||||||
|
</Tr>
|
||||||
|
</Thead>
|
||||||
|
<Tbody>
|
||||||
|
{documents.edges.length === 0 && (
|
||||||
|
<Tr>
|
||||||
|
<Td colSpan={5} className="text-center text-txt-secondary">
|
||||||
|
{__("No documents available")}
|
||||||
|
</Td>
|
||||||
|
</Tr>
|
||||||
|
)}
|
||||||
|
{documents.edges.map(({ node: document }) => (
|
||||||
|
<CompliancePageDocumentListItem
|
||||||
|
key={document.id}
|
||||||
|
compliancePageFragmentRef={compliancePage}
|
||||||
|
documentFragmentRef={document}
|
||||||
|
/>
|
||||||
|
))}
|
||||||
|
</Tbody>
|
||||||
|
</Table>
|
||||||
|
{showMoreButton && (
|
||||||
|
<Button
|
||||||
|
variant="tertiary"
|
||||||
|
onClick={() => setLimit(null)}
|
||||||
|
className="mt-3 mx-auto"
|
||||||
|
icon={IconChevronDown}
|
||||||
|
>
|
||||||
|
{sprintf(__("Show %s more"), documents.edges.length - limit)}
|
||||||
|
</Button>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
@@ -0,0 +1,121 @@
|
|||||||
|
import { getTrustCenterVisibilityOptions } from "@probo/helpers";
|
||||||
|
import { useTranslate } from "@probo/i18n";
|
||||||
|
import { Badge, DocumentTypeBadge, DocumentVersionBadge, Field, Option, Td, Tr } from "@probo/ui";
|
||||||
|
import { useCallback } from "react";
|
||||||
|
import { useFragment } from "react-relay";
|
||||||
|
import { graphql } from "relay-runtime";
|
||||||
|
|
||||||
|
import type { CompliancePageDocumentListItem_compliancePageFragment$key } from "#/__generated__/core/CompliancePageDocumentListItem_compliancePageFragment.graphql";
|
||||||
|
import type { CompliancePageDocumentListItem_documentFragment$key } from "#/__generated__/core/CompliancePageDocumentListItem_documentFragment.graphql";
|
||||||
|
import { useMutationWithToasts } from "#/hooks/useMutationWithToasts";
|
||||||
|
import { useOrganizationId } from "#/hooks/useOrganizationId";
|
||||||
|
|
||||||
|
const compliancePageFragment = graphql`
|
||||||
|
fragment CompliancePageDocumentListItem_compliancePageFragment on TrustCenter {
|
||||||
|
canUpdate: permission(action: "core:trust-center:update")
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
const documentFragment = graphql`
|
||||||
|
fragment CompliancePageDocumentListItem_documentFragment on Document {
|
||||||
|
id
|
||||||
|
documentType
|
||||||
|
title
|
||||||
|
trustCenterVisibility
|
||||||
|
lastVersion: versions(first: 1, orderBy: { field: CREATED_AT, direction: DESC }) {
|
||||||
|
edges {
|
||||||
|
node {
|
||||||
|
id
|
||||||
|
status
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
const updateDocumentVisibilityMutation = graphql`
|
||||||
|
mutation CompliancePageDocumentListItem_updateVisibilityMutation(
|
||||||
|
$input: UpdateDocumentInput!
|
||||||
|
) {
|
||||||
|
updateDocument(input: $input) {
|
||||||
|
document {
|
||||||
|
...CompliancePageDocumentListItem_documentFragment
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
export function CompliancePageDocumentListItem(props: {
|
||||||
|
compliancePageFragmentRef: CompliancePageDocumentListItem_compliancePageFragment$key;
|
||||||
|
documentFragmentRef: CompliancePageDocumentListItem_documentFragment$key;
|
||||||
|
}) {
|
||||||
|
const { compliancePageFragmentRef, documentFragmentRef } = props;
|
||||||
|
|
||||||
|
const organizationId = useOrganizationId();
|
||||||
|
const { __ } = useTranslate();
|
||||||
|
const visibilityOptions = getTrustCenterVisibilityOptions(__);
|
||||||
|
|
||||||
|
const compliancePage = useFragment<CompliancePageDocumentListItem_compliancePageFragment$key>(
|
||||||
|
compliancePageFragment,
|
||||||
|
compliancePageFragmentRef,
|
||||||
|
);
|
||||||
|
const document = useFragment<CompliancePageDocumentListItem_documentFragment$key>(
|
||||||
|
documentFragment,
|
||||||
|
documentFragmentRef,
|
||||||
|
);
|
||||||
|
const [updateDocumentVisibility, isUpdatingDocumentVisibility] = useMutationWithToasts(
|
||||||
|
updateDocumentVisibilityMutation,
|
||||||
|
{
|
||||||
|
successMessage: __("Document visibility updated successfully."),
|
||||||
|
errorMessage: __("Failed to update document visibility"),
|
||||||
|
},
|
||||||
|
);
|
||||||
|
const handleVsibilityChange = useCallback(
|
||||||
|
async (value: string) => {
|
||||||
|
const stringValue = typeof value === "string" ? value : "";
|
||||||
|
const typedValue = stringValue as "NONE" | "PRIVATE" | "PUBLIC";
|
||||||
|
await updateDocumentVisibility({
|
||||||
|
variables: {
|
||||||
|
input: {
|
||||||
|
id: document.id,
|
||||||
|
trustCenterVisibility: typedValue,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
|
[document.id, updateDocumentVisibility],
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Tr to={`/organizations/${organizationId}/documents/${document.id}`}>
|
||||||
|
<Td>
|
||||||
|
<div className="flex gap-4 items-center">{document.title}</div>
|
||||||
|
</Td>
|
||||||
|
<Td>
|
||||||
|
<DocumentTypeBadge type={document.documentType} />
|
||||||
|
</Td>
|
||||||
|
<Td>
|
||||||
|
<DocumentVersionBadge
|
||||||
|
state={document.lastVersion.edges[0].node.status}
|
||||||
|
/>
|
||||||
|
</Td>
|
||||||
|
<Td noLink width={130} className="pr-0">
|
||||||
|
<Field
|
||||||
|
type="select"
|
||||||
|
value={document.trustCenterVisibility}
|
||||||
|
onValueChange={value => void handleVsibilityChange(value)}
|
||||||
|
disabled={isUpdatingDocumentVisibility || !compliancePage.canUpdate}
|
||||||
|
className="w-[105px]"
|
||||||
|
>
|
||||||
|
{visibilityOptions.map(option => (
|
||||||
|
<Option key={option.value} value={option.value}>
|
||||||
|
<div className="flex items-center justify-between w-full">
|
||||||
|
<Badge variant={option.variant}>{option.label}</Badge>
|
||||||
|
</div>
|
||||||
|
</Option>
|
||||||
|
))}
|
||||||
|
</Field>
|
||||||
|
</Td>
|
||||||
|
</Tr>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -24,6 +24,11 @@ export const compliancePageRoutes = [
|
|||||||
Fallback: LinkCardSkeleton,
|
Fallback: LinkCardSkeleton,
|
||||||
Component: lazy(() => import("#/pages/organizations/compliance-page/audits/CompliancePageAuditsPageLoader")),
|
Component: lazy(() => import("#/pages/organizations/compliance-page/audits/CompliancePageAuditsPageLoader")),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: "documents",
|
||||||
|
Fallback: LinkCardSkeleton,
|
||||||
|
Component: lazy(() => import("#/pages/organizations/compliance-page/documents/CompliancePageDocumentsPageLoader")),
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,38 +0,0 @@
|
|||||||
import { useTranslate } from "@probo/i18n";
|
|
||||||
import { Spinner } from "@probo/ui";
|
|
||||||
import { useOutletContext } from "react-router";
|
|
||||||
|
|
||||||
import type { TrustCenterGraphQuery$data } from "#/__generated__/core/TrustCenterGraphQuery.graphql";
|
|
||||||
import { TrustCenterDocumentsCard } from "#/components/trustCenter/TrustCenterDocumentsCard";
|
|
||||||
import { useUpdateDocumentVisibilityMutation } from "#/hooks/graph/TrustCenterDocumentGraph";
|
|
||||||
|
|
||||||
export default function TrustCenterDocumentsTab() {
|
|
||||||
const { __ } = useTranslate();
|
|
||||||
const { organization } = useOutletContext<TrustCenterGraphQuery$data>();
|
|
||||||
const [updateDocumentVisibility, isUpdatingDocuments]
|
|
||||||
= useUpdateDocumentVisibilityMutation();
|
|
||||||
|
|
||||||
const documents
|
|
||||||
= organization.documents?.edges?.map(edge => edge.node) || [];
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div className="space-y-4">
|
|
||||||
<div className="flex items-center justify-between">
|
|
||||||
<div>
|
|
||||||
<h3 className="text-base font-medium">{__("Documents")}</h3>
|
|
||||||
<p className="text-sm text-txt-tertiary">
|
|
||||||
{__("Manage policies, procedures and compliance documents")}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
{isUpdatingDocuments && <Spinner />}
|
|
||||||
</div>
|
|
||||||
<TrustCenterDocumentsCard
|
|
||||||
documents={documents}
|
|
||||||
params={{}}
|
|
||||||
disabled={isUpdatingDocuments}
|
|
||||||
onChangeVisibility={updateDocumentVisibility}
|
|
||||||
canUpdate={!!organization.trustCenter?.canUpdate}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@@ -29,14 +29,6 @@ export const trustCenterRoutes = [
|
|||||||
lazy(() => import("#/pages/organizations/trustCenter/TrustCenterPage")),
|
lazy(() => import("#/pages/organizations/trustCenter/TrustCenterPage")),
|
||||||
),
|
),
|
||||||
children: [
|
children: [
|
||||||
{
|
|
||||||
path: "documents",
|
|
||||||
Fallback: LinkCardSkeleton,
|
|
||||||
Component: lazy(
|
|
||||||
() =>
|
|
||||||
import("#/pages/organizations/trustCenter/TrustCenterDocumentsTab"),
|
|
||||||
),
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
path: "files",
|
path: "files",
|
||||||
Fallback: LinkCardSkeleton,
|
Fallback: LinkCardSkeleton,
|
||||||
|
|||||||
Reference in New Issue
Block a user