Move console to a relay multi project config

Signed-off-by: Émile Ré <nemile.re@gmail.com>
This commit is contained in:
Émile Ré
2025-12-30 10:37:23 +01:00
committed by Bryan Frimin
parent c1df98cec1
commit 6b2864e160
572 changed files with 6400 additions and 4263 deletions

View File

@@ -1,6 +1,6 @@
import { graphql, usePreloadedQuery, type PreloadedQuery } from "react-relay";
import { useTranslate } from "@probo/i18n";
import type { APIKeysPageQuery } from "./__generated__/APIKeysPageQuery.graphql";
import type { APIKeysPageQuery } from "/__generated__/iam/APIKeysPageQuery.graphql";
import { PersonalAPIKeyList } from "./_components/PersonalAPIKeyList";
export const apiKeysPageQuery = graphql`

View File

@@ -2,7 +2,7 @@ import { Suspense, useEffect } from "react";
import { useQueryLoader } from "react-relay";
import { CenteredLayoutSkeleton } from "@probo/ui";
import { APIKeysPage, apiKeysPageQuery } from "./APIKeysPage";
import type { APIKeysPageQuery } from "./__generated__/APIKeysPageQuery.graphql";
import type { APIKeysPageQuery } from "/__generated__/iam/APIKeysPageQuery.graphql";
import { IAMRelayProvider } from "/providers/IAMRelayProvider";
function APIKeysPageLoaderInner() {

View File

@@ -1,209 +0,0 @@
/**
* @generated SignedSource<<83cc00d864e6388ef2156203499da849>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type APIKeysPageQuery$variables = Record<PropertyKey, never>;
export type APIKeysPageQuery$data = {
readonly viewer: {
readonly " $fragmentSpreads": FragmentRefs<"PersonalAPIKeyListFragment">;
} | null | undefined;
};
export type APIKeysPageQuery = {
response: APIKeysPageQuery$data;
variables: APIKeysPageQuery$variables;
};
const node: ConcreteRequest = (function(){
var v0 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
v1 = [
{
"kind": "Literal",
"name": "first",
"value": 1000
}
];
return {
"fragment": {
"argumentDefinitions": [],
"kind": "Fragment",
"metadata": null,
"name": "APIKeysPageQuery",
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Identity",
"kind": "LinkedField",
"name": "viewer",
"plural": false,
"selections": [
{
"args": null,
"kind": "FragmentSpread",
"name": "PersonalAPIKeyListFragment"
}
],
"storageKey": null
}
],
"type": "Query",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": [],
"kind": "Operation",
"name": "APIKeysPageQuery",
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Identity",
"kind": "LinkedField",
"name": "viewer",
"plural": false,
"selections": [
(v0/*: any*/),
{
"alias": null,
"args": (v1/*: any*/),
"concreteType": "PersonalAPIKeyConnection",
"kind": "LinkedField",
"name": "personalAPIKeys",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "PersonalAPIKeyEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "PersonalAPIKey",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v0/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "name",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "createdAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "expiresAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "lastUsedAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "cursor",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "PageInfo",
"kind": "LinkedField",
"name": "pageInfo",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "endCursor",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasNextPage",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": "personalAPIKeys(first:1000)"
},
{
"alias": null,
"args": (v1/*: any*/),
"filters": null,
"handle": "connection",
"key": "PersonalAPIKeyListFragment_personalAPIKeys",
"kind": "LinkedHandle",
"name": "personalAPIKeys"
}
],
"storageKey": null
}
]
},
"params": {
"cacheID": "14e698e7b6edf0afe9cf3398986cd529",
"id": null,
"metadata": {},
"name": "APIKeysPageQuery",
"operationKind": "query",
"text": "query APIKeysPageQuery {\n viewer {\n ...PersonalAPIKeyListFragment\n id\n }\n}\n\nfragment PersonalAPIKeyListFragment on Identity {\n id\n personalAPIKeys(first: 1000) {\n edges {\n node {\n id\n name\n createdAt\n expiresAt\n lastUsedAt\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n}\n"
}
};
})();
(node as any).hash = "e99d7224e11d4e9060518c3155f98a7d";
export default node;

View File

@@ -27,10 +27,10 @@ import {
useToast,
} from "@probo/ui";
import { useFormWithSchema } from "/hooks/useFormWithSchema";
import type { PersonalAPIKeyListFragment$key } from "./__generated__/PersonalAPIKeyListFragment.graphql";
import type { PersonalAPIKeyListCreateMutation } from "./__generated__/PersonalAPIKeyListCreateMutation.graphql";
import type { PersonalAPIKeyListRevokeMutation } from "./__generated__/PersonalAPIKeyListRevokeMutation.graphql";
import type { PersonalAPIKeyListRevealTokenMutation } from "./__generated__/PersonalAPIKeyListRevealTokenMutation.graphql";
import type { PersonalAPIKeyListFragment$key } from "/__generated__/iam/PersonalAPIKeyListFragment.graphql";
import type { PersonalAPIKeyListCreateMutation } from "/__generated__/iam/PersonalAPIKeyListCreateMutation.graphql";
import type { PersonalAPIKeyListRevokeMutation } from "/__generated__/iam/PersonalAPIKeyListRevokeMutation.graphql";
import type { PersonalAPIKeyListRevealTokenMutation } from "/__generated__/iam/PersonalAPIKeyListRevealTokenMutation.graphql";
import { PersonalAPIKeysTable } from "./PersonalAPIKeysTable";
import { PersonalAPIKeyTokenDialog } from "./PersonalAPIKeyTokenDialog";
@@ -157,7 +157,7 @@ export function PersonalAPIKeyList(props: {
const expiresAt = computeExpiresAt(data.expiresIn);
const connectionID = ConnectionHandler.getConnectionID(
viewer.id,
"PersonalAPIKeyListFragment_personalAPIKeys"
"PersonalAPIKeyListFragment_personalAPIKeys",
);
createCommit({
@@ -207,7 +207,7 @@ export function PersonalAPIKeyList(props: {
if (!viewerRecord) return;
const connection = ConnectionHandler.getConnection(
viewerRecord,
"PersonalAPIKeyListFragment_personalAPIKeys"
"PersonalAPIKeyListFragment_personalAPIKeys",
);
if (connection) {
ConnectionHandler.deleteNode(connection, key.id);
@@ -219,7 +219,7 @@ export function PersonalAPIKeyList(props: {
title: __("Error"),
description: formatError(
__("Failed to revoke API key."),
errors as GraphQLError[]
errors as GraphQLError[],
),
variant: "error",
});
@@ -238,7 +238,7 @@ export function PersonalAPIKeyList(props: {
title: __("Error"),
description: formatError(
__("Failed to revoke API key."),
error
error,
),
variant: "error",
});
@@ -250,11 +250,11 @@ export function PersonalAPIKeyList(props: {
{
title: __("Revoke API Key"),
message: __(
`Are you sure you want to revoke the API key "${key.name}"? This action cannot be undone.`
`Are you sure you want to revoke the API key "${key.name}"? This action cannot be undone.`,
),
label: __("Revoke"),
variant: "danger",
}
},
);
};
@@ -271,7 +271,7 @@ export function PersonalAPIKeyList(props: {
title: __("Error"),
description: formatError(
__("Failed to reveal API key token."),
errors as any
errors as any,
),
variant: "error",
});
@@ -296,7 +296,7 @@ export function PersonalAPIKeyList(props: {
title: __("Error"),
description: formatError(
__("Failed to reveal API key token."),
error
error,
),
variant: "error",
});

View File

@@ -1,202 +0,0 @@
/**
* @generated SignedSource<<875eae6f5455a17a1bb8e0590c7acdb0>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type CreatePersonalAPIKeyInput = {
expiresAt: any;
name: string;
organizationIds: ReadonlyArray<string>;
};
export type PersonalAPIKeyListCreateMutation$variables = {
connections: ReadonlyArray<string>;
input: CreatePersonalAPIKeyInput;
};
export type PersonalAPIKeyListCreateMutation$data = {
readonly createPersonalAPIKey: {
readonly personalAPIKeyEdge: {
readonly node: {
readonly createdAt: any;
readonly expiresAt: any;
readonly id: string;
readonly lastUsedAt: any | null | undefined;
readonly name: string;
};
};
readonly token: string;
} | null | undefined;
};
export type PersonalAPIKeyListCreateMutation = {
response: PersonalAPIKeyListCreateMutation$data;
variables: PersonalAPIKeyListCreateMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "connections"
},
v1 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "input"
},
v2 = [
{
"kind": "Variable",
"name": "input",
"variableName": "input"
}
],
v3 = {
"alias": null,
"args": null,
"concreteType": "PersonalAPIKeyEdge",
"kind": "LinkedField",
"name": "personalAPIKeyEdge",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "PersonalAPIKey",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "name",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "createdAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "expiresAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "lastUsedAt",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
},
v4 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "token",
"storageKey": null
};
return {
"fragment": {
"argumentDefinitions": [
(v0/*: any*/),
(v1/*: any*/)
],
"kind": "Fragment",
"metadata": null,
"name": "PersonalAPIKeyListCreateMutation",
"selections": [
{
"alias": null,
"args": (v2/*: any*/),
"concreteType": "CreatePersonalAPIKeyPayload",
"kind": "LinkedField",
"name": "createPersonalAPIKey",
"plural": false,
"selections": [
(v3/*: any*/),
(v4/*: any*/)
],
"storageKey": null
}
],
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": [
(v1/*: any*/),
(v0/*: any*/)
],
"kind": "Operation",
"name": "PersonalAPIKeyListCreateMutation",
"selections": [
{
"alias": null,
"args": (v2/*: any*/),
"concreteType": "CreatePersonalAPIKeyPayload",
"kind": "LinkedField",
"name": "createPersonalAPIKey",
"plural": false,
"selections": [
(v3/*: any*/),
{
"alias": null,
"args": null,
"filters": null,
"handle": "prependEdge",
"key": "",
"kind": "LinkedHandle",
"name": "personalAPIKeyEdge",
"handleArgs": [
{
"kind": "Variable",
"name": "connections",
"variableName": "connections"
}
]
},
(v4/*: any*/)
],
"storageKey": null
}
]
},
"params": {
"cacheID": "5b1f6109730bd9f261afd6635d568b59",
"id": null,
"metadata": {},
"name": "PersonalAPIKeyListCreateMutation",
"operationKind": "mutation",
"text": "mutation PersonalAPIKeyListCreateMutation(\n $input: CreatePersonalAPIKeyInput!\n) {\n createPersonalAPIKey(input: $input) {\n personalAPIKeyEdge {\n node {\n id\n name\n createdAt\n expiresAt\n lastUsedAt\n }\n }\n token\n }\n}\n"
}
};
})();
(node as any).hash = "c7e932ad41ff2740e8687b7edb904431";
export default node;

View File

@@ -1,176 +0,0 @@
/**
* @generated SignedSource<<e518a98137eb07e37499d945991b15ed>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type PersonalAPIKeyListFragment$data = {
readonly id: string;
readonly personalAPIKeys: {
readonly edges: ReadonlyArray<{
readonly node: {
readonly createdAt: any;
readonly expiresAt: any;
readonly id: string;
readonly lastUsedAt: any | null | undefined;
readonly name: string;
};
}>;
};
readonly " $fragmentType": "PersonalAPIKeyListFragment";
};
export type PersonalAPIKeyListFragment$key = {
readonly " $data"?: PersonalAPIKeyListFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"PersonalAPIKeyListFragment">;
};
const node: ReaderFragment = (function(){
var v0 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
};
return {
"argumentDefinitions": [],
"kind": "Fragment",
"metadata": {
"connection": [
{
"count": null,
"cursor": null,
"direction": "forward",
"path": [
"personalAPIKeys"
]
}
]
},
"name": "PersonalAPIKeyListFragment",
"selections": [
(v0/*: any*/),
{
"kind": "RequiredField",
"field": {
"alias": "personalAPIKeys",
"args": null,
"concreteType": "PersonalAPIKeyConnection",
"kind": "LinkedField",
"name": "__PersonalAPIKeyListFragment_personalAPIKeys_connection",
"plural": false,
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "PersonalAPIKeyEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "PersonalAPIKey",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v0/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "name",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "createdAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "expiresAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "lastUsedAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "cursor",
"storageKey": null
}
],
"storageKey": null
},
"action": "THROW"
},
{
"alias": null,
"args": null,
"concreteType": "PageInfo",
"kind": "LinkedField",
"name": "pageInfo",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "endCursor",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasNextPage",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
},
"action": "THROW"
}
],
"type": "Identity",
"abstractKey": null
};
})();
(node as any).hash = "70fa6b4e568fc1598b8dc23a030428b5";
export default node;

View File

@@ -1,92 +0,0 @@
/**
* @generated SignedSource<<7a6fb678e9147fd1810e02bd09d5cef1>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type RevealPersonalAPIKeyTokenInput = {
tokenId: string;
};
export type PersonalAPIKeyListRevealTokenMutation$variables = {
input: RevealPersonalAPIKeyTokenInput;
};
export type PersonalAPIKeyListRevealTokenMutation$data = {
readonly revealPersonalAPIKeyToken: {
readonly token: string;
} | null | undefined;
};
export type PersonalAPIKeyListRevealTokenMutation = {
response: PersonalAPIKeyListRevealTokenMutation$data;
variables: PersonalAPIKeyListRevealTokenMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "input"
}
],
v1 = [
{
"alias": null,
"args": [
{
"kind": "Variable",
"name": "input",
"variableName": "input"
}
],
"concreteType": "RevealPersonalAPIKeyTokenPayload",
"kind": "LinkedField",
"name": "revealPersonalAPIKeyToken",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "token",
"storageKey": null
}
],
"storageKey": null
}
];
return {
"fragment": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Fragment",
"metadata": null,
"name": "PersonalAPIKeyListRevealTokenMutation",
"selections": (v1/*: any*/),
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "PersonalAPIKeyListRevealTokenMutation",
"selections": (v1/*: any*/)
},
"params": {
"cacheID": "25ffba7c8a69e22dcc46b56a6c8633ed",
"id": null,
"metadata": {},
"name": "PersonalAPIKeyListRevealTokenMutation",
"operationKind": "mutation",
"text": "mutation PersonalAPIKeyListRevealTokenMutation(\n $input: RevealPersonalAPIKeyTokenInput!\n) {\n revealPersonalAPIKeyToken(input: $input) {\n token\n }\n}\n"
}
};
})();
(node as any).hash = "7dad7ebd6e8086a01b2bac8aa80c532e";
export default node;

View File

@@ -1,92 +0,0 @@
/**
* @generated SignedSource<<84eef5bca22c2ad2b73bbe068767e35a>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type RevokePersonalAPIKeyInput = {
tokenId: string;
};
export type PersonalAPIKeyListRevokeMutation$variables = {
input: RevokePersonalAPIKeyInput;
};
export type PersonalAPIKeyListRevokeMutation$data = {
readonly revokePersonalAPIKey: {
readonly success: boolean;
} | null | undefined;
};
export type PersonalAPIKeyListRevokeMutation = {
response: PersonalAPIKeyListRevokeMutation$data;
variables: PersonalAPIKeyListRevokeMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "input"
}
],
v1 = [
{
"alias": null,
"args": [
{
"kind": "Variable",
"name": "input",
"variableName": "input"
}
],
"concreteType": "RevokePersonalAPIKeyPayload",
"kind": "LinkedField",
"name": "revokePersonalAPIKey",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "success",
"storageKey": null
}
],
"storageKey": null
}
];
return {
"fragment": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Fragment",
"metadata": null,
"name": "PersonalAPIKeyListRevokeMutation",
"selections": (v1/*: any*/),
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "PersonalAPIKeyListRevokeMutation",
"selections": (v1/*: any*/)
},
"params": {
"cacheID": "fd05bb0236b583ca54be466cffe8f45b",
"id": null,
"metadata": {},
"name": "PersonalAPIKeyListRevokeMutation",
"operationKind": "mutation",
"text": "mutation PersonalAPIKeyListRevokeMutation(\n $input: RevokePersonalAPIKeyInput!\n) {\n revokePersonalAPIKey(input: $input) {\n success\n }\n}\n"
}
};
})();
(node as any).hash = "34ef04d19251c479827ca5028346f65b";
export default node;

View File

@@ -4,7 +4,7 @@ import type { FormEventHandler } from "react";
import { useMutation } from "react-relay";
import { Link } from "react-router";
import { graphql } from "relay-runtime";
import type { SignInPageMutation } from "./__generated__/SignInPageMutation.graphql";
import type { SignInPageMutation } from "/__generated__/iam/SignInPageMutation.graphql";
const signInMutation = graphql`
mutation SignInPageMutation($input: SignInInput!) {

View File

@@ -1,106 +0,0 @@
/**
* @generated SignedSource<<5b81c905d9cd12c78b5f77efdcc654ea>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type SignInInput = {
email: any;
password: string;
};
export type SignInPageMutation$variables = {
input: SignInInput;
};
export type SignInPageMutation$data = {
readonly signIn: {
readonly session: {
readonly id: string;
} | null | undefined;
} | null | undefined;
};
export type SignInPageMutation = {
response: SignInPageMutation$data;
variables: SignInPageMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "input"
}
],
v1 = [
{
"alias": null,
"args": [
{
"kind": "Variable",
"name": "input",
"variableName": "input"
}
],
"concreteType": "SignInPayload",
"kind": "LinkedField",
"name": "signIn",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Session",
"kind": "LinkedField",
"name": "session",
"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": "SignInPageMutation",
"selections": (v1/*: any*/),
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "SignInPageMutation",
"selections": (v1/*: any*/)
},
"params": {
"cacheID": "8e13b6ebdfd4ca6bde158dff53f596db",
"id": null,
"metadata": {},
"name": "SignInPageMutation",
"operationKind": "mutation",
"text": "mutation SignInPageMutation(\n $input: SignInInput!\n) {\n signIn(input: $input) {\n session {\n id\n }\n }\n}\n"
}
};
})();
(node as any).hash = "6424104df106b64a6237d92299239a63";
export default node;

View File

@@ -3,7 +3,7 @@ import { Link, Outlet } from "react-router";
import { Badge, Button, IconPeopleAdd, Layout, Skeleton } from "@probo/ui";
import { Sidebar } from "./_components/Sidebar";
import { MembershipsDropdown } from "./MembershipsDropdown";
import type { MembershipLayoutQuery } from "./__generated__/MembershipLayoutQuery.graphql";
import type { MembershipLayoutQuery } from "/__generated__/iam/MembershipLayoutQuery.graphql";
import { PermissionsProvider } from "/providers/PermissionsProvider";
import { SessionDropdown } from "./_components/SessionDropdown";
import { Suspense } from "react";

View File

@@ -2,7 +2,7 @@ import { useQueryLoader } from "react-relay";
import { Suspense, useEffect } from "react";
import { Skeleton } from "@probo/ui";
import { useOrganizationId } from "/hooks/useOrganizationId";
import type { MembershipLayoutQuery } from "./__generated__/MembershipLayoutQuery.graphql";
import type { MembershipLayoutQuery } from "/__generated__/iam/MembershipLayoutQuery.graphql";
import { MembershipLayout, membershipLayoutQuery } from "./MembershipLayout";
import { IAMRelayProvider } from "/providers/IAMRelayProvider";

View File

@@ -18,10 +18,10 @@ import {
MembershipsDropdownMenu,
membershipsDropdownMenuQuery,
} from "./MembershipsDropdownMenu";
import type { MembershipsDropdownMenuQuery } from "./__generated__/MembershipsDropdownMenuQuery.graphql";
import type { MembershipsDropdownMenuQuery } from "/__generated__/iam/MembershipsDropdownMenuQuery.graphql";
import { Link } from "react-router";
import type { MembershipsDropdown_organizationFragment$key } from "./__generated__/MembershipsDropdown_organizationFragment.graphql";
import type { MembershipsDropdown_viewerFragment$key } from "./__generated__/MembershipsDropdown_viewerFragment.graphql";
import type { MembershipsDropdown_organizationFragment$key } from "/__generated__/iam/MembershipsDropdown_organizationFragment.graphql";
import type { MembershipsDropdown_viewerFragment$key } from "/__generated__/iam/MembershipsDropdown_viewerFragment.graphql";
const organizationFragment = graphql`
fragment MembershipsDropdown_organizationFragment on Organization {

View File

@@ -1,5 +1,5 @@
import { graphql, usePreloadedQuery, type PreloadedQuery } from "react-relay";
import type { MembershipsDropdownMenuQuery } from "./__generated__/MembershipsDropdownMenuQuery.graphql";
import type { MembershipsDropdownMenuQuery } from "/__generated__/iam/MembershipsDropdownMenuQuery.graphql";
import { useMemo } from "react";
import { MembershipsDropdownMenuItem } from "./MembershipsDropdownMenuItem";

View File

@@ -6,12 +6,12 @@ import {
IconLock,
} from "@probo/ui";
import { graphql } from "relay-runtime";
import type { MembershipsDropdownMenuItemFragment$key } from "./__generated__/MembershipsDropdownMenuItemFragment.graphql";
import type { MembershipsDropdownMenuItemFragment$key } from "/__generated__/iam/MembershipsDropdownMenuItemFragment.graphql";
import { useFragment, useMutation } from "react-relay";
import { parseDate } from "@probo/helpers";
import { useCallback } from "react";
import { useNavigate } from "react-router";
import type { MembershipsDropdownMenuItem_assumeMutation } from "./__generated__/MembershipsDropdownMenuItem_assumeMutation.graphql";
import type { MembershipsDropdownMenuItem_assumeMutation } from "/__generated__/iam/MembershipsDropdownMenuItem_assumeMutation.graphql";
const fragment = graphql`
fragment MembershipsDropdownMenuItemFragment on Membership {

View File

@@ -10,7 +10,7 @@ import {
import { useMemo, useState } from "react";
import { InvitationCard } from "./_components/InvitationCard";
import { MembershipCard } from "./_components/MembershipCard";
import type { MembershipsPageQuery } from "./__generated__/MembershipsPageQuery.graphql";
import type { MembershipsPageQuery } from "/__generated__/iam/MembershipsPageQuery.graphql";
export const membershipsPageQuery = graphql`
query MembershipsPageQuery {

View File

@@ -1,7 +1,7 @@
import { useQueryLoader } from "react-relay";
import { Suspense, useEffect } from "react";
import { CenteredLayoutSkeleton } from "@probo/ui";
import type { MembershipsPageQuery } from "./__generated__/MembershipsPageQuery.graphql";
import type { MembershipsPageQuery } from "/__generated__/iam/MembershipsPageQuery.graphql";
import { MembershipsPage, membershipsPageQuery } from "./MembershipsPage";
import { IAMRelayProvider } from "/providers/IAMRelayProvider";

View File

@@ -1,550 +0,0 @@
/**
* @generated SignedSource<<90e5e1f754a2b18caa9b6f4f208ec5a8>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type MembershipLayoutQuery$variables = {
organizationId: string;
};
export type MembershipLayoutQuery$data = {
readonly organization: {
readonly " $fragmentSpreads": FragmentRefs<"MembershipsDropdown_organizationFragment" | "SessionDropdownFragment">;
};
readonly viewer: {
readonly pendingInvitations: {
readonly totalCount: number;
};
readonly " $fragmentSpreads": FragmentRefs<"MembershipsDropdown_viewerFragment" | "SidebarFragment">;
};
};
export type MembershipLayoutQuery = {
response: MembershipLayoutQuery$data;
variables: MembershipLayoutQuery$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "organizationId"
}
],
v1 = {
"kind": "Variable",
"name": "id",
"variableName": "organizationId"
},
v2 = [
(v1/*: any*/)
],
v3 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "totalCount",
"storageKey": null
},
v4 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
};
return {
"fragment": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Fragment",
"metadata": null,
"name": "MembershipLayoutQuery",
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": "organization",
"args": (v2/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
{
"kind": "InlineFragment",
"selections": [
{
"args": null,
"kind": "FragmentSpread",
"name": "MembershipsDropdown_organizationFragment"
},
{
"args": null,
"kind": "FragmentSpread",
"name": "SessionDropdownFragment"
}
],
"type": "Organization",
"abstractKey": null
}
],
"storageKey": null
},
"action": "THROW"
},
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "Identity",
"kind": "LinkedField",
"name": "viewer",
"plural": false,
"selections": [
{
"args": [
{
"kind": "Variable",
"name": "organizationId",
"variableName": "organizationId"
}
],
"kind": "FragmentSpread",
"name": "SidebarFragment"
},
{
"args": null,
"kind": "FragmentSpread",
"name": "MembershipsDropdown_viewerFragment"
},
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "InvitationConnection",
"kind": "LinkedField",
"name": "pendingInvitations",
"plural": false,
"selections": [
{
"kind": "RequiredField",
"field": (v3/*: any*/),
"action": "THROW"
}
],
"storageKey": null
},
"action": "THROW"
}
],
"storageKey": null
},
"action": "THROW"
}
],
"type": "Query",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "MembershipLayoutQuery",
"selections": [
{
"alias": "organization",
"args": (v2/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
},
{
"kind": "InlineFragment",
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "name",
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "Membership",
"kind": "LinkedField",
"name": "viewerMembership",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Identity",
"kind": "LinkedField",
"name": "identity",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "email",
"storageKey": null
},
(v4/*: any*/)
],
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "MembershipProfile",
"kind": "LinkedField",
"name": "profile",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "fullName",
"storageKey": null
},
(v4/*: any*/)
],
"storageKey": null
},
(v4/*: any*/)
],
"storageKey": null
}
],
"type": "Organization",
"abstractKey": null
},
(v4/*: any*/)
],
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "Identity",
"kind": "LinkedField",
"name": "viewer",
"plural": false,
"selections": [
{
"alias": "canListMeetings",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:meeting:list"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListTasks",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:task:list"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListMeasures",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:measures:list"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListRisks",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:risk:list"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListFrameworks",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:frameworks:list"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListPeople",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:people:list"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListVendors",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:vendor:list"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListDocuments",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:document:list"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListAssets",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:asset:list"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListData",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:datum:list"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListAudits",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:audit:list"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListNonconformities",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:nonconformity:list"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListObligations",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:obligation:list"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListContinualImprovements",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:continual-improvement:list"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListProcessingActivities",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:processing-activity:list"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListStatesOfApplicability",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:state-of-applicability:list"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListSnapshots",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:snapshot:list"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canGetTrustCenter",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:trust-center:get"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canUpdateOrganization",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "iam:organization:update"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "InvitationConnection",
"kind": "LinkedField",
"name": "pendingInvitations",
"plural": false,
"selections": [
(v3/*: any*/)
],
"storageKey": null
},
(v4/*: any*/)
],
"storageKey": null
}
]
},
"params": {
"cacheID": "1fb1002661548737fdb22694a23bca35",
"id": null,
"metadata": {},
"name": "MembershipLayoutQuery",
"operationKind": "query",
"text": "query MembershipLayoutQuery(\n $organizationId: ID!\n) {\n organization: node(id: $organizationId) {\n __typename\n ... on Organization {\n ...MembershipsDropdown_organizationFragment\n ...SessionDropdownFragment\n }\n id\n }\n viewer {\n ...SidebarFragment_4xMPKw\n ...MembershipsDropdown_viewerFragment\n pendingInvitations {\n totalCount\n }\n id\n }\n}\n\nfragment MembershipsDropdown_organizationFragment on Organization {\n name\n}\n\nfragment MembershipsDropdown_viewerFragment on Identity {\n pendingInvitations {\n totalCount\n }\n}\n\nfragment SessionDropdownFragment on Organization {\n viewerMembership {\n identity {\n email\n id\n }\n profile {\n fullName\n id\n }\n id\n }\n}\n\nfragment SidebarFragment_4xMPKw on Identity {\n canListMeetings: permission(action: \"core:meeting:list\", id: $organizationId)\n canListTasks: permission(action: \"core:task:list\", id: $organizationId)\n canListMeasures: permission(action: \"core:measures:list\", id: $organizationId)\n canListRisks: permission(action: \"core:risk:list\", id: $organizationId)\n canListFrameworks: permission(action: \"core:frameworks:list\", id: $organizationId)\n canListPeople: permission(action: \"core:people:list\", id: $organizationId)\n canListVendors: permission(action: \"core:vendor:list\", id: $organizationId)\n canListDocuments: permission(action: \"core:document:list\", id: $organizationId)\n canListAssets: permission(action: \"core:asset:list\", id: $organizationId)\n canListData: permission(action: \"core:datum:list\", id: $organizationId)\n canListAudits: permission(action: \"core:audit:list\", id: $organizationId)\n canListNonconformities: permission(action: \"core:nonconformity:list\", id: $organizationId)\n canListObligations: permission(action: \"core:obligation:list\", id: $organizationId)\n canListContinualImprovements: permission(action: \"core:continual-improvement:list\", id: $organizationId)\n canListProcessingActivities: permission(action: \"core:processing-activity:list\", id: $organizationId)\n canListStatesOfApplicability: permission(action: \"core:state-of-applicability:list\", id: $organizationId)\n canListSnapshots: permission(action: \"core:snapshot:list\", id: $organizationId)\n canGetTrustCenter: permission(action: \"core:trust-center:get\", id: $organizationId)\n canUpdateOrganization: permission(action: \"iam:organization:update\", id: $organizationId)\n}\n"
}
};
})();
(node as any).hash = "bea3f973a014e38e291ecd177da5c5f5";
export default node;

View File

@@ -1,103 +0,0 @@
/**
* @generated SignedSource<<353905ded51be0954c17254a66a133d5>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type MembershipsDropdownMenuItemFragment$data = {
readonly id: string;
readonly lastSession: {
readonly expiresAt: any;
readonly id: string;
} | null | undefined;
readonly organization: {
readonly id: string;
readonly logoUrl: string | null | undefined;
readonly name: string;
};
readonly " $fragmentType": "MembershipsDropdownMenuItemFragment";
};
export type MembershipsDropdownMenuItemFragment$key = {
readonly " $data"?: MembershipsDropdownMenuItemFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"MembershipsDropdownMenuItemFragment">;
};
const node: ReaderFragment = (function(){
var v0 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
};
return {
"argumentDefinitions": [],
"kind": "Fragment",
"metadata": null,
"name": "MembershipsDropdownMenuItemFragment",
"selections": [
(v0/*: any*/),
{
"alias": null,
"args": null,
"concreteType": "Session",
"kind": "LinkedField",
"name": "lastSession",
"plural": false,
"selections": [
(v0/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "expiresAt",
"storageKey": null
}
],
"storageKey": null
},
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "Organization",
"kind": "LinkedField",
"name": "organization",
"plural": false,
"selections": [
(v0/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "logoUrl",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "name",
"storageKey": null
}
],
"storageKey": null
},
"action": "THROW"
}
],
"type": "Membership",
"abstractKey": null
};
})();
(node as any).hash = "915a6fb0071b4890010401a56f3affa6";
export default node;

View File

@@ -1,145 +0,0 @@
/**
* @generated SignedSource<<a3cc5c262b8a01f267eb2b549ab95a27>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type ReauthenticationReason = "POLICY_REQUIREMENT" | "SENSITIVE_ACTION" | "SESSION_EXPIRED";
export type AssumeOrganizationSessionInput = {
organizationId: string;
};
export type MembershipsDropdownMenuItem_assumeMutation$variables = {
input: AssumeOrganizationSessionInput;
};
export type MembershipsDropdownMenuItem_assumeMutation$data = {
readonly assumeOrganizationSession: {
readonly result: {
readonly __typename: "PasswordRequired";
readonly reason: ReauthenticationReason;
} | {
readonly __typename: "SAMLAuthenticationRequired";
readonly reason: ReauthenticationReason;
readonly redirectUrl: string;
} | {
// This will never be '%other', but we need some
// value in case none of the concrete values match.
readonly __typename: "%other";
};
} | null | undefined;
};
export type MembershipsDropdownMenuItem_assumeMutation = {
response: MembershipsDropdownMenuItem_assumeMutation$data;
variables: MembershipsDropdownMenuItem_assumeMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "input"
}
],
v1 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "reason",
"storageKey": null
},
v2 = [
{
"alias": null,
"args": [
{
"kind": "Variable",
"name": "input",
"variableName": "input"
}
],
"concreteType": "AssumeOrganizationSessionPayload",
"kind": "LinkedField",
"name": "assumeOrganizationSession",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": null,
"kind": "LinkedField",
"name": "result",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
},
{
"kind": "InlineFragment",
"selections": [
(v1/*: any*/)
],
"type": "PasswordRequired",
"abstractKey": null
},
{
"kind": "InlineFragment",
"selections": [
(v1/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "redirectUrl",
"storageKey": null
}
],
"type": "SAMLAuthenticationRequired",
"abstractKey": null
}
],
"storageKey": null
}
],
"storageKey": null
}
];
return {
"fragment": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Fragment",
"metadata": null,
"name": "MembershipsDropdownMenuItem_assumeMutation",
"selections": (v2/*: any*/),
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "MembershipsDropdownMenuItem_assumeMutation",
"selections": (v2/*: any*/)
},
"params": {
"cacheID": "21ebf9c598bd39f2abcb0ace0d9c0c4b",
"id": null,
"metadata": {},
"name": "MembershipsDropdownMenuItem_assumeMutation",
"operationKind": "mutation",
"text": "mutation MembershipsDropdownMenuItem_assumeMutation(\n $input: AssumeOrganizationSessionInput!\n) {\n assumeOrganizationSession(input: $input) {\n result {\n __typename\n ... on PasswordRequired {\n reason\n }\n ... on SAMLAuthenticationRequired {\n reason\n redirectUrl\n }\n }\n }\n}\n"
}
};
})();
(node as any).hash = "416f824d526d3f92797fec0eb9c2e590";
export default node;

View File

@@ -1,263 +0,0 @@
/**
* @generated SignedSource<<b51fba8f2d50c85b2eeb51c658d82e17>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type MembershipsDropdownMenuQuery$variables = Record<PropertyKey, never>;
export type MembershipsDropdownMenuQuery$data = {
readonly viewer: {
readonly memberships: {
readonly edges: ReadonlyArray<{
readonly node: {
readonly id: string;
readonly organization: {
readonly name: string;
};
readonly " $fragmentSpreads": FragmentRefs<"MembershipsDropdownMenuItemFragment">;
};
}>;
};
};
};
export type MembershipsDropdownMenuQuery = {
response: MembershipsDropdownMenuQuery$data;
variables: MembershipsDropdownMenuQuery$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"kind": "Literal",
"name": "first",
"value": 1000
},
{
"kind": "Literal",
"name": "orderBy",
"value": {
"direction": "DESC",
"field": "CREATED_AT"
}
}
],
v1 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
v2 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "name",
"storageKey": null
};
return {
"fragment": {
"argumentDefinitions": [],
"kind": "Fragment",
"metadata": null,
"name": "MembershipsDropdownMenuQuery",
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "Identity",
"kind": "LinkedField",
"name": "viewer",
"plural": false,
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": (v0/*: any*/),
"concreteType": "MembershipConnection",
"kind": "LinkedField",
"name": "memberships",
"plural": false,
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "MembershipEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "Membership",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v1/*: any*/),
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "Organization",
"kind": "LinkedField",
"name": "organization",
"plural": false,
"selections": [
(v2/*: any*/)
],
"storageKey": null
},
"action": "THROW"
},
{
"args": null,
"kind": "FragmentSpread",
"name": "MembershipsDropdownMenuItemFragment"
}
],
"storageKey": null
},
"action": "THROW"
}
],
"storageKey": null
},
"action": "THROW"
}
],
"storageKey": "memberships(first:1000,orderBy:{\"direction\":\"DESC\",\"field\":\"CREATED_AT\"})"
},
"action": "THROW"
}
],
"storageKey": null
},
"action": "THROW"
}
],
"type": "Query",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": [],
"kind": "Operation",
"name": "MembershipsDropdownMenuQuery",
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Identity",
"kind": "LinkedField",
"name": "viewer",
"plural": false,
"selections": [
{
"alias": null,
"args": (v0/*: any*/),
"concreteType": "MembershipConnection",
"kind": "LinkedField",
"name": "memberships",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "MembershipEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Membership",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v1/*: any*/),
{
"alias": null,
"args": null,
"concreteType": "Organization",
"kind": "LinkedField",
"name": "organization",
"plural": false,
"selections": [
(v2/*: any*/),
(v1/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "logoUrl",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "Session",
"kind": "LinkedField",
"name": "lastSession",
"plural": false,
"selections": [
(v1/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "expiresAt",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": "memberships(first:1000,orderBy:{\"direction\":\"DESC\",\"field\":\"CREATED_AT\"})"
},
(v1/*: any*/)
],
"storageKey": null
}
]
},
"params": {
"cacheID": "edb71632c35f1f8aefa1bb426c81a985",
"id": null,
"metadata": {},
"name": "MembershipsDropdownMenuQuery",
"operationKind": "query",
"text": "query MembershipsDropdownMenuQuery {\n viewer {\n memberships(first: 1000, orderBy: {direction: DESC, field: CREATED_AT}) {\n edges {\n node {\n id\n organization {\n name\n id\n }\n ...MembershipsDropdownMenuItemFragment\n }\n }\n }\n id\n }\n}\n\nfragment MembershipsDropdownMenuItemFragment on Membership {\n id\n lastSession {\n id\n expiresAt\n }\n organization {\n id\n logoUrl\n name\n }\n}\n"
}
};
})();
(node as any).hash = "aa787b33a7cb3046d30fd638f4850621";
export default node;

View File

@@ -1,42 +0,0 @@
/**
* @generated SignedSource<<84862118e94833cec2ce241e7329ba04>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type MembershipsDropdown_organizationFragment$data = {
readonly name: string;
readonly " $fragmentType": "MembershipsDropdown_organizationFragment";
};
export type MembershipsDropdown_organizationFragment$key = {
readonly " $data"?: MembershipsDropdown_organizationFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"MembershipsDropdown_organizationFragment">;
};
const node: ReaderFragment = {
"argumentDefinitions": [],
"kind": "Fragment",
"metadata": null,
"name": "MembershipsDropdown_organizationFragment",
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "name",
"storageKey": null
}
],
"type": "Organization",
"abstractKey": null
};
(node as any).hash = "89ef8f037f10c51776df8e5add87cc29";
export default node;

View File

@@ -1,63 +0,0 @@
/**
* @generated SignedSource<<842fffc896db6311ff3c5901eae70176>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type MembershipsDropdown_viewerFragment$data = {
readonly pendingInvitations: {
readonly totalCount: number;
};
readonly " $fragmentType": "MembershipsDropdown_viewerFragment";
};
export type MembershipsDropdown_viewerFragment$key = {
readonly " $data"?: MembershipsDropdown_viewerFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"MembershipsDropdown_viewerFragment">;
};
const node: ReaderFragment = {
"argumentDefinitions": [],
"kind": "Fragment",
"metadata": null,
"name": "MembershipsDropdown_viewerFragment",
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "InvitationConnection",
"kind": "LinkedField",
"name": "pendingInvitations",
"plural": false,
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "totalCount",
"storageKey": null
},
"action": "THROW"
}
],
"storageKey": null
},
"action": "THROW"
}
],
"type": "Identity",
"abstractKey": null
};
(node as any).hash = "96b64fbc2481273728051e42d74bc8b5";
export default node;

View File

@@ -1,383 +0,0 @@
/**
* @generated SignedSource<<ab48c4d454e4f9fa4472a103b8144b7c>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type MembershipsPageQuery$variables = Record<PropertyKey, never>;
export type MembershipsPageQuery$data = {
readonly viewer: {
readonly memberships: {
readonly edges: ReadonlyArray<{
readonly node: {
readonly id: string;
readonly organization: {
readonly name: string;
};
readonly " $fragmentSpreads": FragmentRefs<"MembershipCardFragment">;
};
}>;
};
readonly pendingInvitations: {
readonly edges: ReadonlyArray<{
readonly node: {
readonly id: string;
readonly " $fragmentSpreads": FragmentRefs<"InvitationCardFragment">;
};
}>;
};
};
};
export type MembershipsPageQuery = {
response: MembershipsPageQuery$data;
variables: MembershipsPageQuery$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"kind": "Literal",
"name": "first",
"value": 1000
},
{
"kind": "Literal",
"name": "orderBy",
"value": {
"direction": "DESC",
"field": "CREATED_AT"
}
}
],
v1 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
v2 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "name",
"storageKey": null
};
return {
"fragment": {
"argumentDefinitions": [],
"kind": "Fragment",
"metadata": null,
"name": "MembershipsPageQuery",
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "Identity",
"kind": "LinkedField",
"name": "viewer",
"plural": false,
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": (v0/*: any*/),
"concreteType": "MembershipConnection",
"kind": "LinkedField",
"name": "memberships",
"plural": false,
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "MembershipEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "Membership",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v1/*: any*/),
{
"args": null,
"kind": "FragmentSpread",
"name": "MembershipCardFragment"
},
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "Organization",
"kind": "LinkedField",
"name": "organization",
"plural": false,
"selections": [
(v2/*: any*/)
],
"storageKey": null
},
"action": "THROW"
}
],
"storageKey": null
},
"action": "THROW"
}
],
"storageKey": null
},
"action": "THROW"
}
],
"storageKey": "memberships(first:1000,orderBy:{\"direction\":\"DESC\",\"field\":\"CREATED_AT\"})"
},
"action": "THROW"
},
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": (v0/*: any*/),
"concreteType": "InvitationConnection",
"kind": "LinkedField",
"name": "pendingInvitations",
"plural": false,
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "InvitationEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "Invitation",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v1/*: any*/),
{
"args": null,
"kind": "FragmentSpread",
"name": "InvitationCardFragment"
}
],
"storageKey": null
},
"action": "THROW"
}
],
"storageKey": null
},
"action": "THROW"
}
],
"storageKey": "pendingInvitations(first:1000,orderBy:{\"direction\":\"DESC\",\"field\":\"CREATED_AT\"})"
},
"action": "THROW"
}
],
"storageKey": null
},
"action": "THROW"
}
],
"type": "Query",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": [],
"kind": "Operation",
"name": "MembershipsPageQuery",
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Identity",
"kind": "LinkedField",
"name": "viewer",
"plural": false,
"selections": [
{
"alias": null,
"args": (v0/*: any*/),
"concreteType": "MembershipConnection",
"kind": "LinkedField",
"name": "memberships",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "MembershipEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Membership",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v1/*: any*/),
{
"alias": null,
"args": null,
"concreteType": "Session",
"kind": "LinkedField",
"name": "lastSession",
"plural": false,
"selections": [
(v1/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "expiresAt",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "Organization",
"kind": "LinkedField",
"name": "organization",
"plural": false,
"selections": [
(v1/*: any*/),
(v2/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "logoUrl",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": "memberships(first:1000,orderBy:{\"direction\":\"DESC\",\"field\":\"CREATED_AT\"})"
},
{
"alias": null,
"args": (v0/*: any*/),
"concreteType": "InvitationConnection",
"kind": "LinkedField",
"name": "pendingInvitations",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "InvitationEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Invitation",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v1/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "role",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "createdAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "Organization",
"kind": "LinkedField",
"name": "organization",
"plural": false,
"selections": [
(v1/*: any*/),
(v2/*: any*/)
],
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": "pendingInvitations(first:1000,orderBy:{\"direction\":\"DESC\",\"field\":\"CREATED_AT\"})"
},
(v1/*: any*/)
],
"storageKey": null
}
]
},
"params": {
"cacheID": "70ba2b8cec46ba8154cf7a6a51e03932",
"id": null,
"metadata": {},
"name": "MembershipsPageQuery",
"operationKind": "query",
"text": "query MembershipsPageQuery {\n viewer {\n memberships(first: 1000, orderBy: {direction: DESC, field: CREATED_AT}) {\n edges {\n node {\n id\n ...MembershipCardFragment\n organization {\n name\n id\n }\n }\n }\n }\n pendingInvitations(first: 1000, orderBy: {direction: DESC, field: CREATED_AT}) {\n edges {\n node {\n id\n ...InvitationCardFragment\n }\n }\n }\n id\n }\n}\n\nfragment InvitationCardFragment on Invitation {\n id\n role\n createdAt\n organization {\n id\n name\n }\n}\n\nfragment MembershipCardFragment on Membership {\n lastSession {\n id\n expiresAt\n }\n organization {\n id\n name\n logoUrl\n }\n}\n"
}
};
})();
(node as any).hash = "4148521eb3eaba1670a2d181b6d2468f";
export default node;

View File

@@ -3,7 +3,7 @@ import { useTranslate } from "@probo/i18n";
import { Card } from "@probo/ui";
import { graphql } from "relay-runtime";
import { useFragment } from "react-relay";
import type { InvitationCardFragment$key } from "./__generated__/InvitationCardFragment.graphql";
import type { InvitationCardFragment$key } from "/__generated__/iam/InvitationCardFragment.graphql";
const fragment = graphql`
fragment InvitationCardFragment on Invitation {

View File

@@ -11,10 +11,10 @@ import {
import { Link, useNavigate } from "react-router";
import { graphql } from "relay-runtime";
import { useFragment, useMutation } from "react-relay";
import type { MembershipCardFragment$key } from "./__generated__/MembershipCardFragment.graphql";
import type { MembershipCardFragment$key } from "/__generated__/iam/MembershipCardFragment.graphql";
import { parseDate } from "@probo/helpers";
import { useCallback } from "react";
import type { MembershipCard_assumeMutation } from "./__generated__/MembershipCard_assumeMutation.graphql";
import type { MembershipCard_assumeMutation } from "/__generated__/iam/MembershipCard_assumeMutation.graphql";
const fragment = graphql`
fragment MembershipCardFragment on Membership {
@@ -60,7 +60,7 @@ export function MembershipCard(props: MembershipCardProps) {
const { lastSession, organization } = useFragment<MembershipCardFragment$key>(
fragment,
fKey
fKey,
);
const isAuthenticated = !!lastSession;
const isExpired =
@@ -68,7 +68,7 @@ export function MembershipCard(props: MembershipCardProps) {
const [assumeOrganizationSession] =
useMutation<MembershipCard_assumeMutation>(
assumeOrganizationSessionMutation
assumeOrganizationSessionMutation,
);
const handleAssumeOrganizationSession = useCallback(() => {

View File

@@ -14,7 +14,7 @@ import { graphql } from "relay-runtime";
import { useOrganizationId } from "/hooks/useOrganizationId";
import { useFragment, useMutation } from "react-relay";
import { useTranslate } from "@probo/i18n";
import type { SessionDropdownFragment$key } from "./__generated__/SessionDropdownFragment.graphql";
import type { SessionDropdownFragment$key } from "/__generated__/iam/SessionDropdownFragment.graphql";
export const fragment = graphql`
fragment SessionDropdownFragment on Organization {

View File

@@ -24,7 +24,7 @@ import { useTranslate } from "@probo/i18n";
import { useOrganizationId } from "/hooks/useOrganizationId";
import { graphql } from "relay-runtime";
import { useFragment } from "react-relay";
import type { SidebarFragment$key } from "./__generated__/SidebarFragment.graphql";
import type { SidebarFragment$key } from "/__generated__/iam/SidebarFragment.graphql";
const fragment = graphql`
fragment SidebarFragment on Identity

View File

@@ -1,89 +0,0 @@
/**
* @generated SignedSource<<acb8bfd444063a884a8a3a35eed8971f>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
export type MembershipRole = "ADMIN" | "AUDITOR" | "EMPLOYEE" | "OWNER" | "VIEWER";
import { FragmentRefs } from "relay-runtime";
export type InvitationCardFragment$data = {
readonly createdAt: any;
readonly id: string;
readonly organization: {
readonly id: string;
readonly name: string;
};
readonly role: MembershipRole;
readonly " $fragmentType": "InvitationCardFragment";
};
export type InvitationCardFragment$key = {
readonly " $data"?: InvitationCardFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"InvitationCardFragment">;
};
const node: ReaderFragment = (function(){
var v0 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
};
return {
"argumentDefinitions": [],
"kind": "Fragment",
"metadata": null,
"name": "InvitationCardFragment",
"selections": [
(v0/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "role",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "createdAt",
"storageKey": null
},
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "Organization",
"kind": "LinkedField",
"name": "organization",
"plural": false,
"selections": [
(v0/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "name",
"storageKey": null
}
],
"storageKey": null
},
"action": "THROW"
}
],
"type": "Invitation",
"abstractKey": null
};
})();
(node as any).hash = "57aedeabc62e474c6e5b995af1d31888";
export default node;

View File

@@ -1,101 +0,0 @@
/**
* @generated SignedSource<<4660f07fbf06d0125ce01cd54019f389>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type MembershipCardFragment$data = {
readonly lastSession: {
readonly expiresAt: any;
readonly id: string;
} | null | undefined;
readonly organization: {
readonly id: string;
readonly logoUrl: string | null | undefined;
readonly name: string;
};
readonly " $fragmentType": "MembershipCardFragment";
};
export type MembershipCardFragment$key = {
readonly " $data"?: MembershipCardFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"MembershipCardFragment">;
};
const node: ReaderFragment = (function(){
var v0 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
};
return {
"argumentDefinitions": [],
"kind": "Fragment",
"metadata": null,
"name": "MembershipCardFragment",
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Session",
"kind": "LinkedField",
"name": "lastSession",
"plural": false,
"selections": [
(v0/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "expiresAt",
"storageKey": null
}
],
"storageKey": null
},
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "Organization",
"kind": "LinkedField",
"name": "organization",
"plural": false,
"selections": [
(v0/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "name",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "logoUrl",
"storageKey": null
}
],
"storageKey": null
},
"action": "THROW"
}
],
"type": "Membership",
"abstractKey": null
};
})();
(node as any).hash = "5a2532aed755a94df49c2f9ce0929a1f";
export default node;

View File

@@ -1,145 +0,0 @@
/**
* @generated SignedSource<<2574b3b6a557336992dff4f923fc0870>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type ReauthenticationReason = "POLICY_REQUIREMENT" | "SENSITIVE_ACTION" | "SESSION_EXPIRED";
export type AssumeOrganizationSessionInput = {
organizationId: string;
};
export type MembershipCard_assumeMutation$variables = {
input: AssumeOrganizationSessionInput;
};
export type MembershipCard_assumeMutation$data = {
readonly assumeOrganizationSession: {
readonly result: {
readonly __typename: "PasswordRequired";
readonly reason: ReauthenticationReason;
} | {
readonly __typename: "SAMLAuthenticationRequired";
readonly reason: ReauthenticationReason;
readonly redirectUrl: string;
} | {
// This will never be '%other', but we need some
// value in case none of the concrete values match.
readonly __typename: "%other";
};
} | null | undefined;
};
export type MembershipCard_assumeMutation = {
response: MembershipCard_assumeMutation$data;
variables: MembershipCard_assumeMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "input"
}
],
v1 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "reason",
"storageKey": null
},
v2 = [
{
"alias": null,
"args": [
{
"kind": "Variable",
"name": "input",
"variableName": "input"
}
],
"concreteType": "AssumeOrganizationSessionPayload",
"kind": "LinkedField",
"name": "assumeOrganizationSession",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": null,
"kind": "LinkedField",
"name": "result",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
},
{
"kind": "InlineFragment",
"selections": [
(v1/*: any*/)
],
"type": "PasswordRequired",
"abstractKey": null
},
{
"kind": "InlineFragment",
"selections": [
(v1/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "redirectUrl",
"storageKey": null
}
],
"type": "SAMLAuthenticationRequired",
"abstractKey": null
}
],
"storageKey": null
}
],
"storageKey": null
}
];
return {
"fragment": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Fragment",
"metadata": null,
"name": "MembershipCard_assumeMutation",
"selections": (v2/*: any*/),
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "MembershipCard_assumeMutation",
"selections": (v2/*: any*/)
},
"params": {
"cacheID": "0d93c6ee32107a4263a910e21597e982",
"id": null,
"metadata": {},
"name": "MembershipCard_assumeMutation",
"operationKind": "mutation",
"text": "mutation MembershipCard_assumeMutation(\n $input: AssumeOrganizationSessionInput!\n) {\n assumeOrganizationSession(input: $input) {\n result {\n __typename\n ... on PasswordRequired {\n reason\n }\n ... on SAMLAuthenticationRequired {\n reason\n redirectUrl\n }\n }\n }\n}\n"
}
};
})();
(node as any).hash = "aa7a5daec98d5fa51a56da0a7e0b2178";
export default node;

View File

@@ -1,101 +0,0 @@
/**
* @generated SignedSource<<0d0906bc941900bb200a6a9824aaacc4>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type SessionDropdownFragment$data = {
readonly viewerMembership: {
readonly identity: {
readonly email: any;
};
readonly profile: {
readonly fullName: string;
};
};
readonly " $fragmentType": "SessionDropdownFragment";
};
export type SessionDropdownFragment$key = {
readonly " $data"?: SessionDropdownFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"SessionDropdownFragment">;
};
const node: ReaderFragment = {
"argumentDefinitions": [],
"kind": "Fragment",
"metadata": null,
"name": "SessionDropdownFragment",
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "Membership",
"kind": "LinkedField",
"name": "viewerMembership",
"plural": false,
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "Identity",
"kind": "LinkedField",
"name": "identity",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "email",
"storageKey": null
}
],
"storageKey": null
},
"action": "THROW"
},
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "MembershipProfile",
"kind": "LinkedField",
"name": "profile",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "fullName",
"storageKey": null
}
],
"storageKey": null
},
"action": "THROW"
}
],
"storageKey": null
},
"action": "THROW"
}
],
"type": "Organization",
"abstractKey": null
};
(node as any).hash = "c283fcefcab15b977b44ece82f7cf450";
export default node;

View File

@@ -1,74 +0,0 @@
/**
* @generated SignedSource<<8cb399eb2f38eaf3059531ea4bc3fa30>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type SessionDropdownSignOutMutation$variables = Record<PropertyKey, never>;
export type SessionDropdownSignOutMutation$data = {
readonly signOut: {
readonly success: boolean;
} | null | undefined;
};
export type SessionDropdownSignOutMutation = {
response: SessionDropdownSignOutMutation$data;
variables: SessionDropdownSignOutMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"alias": null,
"args": null,
"concreteType": "SignOutPayload",
"kind": "LinkedField",
"name": "signOut",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "success",
"storageKey": null
}
],
"storageKey": null
}
];
return {
"fragment": {
"argumentDefinitions": [],
"kind": "Fragment",
"metadata": null,
"name": "SessionDropdownSignOutMutation",
"selections": (v0/*: any*/),
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": [],
"kind": "Operation",
"name": "SessionDropdownSignOutMutation",
"selections": (v0/*: any*/)
},
"params": {
"cacheID": "a677190a127d7f75d5c629fab236a7a3",
"id": null,
"metadata": {},
"name": "SessionDropdownSignOutMutation",
"operationKind": "mutation",
"text": "mutation SessionDropdownSignOutMutation {\n signOut {\n success\n }\n}\n"
}
};
})();
(node as any).hash = "10c9bdf35ab3961c7488973e052cf978";
export default node;

View File

@@ -1,332 +0,0 @@
/**
* @generated SignedSource<<d7cb6d45a4e2a8960d1984e0e1f74b0a>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type SidebarFragment$data = {
readonly canGetTrustCenter: boolean;
readonly canListAssets: boolean;
readonly canListAudits: boolean;
readonly canListContinualImprovements: boolean;
readonly canListData: boolean;
readonly canListDocuments: boolean;
readonly canListFrameworks: boolean;
readonly canListMeasures: boolean;
readonly canListMeetings: boolean;
readonly canListNonconformities: boolean;
readonly canListObligations: boolean;
readonly canListPeople: boolean;
readonly canListProcessingActivities: boolean;
readonly canListRisks: boolean;
readonly canListSnapshots: boolean;
readonly canListStatesOfApplicability: boolean;
readonly canListTasks: boolean;
readonly canListVendors: boolean;
readonly canUpdateOrganization: boolean;
readonly " $fragmentType": "SidebarFragment";
};
export type SidebarFragment$key = {
readonly " $data"?: SidebarFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"SidebarFragment">;
};
const node: ReaderFragment = (function(){
var v0 = {
"kind": "Variable",
"name": "id",
"variableName": "organizationId"
};
return {
"argumentDefinitions": [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "organizationId"
}
],
"kind": "Fragment",
"metadata": null,
"name": "SidebarFragment",
"selections": [
{
"alias": "canListMeetings",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:meeting:list"
},
(v0/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListTasks",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:task:list"
},
(v0/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListMeasures",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:measures:list"
},
(v0/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListRisks",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:risk:list"
},
(v0/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListFrameworks",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:frameworks:list"
},
(v0/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListPeople",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:people:list"
},
(v0/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListVendors",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:vendor:list"
},
(v0/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListDocuments",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:document:list"
},
(v0/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListAssets",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:asset:list"
},
(v0/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListData",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:datum:list"
},
(v0/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListAudits",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:audit:list"
},
(v0/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListNonconformities",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:nonconformity:list"
},
(v0/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListObligations",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:obligation:list"
},
(v0/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListContinualImprovements",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:continual-improvement:list"
},
(v0/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListProcessingActivities",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:processing-activity:list"
},
(v0/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListStatesOfApplicability",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:state-of-applicability:list"
},
(v0/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canListSnapshots",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:snapshot:list"
},
(v0/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canGetTrustCenter",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:trust-center:get"
},
(v0/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canUpdateOrganization",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "iam:organization:update"
},
(v0/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
}
],
"type": "Identity",
"abstractKey": null
};
})();
(node as any).hash = "a116eb6c3f1c2808f90316b34ef43979";
export default node;

View File

@@ -4,7 +4,7 @@ import { graphql, useMutation } from "react-relay";
import type { FormEventHandler } from "react";
import { useNavigate } from "react-router";
import { formatError, type GraphQLError } from "@probo/helpers";
import type { NewOrganizationPageMutation } from "./__generated__/NewOrganizationPageMutation.graphql";
import type { NewOrganizationPageMutation } from "/__generated__/iam/NewOrganizationPageMutation.graphql";
import { IAMRelayProvider } from "/providers/IAMRelayProvider";
const createOrganizationMutation = graphql`

View File

@@ -1,115 +0,0 @@
/**
* @generated SignedSource<<3c4bf3ac3f3eff32d0c86fe61190576e>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type CreateOrganizationInput = {
horizontalLogoFile?: any | null | undefined;
logoFile?: any | null | undefined;
name: string;
};
export type NewOrganizationPageMutation$variables = {
input: CreateOrganizationInput;
};
export type NewOrganizationPageMutation$data = {
readonly createOrganization: {
readonly organization: {
readonly id: string;
readonly name: string;
} | null | undefined;
} | null | undefined;
};
export type NewOrganizationPageMutation = {
response: NewOrganizationPageMutation$data;
variables: NewOrganizationPageMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "input"
}
],
v1 = [
{
"alias": null,
"args": [
{
"kind": "Variable",
"name": "input",
"variableName": "input"
}
],
"concreteType": "CreateOrganizationPayload",
"kind": "LinkedField",
"name": "createOrganization",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Organization",
"kind": "LinkedField",
"name": "organization",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "name",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
}
];
return {
"fragment": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Fragment",
"metadata": null,
"name": "NewOrganizationPageMutation",
"selections": (v1/*: any*/),
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "NewOrganizationPageMutation",
"selections": (v1/*: any*/)
},
"params": {
"cacheID": "e4d07eba4c1791eeb6e5e1e627c79593",
"id": null,
"metadata": {},
"name": "NewOrganizationPageMutation",
"operationKind": "mutation",
"text": "mutation NewOrganizationPageMutation(\n $input: CreateOrganizationInput!\n) {\n createOrganization(input: $input) {\n organization {\n id\n name\n }\n }\n}\n"
}
};
})();
(node as any).hash = "68737a40f2993357fb169e9aac6a4262";
export default node;

View File

@@ -6,8 +6,8 @@ import { useNavigate } from "react-router";
import { useMutationWithToasts } from "/hooks/useMutationWithToasts";
import { graphql } from "relay-runtime";
import { usePreloadedQuery, type PreloadedQuery } from "react-relay";
import type { GeneralSettingsPageQuery } from "./__generated__/GeneralSettingsPageQuery.graphql";
import type { GeneralSettingsPage_deleteMutation } from "./__generated__/GeneralSettingsPage_deleteMutation.graphql";
import type { GeneralSettingsPageQuery } from "/__generated__/iam/GeneralSettingsPageQuery.graphql";
import type { GeneralSettingsPage_deleteMutation } from "/__generated__/iam/GeneralSettingsPage_deleteMutation.graphql";
import { DeleteOrganizationDialog } from "/components/organizations/DeleteOrganizationDialog";
import { OrganizationForm } from "./_components/OrganizationForm";

View File

@@ -5,7 +5,7 @@ import {
GeneralSettingsPage,
generalSettingsPageQuery,
} from "./GeneralSettingsPage";
import type { GeneralSettingsPageQuery } from "./__generated__/GeneralSettingsPageQuery.graphql";
import type { GeneralSettingsPageQuery } from "/__generated__/iam/GeneralSettingsPageQuery.graphql";
import { IAMRelayProvider } from "/providers/IAMRelayProvider";
function GeneralSettingsPageLoader() {

View File

@@ -1,7 +1,7 @@
import { usePreloadedQuery, type PreloadedQuery } from "react-relay";
import { graphql } from "relay-runtime";
import { MemberList } from "./_components/MemberList";
import type { MembersPageQuery } from "./__generated__/MembersPageQuery.graphql";
import type { MembersPageQuery } from "/__generated__/iam/MembersPageQuery.graphql";
import { useTranslate } from "@probo/i18n";
import { Button, Card, TabBadge, TabItem, Tabs } from "@probo/ui";
import { useState } from "react";

View File

@@ -3,7 +3,7 @@ import { MembersPage, membersPageQuery } from "./MembersPage";
import { useOrganizationId } from "/hooks/useOrganizationId";
import { IAMRelayProvider } from "/providers/IAMRelayProvider";
import { useEffect } from "react";
import type { MembersPageQuery } from "./__generated__/MembersPageQuery.graphql";
import type { MembersPageQuery } from "/__generated__/iam/MembersPageQuery.graphql";
function MembersPageLoader() {
const organizationId = useOrganizationId();

View File

@@ -4,7 +4,7 @@ import {
useQueryLoader,
type PreloadedQuery,
} from "react-relay";
import type { SAMLSettingsPageQuery } from "./__generated__/SAMLSettingsPageQuery.graphql";
import type { SAMLSettingsPageQuery } from "/__generated__/iam/SAMLSettingsPageQuery.graphql";
import { Suspense, use, useState } from "react";
import { PermissionsContext } from "/providers/PermissionsContext";
import { Breadcrumb, Button, Dialog, useDialogRef } from "@probo/ui";
@@ -15,7 +15,7 @@ import {
EditSAMLConfigurationForm,
samlConfigurationFormQuery,
} from "./_components/EditSAMLConfigurationForm";
import type { EditSAMLConfigurationFormQuery } from "./_components/__generated__/EditSAMLConfigurationFormQuery.graphql";
import type { EditSAMLConfigurationFormQuery } from "/__generated__/iam/EditSAMLConfigurationFormQuery.graphql";
import { SAMLDomainVerifyDialog } from "./_components/SAMLDomainVerifyDialog";
export const samlSettingsPageQuery = graphql`

View File

@@ -3,7 +3,7 @@ import { SAMLSettingsPage, samlSettingsPageQuery } from "./SAMLSettingsPage";
import { useOrganizationId } from "/hooks/useOrganizationId";
import { IAMRelayProvider } from "/providers/IAMRelayProvider";
import { useEffect } from "react";
import type { SAMLSettingsPageQuery } from "./__generated__/SAMLSettingsPageQuery.graphql";
import type { SAMLSettingsPageQuery } from "/__generated__/iam/SAMLSettingsPageQuery.graphql";
function SAMLSettingsPageLoader() {
const organizationId = useOrganizationId();

View File

@@ -1,198 +0,0 @@
/**
* @generated SignedSource<<7b9dd98afd5bdc994e7d2e422dec2cf2>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type GeneralSettingsPageQuery$variables = {
organizationId: string;
};
export type GeneralSettingsPageQuery$data = {
readonly organization: {
readonly __typename: "Organization";
readonly id: string;
readonly name: string;
readonly " $fragmentSpreads": FragmentRefs<"OrganizationFormFragment">;
} | {
// This will never be '%other', but we need some
// value in case none of the concrete values match.
readonly __typename: "%other";
};
};
export type GeneralSettingsPageQuery = {
response: GeneralSettingsPageQuery$data;
variables: GeneralSettingsPageQuery$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "organizationId"
}
],
v1 = [
{
"kind": "Variable",
"name": "id",
"variableName": "organizationId"
}
],
v2 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
},
v3 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
v4 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "name",
"storageKey": null
};
return {
"fragment": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Fragment",
"metadata": null,
"name": "GeneralSettingsPageQuery",
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": "organization",
"args": (v1/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v2/*: any*/),
{
"kind": "InlineFragment",
"selections": [
(v3/*: any*/),
{
"kind": "RequiredField",
"field": (v4/*: any*/),
"action": "THROW"
},
{
"args": null,
"kind": "FragmentSpread",
"name": "OrganizationFormFragment"
}
],
"type": "Organization",
"abstractKey": null
}
],
"storageKey": null
},
"action": "THROW"
}
],
"type": "Query",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "GeneralSettingsPageQuery",
"selections": [
{
"alias": "organization",
"args": (v1/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v2/*: any*/),
(v3/*: any*/),
{
"kind": "InlineFragment",
"selections": [
(v4/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "logoUrl",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "horizontalLogoUrl",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "description",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "websiteUrl",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "email",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "headquarterAddress",
"storageKey": null
}
],
"type": "Organization",
"abstractKey": null
}
],
"storageKey": null
}
]
},
"params": {
"cacheID": "11f654f40301ba539b6d78ead3029308",
"id": null,
"metadata": {},
"name": "GeneralSettingsPageQuery",
"operationKind": "query",
"text": "query GeneralSettingsPageQuery(\n $organizationId: ID!\n) {\n organization: node(id: $organizationId) {\n __typename\n ... on Organization {\n id\n name\n ...OrganizationFormFragment\n }\n id\n }\n}\n\nfragment OrganizationFormFragment on Organization {\n id\n name\n logoUrl\n horizontalLogoUrl\n description\n websiteUrl\n email\n headquarterAddress\n}\n"
}
};
})();
(node as any).hash = "a83e24379e0772bbaf19bad92d60c6d4";
export default node;

View File

@@ -1,132 +0,0 @@
/**
* @generated SignedSource<<71619b1be320df410e3ebe2157b11ed4>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type DeleteOrganizationInput = {
organizationId: string;
};
export type GeneralSettingsPage_deleteMutation$variables = {
connections: ReadonlyArray<string>;
input: DeleteOrganizationInput;
};
export type GeneralSettingsPage_deleteMutation$data = {
readonly deleteOrganization: {
readonly deletedOrganizationId: string;
} | null | undefined;
};
export type GeneralSettingsPage_deleteMutation = {
response: GeneralSettingsPage_deleteMutation$data;
variables: GeneralSettingsPage_deleteMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "connections"
},
v1 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "input"
},
v2 = [
{
"kind": "Variable",
"name": "input",
"variableName": "input"
}
],
v3 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "deletedOrganizationId",
"storageKey": null
};
return {
"fragment": {
"argumentDefinitions": [
(v0/*: any*/),
(v1/*: any*/)
],
"kind": "Fragment",
"metadata": null,
"name": "GeneralSettingsPage_deleteMutation",
"selections": [
{
"alias": null,
"args": (v2/*: any*/),
"concreteType": "DeleteOrganizationPayload",
"kind": "LinkedField",
"name": "deleteOrganization",
"plural": false,
"selections": [
(v3/*: any*/)
],
"storageKey": null
}
],
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": [
(v1/*: any*/),
(v0/*: any*/)
],
"kind": "Operation",
"name": "GeneralSettingsPage_deleteMutation",
"selections": [
{
"alias": null,
"args": (v2/*: any*/),
"concreteType": "DeleteOrganizationPayload",
"kind": "LinkedField",
"name": "deleteOrganization",
"plural": false,
"selections": [
(v3/*: any*/),
{
"alias": null,
"args": null,
"filters": null,
"handle": "deleteEdge",
"key": "",
"kind": "ScalarHandle",
"name": "deletedOrganizationId",
"handleArgs": [
{
"kind": "Variable",
"name": "connections",
"variableName": "connections"
}
]
}
],
"storageKey": null
}
]
},
"params": {
"cacheID": "53d34f4a9fe61e454f0ca80e8f34d88a",
"id": null,
"metadata": {},
"name": "GeneralSettingsPage_deleteMutation",
"operationKind": "mutation",
"text": "mutation GeneralSettingsPage_deleteMutation(\n $input: DeleteOrganizationInput!\n) {\n deleteOrganization(input: $input) {\n deletedOrganizationId\n }\n}\n"
}
};
})();
(node as any).hash = "c473475817881aaa4adee8f183faf580";
export default node;

View File

@@ -1,577 +0,0 @@
/**
* @generated SignedSource<<33faed6358cc7fba56a1f493c11f31d4>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type MembersPageQuery$variables = {
organizationId: string;
};
export type MembersPageQuery$data = {
readonly organization: {
readonly __typename: "Organization";
readonly invitations: {
readonly totalCount: number | null | undefined;
};
readonly members: {
readonly totalCount: number | null | undefined;
};
readonly " $fragmentSpreads": FragmentRefs<"InvitationListFragment" | "InviteUserDialog_currentRoleFragment" | "MemberListFragment">;
} | {
// This will never be '%other', but we need some
// value in case none of the concrete values match.
readonly __typename: "%other";
};
readonly viewer: {
readonly canInviteUser: boolean;
readonly " $fragmentSpreads": FragmentRefs<"InvitationListItem_permissionsFragment" | "MemberListItem_permissionsFragment">;
};
};
export type MembersPageQuery = {
response: MembersPageQuery$data;
variables: MembersPageQuery$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "organizationId"
}
],
v1 = {
"kind": "Variable",
"name": "id",
"variableName": "organizationId"
},
v2 = {
"alias": "canInviteUser",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "iam:membership:create"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
v3 = [
{
"kind": "Variable",
"name": "organizationId",
"variableName": "organizationId"
}
],
v4 = [
(v1/*: any*/)
],
v5 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
},
v6 = {
"kind": "Literal",
"name": "first",
"value": 20
},
v7 = {
"direction": "ASC",
"field": "CREATED_AT"
},
v8 = [
(v6/*: any*/),
{
"kind": "Literal",
"name": "order",
"value": (v7/*: any*/)
}
],
v9 = [
(v6/*: any*/),
{
"kind": "Literal",
"name": "orderBy",
"value": (v7/*: any*/)
}
],
v10 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "totalCount",
"storageKey": null
},
v11 = [
(v10/*: any*/)
],
v12 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
v13 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "role",
"storageKey": null
},
v14 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "fullName",
"storageKey": null
},
v15 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "email",
"storageKey": null
},
v16 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "createdAt",
"storageKey": null
},
v17 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "cursor",
"storageKey": null
},
v18 = {
"alias": null,
"args": null,
"concreteType": "PageInfo",
"kind": "LinkedField",
"name": "pageInfo",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "endCursor",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasNextPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasPreviousPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "startCursor",
"storageKey": null
}
],
"storageKey": null
},
v19 = {
"kind": "ClientExtension",
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__id",
"storageKey": null
}
]
},
v20 = [
"orderBy"
];
return {
"fragment": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Fragment",
"metadata": null,
"name": "MembersPageQuery",
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "Identity",
"kind": "LinkedField",
"name": "viewer",
"plural": false,
"selections": [
(v2/*: any*/),
{
"args": (v3/*: any*/),
"kind": "FragmentSpread",
"name": "InvitationListItem_permissionsFragment"
},
{
"args": (v3/*: any*/),
"kind": "FragmentSpread",
"name": "MemberListItem_permissionsFragment"
}
],
"storageKey": null
},
"action": "THROW"
},
{
"kind": "RequiredField",
"field": {
"alias": "organization",
"args": (v4/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v5/*: any*/),
{
"kind": "InlineFragment",
"selections": [
{
"args": null,
"kind": "FragmentSpread",
"name": "InviteUserDialog_currentRoleFragment"
},
{
"args": (v8/*: any*/),
"kind": "FragmentSpread",
"name": "MemberListFragment"
},
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": (v9/*: any*/),
"concreteType": "MembershipConnection",
"kind": "LinkedField",
"name": "members",
"plural": false,
"selections": (v11/*: any*/),
"storageKey": "members(first:20,orderBy:{\"direction\":\"ASC\",\"field\":\"CREATED_AT\"})"
},
"action": "THROW"
},
{
"args": (v8/*: any*/),
"kind": "FragmentSpread",
"name": "InvitationListFragment"
},
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": (v9/*: any*/),
"concreteType": "InvitationConnection",
"kind": "LinkedField",
"name": "invitations",
"plural": false,
"selections": (v11/*: any*/),
"storageKey": "invitations(first:20,orderBy:{\"direction\":\"ASC\",\"field\":\"CREATED_AT\"})"
},
"action": "THROW"
}
],
"type": "Organization",
"abstractKey": null
}
],
"storageKey": null
},
"action": "THROW"
}
],
"type": "Query",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "MembersPageQuery",
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Identity",
"kind": "LinkedField",
"name": "viewer",
"plural": false,
"selections": [
(v2/*: any*/),
{
"alias": "canDeleteInvitation",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "iam:invitation:delete"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canUpdateMembership",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "iam:membership:update"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canDeleteMembership",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "iam:membership:delete"
},
(v1/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
(v12/*: any*/)
],
"storageKey": null
},
{
"alias": "organization",
"args": (v4/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v5/*: any*/),
(v12/*: any*/),
{
"kind": "InlineFragment",
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Membership",
"kind": "LinkedField",
"name": "viewerMembership",
"plural": false,
"selections": [
(v13/*: any*/),
(v12/*: any*/)
],
"storageKey": null
},
{
"alias": null,
"args": (v9/*: any*/),
"concreteType": "MembershipConnection",
"kind": "LinkedField",
"name": "members",
"plural": false,
"selections": [
(v10/*: any*/),
{
"alias": null,
"args": null,
"concreteType": "MembershipEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Membership",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v12/*: any*/),
(v13/*: any*/),
{
"alias": null,
"args": null,
"concreteType": "MembershipProfile",
"kind": "LinkedField",
"name": "profile",
"plural": false,
"selections": [
(v14/*: any*/),
(v12/*: any*/)
],
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "Identity",
"kind": "LinkedField",
"name": "identity",
"plural": false,
"selections": [
(v15/*: any*/),
(v12/*: any*/)
],
"storageKey": null
},
(v16/*: any*/),
(v5/*: any*/)
],
"storageKey": null
},
(v17/*: any*/)
],
"storageKey": null
},
(v18/*: any*/),
(v19/*: any*/)
],
"storageKey": "members(first:20,orderBy:{\"direction\":\"ASC\",\"field\":\"CREATED_AT\"})"
},
{
"alias": null,
"args": (v9/*: any*/),
"filters": (v20/*: any*/),
"handle": "connection",
"key": "MemberListFragment_members",
"kind": "LinkedHandle",
"name": "members"
},
{
"alias": null,
"args": (v9/*: any*/),
"concreteType": "InvitationConnection",
"kind": "LinkedField",
"name": "invitations",
"plural": false,
"selections": [
(v10/*: any*/),
{
"alias": null,
"args": null,
"concreteType": "InvitationEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Invitation",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v12/*: any*/),
(v14/*: any*/),
(v15/*: any*/),
(v13/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "status",
"storageKey": null
},
(v16/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "expiresAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "acceptedAt",
"storageKey": null
},
(v5/*: any*/)
],
"storageKey": null
},
(v17/*: any*/)
],
"storageKey": null
},
(v18/*: any*/),
(v19/*: any*/)
],
"storageKey": "invitations(first:20,orderBy:{\"direction\":\"ASC\",\"field\":\"CREATED_AT\"})"
},
{
"alias": null,
"args": (v9/*: any*/),
"filters": (v20/*: any*/),
"handle": "connection",
"key": "InvitationListFragment_invitations",
"kind": "LinkedHandle",
"name": "invitations"
}
],
"type": "Organization",
"abstractKey": null
}
],
"storageKey": null
}
]
},
"params": {
"cacheID": "1c006f49a510a658f66a78c66e9289db",
"id": null,
"metadata": {},
"name": "MembersPageQuery",
"operationKind": "query",
"text": "query MembersPageQuery(\n $organizationId: ID!\n) {\n viewer {\n canInviteUser: permission(action: \"iam:membership:create\", id: $organizationId)\n ...InvitationListItem_permissionsFragment_4xMPKw\n ...MemberListItem_permissionsFragment_4xMPKw\n id\n }\n organization: node(id: $organizationId) {\n __typename\n ... on Organization {\n ...InviteUserDialog_currentRoleFragment\n ...MemberListFragment_1jRT0c\n members(first: 20, orderBy: {direction: ASC, field: CREATED_AT}) {\n totalCount\n }\n ...InvitationListFragment_1jRT0c\n invitations(first: 20, orderBy: {direction: ASC, field: CREATED_AT}) {\n totalCount\n }\n }\n id\n }\n}\n\nfragment InvitationListFragment_1jRT0c on Organization {\n invitations(first: 20, orderBy: {direction: ASC, field: CREATED_AT}) {\n totalCount\n edges {\n node {\n id\n ...InvitationListItemFragment\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n hasPreviousPage\n startCursor\n }\n }\n id\n}\n\nfragment InvitationListItemFragment on Invitation {\n id\n fullName\n email\n role\n status\n createdAt\n expiresAt\n acceptedAt\n}\n\nfragment InvitationListItem_permissionsFragment_4xMPKw on Identity {\n canDeleteInvitation: permission(action: \"iam:invitation:delete\", id: $organizationId)\n}\n\nfragment InviteUserDialog_currentRoleFragment on Organization {\n viewerMembership {\n role\n id\n }\n}\n\nfragment MemberListFragment_1jRT0c on Organization {\n ...MemberListItem_currentRoleFragment\n members(first: 20, orderBy: {direction: ASC, field: CREATED_AT}) {\n totalCount\n edges {\n node {\n id\n ...MemberListItemFragment\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n hasPreviousPage\n startCursor\n }\n }\n id\n}\n\nfragment MemberListItemFragment on Membership {\n id\n role\n profile {\n fullName\n id\n }\n identity {\n email\n id\n }\n createdAt\n}\n\nfragment MemberListItem_currentRoleFragment on Organization {\n viewerMembership {\n role\n id\n }\n}\n\nfragment MemberListItem_permissionsFragment_4xMPKw on Identity {\n canUpdateMembership: permission(action: \"iam:membership:update\", id: $organizationId)\n canDeleteMembership: permission(action: \"iam:membership:delete\", id: $organizationId)\n}\n"
}
};
})();
(node as any).hash = "6e919357c168bbfbdccfa7375ce71660";
export default node;

View File

@@ -1,245 +0,0 @@
/**
* @generated SignedSource<<57eb2489b4c62cb4b1df1a61bc135313>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type SAMLSettingsPageQuery$variables = {
organizationId: string;
};
export type SAMLSettingsPageQuery$data = {
readonly organization: {
readonly " $fragmentSpreads": FragmentRefs<"SAMLConfigurationListFragment">;
};
};
export type SAMLSettingsPageQuery = {
response: SAMLSettingsPageQuery$data;
variables: SAMLSettingsPageQuery$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "organizationId"
}
],
v1 = [
{
"kind": "Variable",
"name": "id",
"variableName": "organizationId"
}
],
v2 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
},
v3 = [
{
"kind": "Literal",
"name": "first",
"value": 1000
}
],
v4 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
};
return {
"fragment": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Fragment",
"metadata": null,
"name": "SAMLSettingsPageQuery",
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": "organization",
"args": (v1/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
{
"args": null,
"kind": "FragmentSpread",
"name": "SAMLConfigurationListFragment"
}
],
"storageKey": null
},
"action": "THROW"
}
],
"type": "Query",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "SAMLSettingsPageQuery",
"selections": [
{
"alias": "organization",
"args": (v1/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v2/*: any*/),
{
"kind": "InlineFragment",
"selections": [
{
"alias": null,
"args": (v3/*: any*/),
"concreteType": "SAMLConfigurationConnection",
"kind": "LinkedField",
"name": "samlConfigurations",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "SAMLConfigurationEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "SAMLConfiguration",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v4/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "emailDomain",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "enforcementPolicy",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "domainVerificationToken",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "domainVerifiedAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "testLoginUrl",
"storageKey": null
},
(v2/*: any*/)
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "cursor",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "PageInfo",
"kind": "LinkedField",
"name": "pageInfo",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "endCursor",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasNextPage",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": "samlConfigurations(first:1000)"
},
{
"alias": null,
"args": (v3/*: any*/),
"filters": null,
"handle": "connection",
"key": "SAMLConfigurationListFragment_samlConfigurations",
"kind": "LinkedHandle",
"name": "samlConfigurations"
}
],
"type": "Organization",
"abstractKey": null
},
(v4/*: any*/)
],
"storageKey": null
}
]
},
"params": {
"cacheID": "45740d8e7e6fba1ec2576fd62487e41e",
"id": null,
"metadata": {},
"name": "SAMLSettingsPageQuery",
"operationKind": "query",
"text": "query SAMLSettingsPageQuery(\n $organizationId: ID!\n) {\n organization: node(id: $organizationId) {\n __typename\n ...SAMLConfigurationListFragment\n id\n }\n}\n\nfragment SAMLConfigurationListFragment on Organization {\n samlConfigurations(first: 1000) {\n edges {\n node {\n id\n emailDomain\n enforcementPolicy\n domainVerificationToken\n domainVerifiedAt\n testLoginUrl\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n}\n"
}
};
})();
(node as any).hash = "d2d6ef2a90f81a75df7ab0dd83ef52cf";
export default node;

View File

@@ -14,7 +14,7 @@ import { useState } from "react";
import { graphql } from "relay-runtime";
import { useMutationWithToasts } from "/hooks/useMutationWithToasts";
import { useOrganizationId } from "/hooks/useOrganizationId";
import type { MemberListItemFragment$data } from "./__generated__/MemberListItemFragment.graphql";
import type { MemberListItemFragment$data } from "/__generated__/iam/MemberListItemFragment.graphql";
const updateMembershipMutation = graphql`
mutation EditMemberDialog_updateMutation($input: UpdateMembershipInput!) {

View File

@@ -1,8 +1,8 @@
import { usePreloadedQuery, type PreloadedQuery } from "react-relay";
import { graphql } from "relay-runtime";
import type { EditSAMLConfigurationForm_updateMutation } from "./__generated__/EditSAMLConfigurationForm_updateMutation.graphql";
import type { EditSAMLConfigurationForm_updateMutation } from "/__generated__/iam/EditSAMLConfigurationForm_updateMutation.graphql";
import { useCallback } from "react";
import type { EditSAMLConfigurationFormQuery } from "./__generated__/EditSAMLConfigurationFormQuery.graphql";
import type { EditSAMLConfigurationFormQuery } from "/__generated__/iam/EditSAMLConfigurationFormQuery.graphql";
import { useOrganizationId } from "/hooks/useOrganizationId";
import {
SAMLConfigurationForm,

View File

@@ -3,9 +3,9 @@ import { SortableTable, SortableTh } from "/components/SortableTable";
import { useTranslate } from "@probo/i18n";
import { graphql, usePaginationFragment } from "react-relay";
import { InvitationListItem } from "./InvitationListItem";
import type { InvitationListFragment$key } from "./__generated__/InvitationListFragment.graphql";
import type { InvitationListItem_permissionsFragment$key } from "./__generated__/InvitationListItem_permissionsFragment.graphql";
import type { InvitationListFragment_RefetchQuery } from "./__generated__/InvitationListFragment_RefetchQuery.graphql";
import type { InvitationListFragment$key } from "/__generated__/iam/InvitationListFragment.graphql";
import type { InvitationListItem_permissionsFragment$key } from "/__generated__/iam/InvitationListItem_permissionsFragment.graphql";
import type { InvitationListFragment_RefetchQuery } from "/__generated__/iam/InvitationListFragment_RefetchQuery.graphql";
const fragment = graphql`
fragment InvitationListFragment on Organization

View File

@@ -14,8 +14,8 @@ import { graphql } from "relay-runtime";
import { useMutationWithToasts } from "/hooks/useMutationWithToasts";
import { sprintf } from "@probo/helpers";
import { useOrganizationId } from "/hooks/useOrganizationId";
import type { InvitationListItemFragment$key } from "./__generated__/InvitationListItemFragment.graphql";
import type { InvitationListItem_permissionsFragment$key } from "./__generated__/InvitationListItem_permissionsFragment.graphql";
import type { InvitationListItemFragment$key } from "/__generated__/iam/InvitationListItemFragment.graphql";
import type { InvitationListItem_permissionsFragment$key } from "/__generated__/iam/InvitationListItem_permissionsFragment.graphql";
const fragment = graphql`
fragment InvitationListItemFragment on Invitation {

View File

@@ -19,7 +19,7 @@ import { useFormWithSchema } from "/hooks/useFormWithSchema";
import { useMutationWithToasts } from "/hooks/useMutationWithToasts";
import { useOrganizationId } from "/hooks/useOrganizationId";
import type { PropsWithChildren } from "react";
import type { InviteUserDialog_currentRoleFragment$key } from "./__generated__/InviteUserDialog_currentRoleFragment.graphql";
import type { InviteUserDialog_currentRoleFragment$key } from "/__generated__/iam/InviteUserDialog_currentRoleFragment.graphql";
const currentRoleFragment = graphql`
fragment InviteUserDialog_currentRoleFragment on Organization {

View File

@@ -2,10 +2,10 @@ import { graphql, usePaginationFragment } from "react-relay";
import { Tbody, Td, Th, Thead, Tr } from "@probo/ui";
import { useTranslate } from "@probo/i18n";
import { SortableTable, SortableTh } from "/components/SortableTable";
import type { MemberListFragment_RefetchQuery } from "./__generated__/MemberListFragment_RefetchQuery.graphql";
import type { MemberListFragment_RefetchQuery } from "/__generated__/iam/MemberListFragment_RefetchQuery.graphql";
import { MemberListItem } from "./MemberListItem";
import type { MemberListFragment$key } from "./__generated__/MemberListFragment.graphql";
import type { MemberListItem_permissionsFragment$key } from "./__generated__/MemberListItem_permissionsFragment.graphql";
import type { MemberListFragment$key } from "/__generated__/iam/MemberListFragment.graphql";
import type { MemberListItem_permissionsFragment$key } from "/__generated__/iam/MemberListItem_permissionsFragment.graphql";
const fragment = graphql`
fragment MemberListFragment on Organization

View File

@@ -13,9 +13,9 @@ import clsx from "clsx";
import { useState } from "react";
import { useFragment } from "react-relay";
import { graphql } from "relay-runtime";
import type { MemberListItemFragment$key } from "./__generated__/MemberListItemFragment.graphql";
import type { MemberListItem_permissionsFragment$key } from "./__generated__/MemberListItem_permissionsFragment.graphql";
import type { MemberListItem_currentRoleFragment$key } from "./__generated__/MemberListItem_currentRoleFragment.graphql";
import type { MemberListItemFragment$key } from "/__generated__/iam/MemberListItemFragment.graphql";
import type { MemberListItem_permissionsFragment$key } from "/__generated__/iam/MemberListItem_permissionsFragment.graphql";
import type { MemberListItem_currentRoleFragment$key } from "/__generated__/iam/MemberListItem_currentRoleFragment.graphql";
import { useMutationWithToasts } from "/hooks/useMutationWithToasts";
import { useOrganizationId } from "/hooks/useOrganizationId";
import { sprintf } from "@probo/helpers";

View File

@@ -1,5 +1,5 @@
import { ConnectionHandler, graphql } from "react-relay";
import type { NewSAMLConfigurationForm_createMutation } from "./__generated__/NewSAMLConfigurationForm_createMutation.graphql";
import type { NewSAMLConfigurationForm_createMutation } from "/__generated__/iam/NewSAMLConfigurationForm_createMutation.graphql";
import {
SAMLConfigurationForm,
type SAMLConfigurationFormData,

View File

@@ -21,7 +21,7 @@ import { graphql } from "relay-runtime";
import z from "zod";
import { useTranslate } from "@probo/i18n";
import { useFragment } from "react-relay";
import type { OrganizationFormFragment$key } from "./__generated__/OrganizationFormFragment.graphql";
import type { OrganizationFormFragment$key } from "/__generated__/iam/OrganizationFormFragment.graphql";
const fragment = graphql`
fragment OrganizationFormFragment on Organization {

View File

@@ -17,9 +17,9 @@ import { useFragment } from "react-relay";
import type {
SAMLConfigurationListFragment$data,
SAMLConfigurationListFragment$key,
} from "./__generated__/SAMLConfigurationListFragment.graphql";
} from "/__generated__/iam/SAMLConfigurationListFragment.graphql";
import { useMutationWithToasts } from "/hooks/useMutationWithToasts";
import type { SAMLConfigurationList_deleteMutation } from "./__generated__/SAMLConfigurationList_deleteMutation.graphql";
import type { SAMLConfigurationList_deleteMutation } from "/__generated__/iam/SAMLConfigurationList_deleteMutation.graphql";
import { useOrganizationId } from "/hooks/useOrganizationId";
import type { NodeOf } from "/types";
import { useCopy } from "@probo/hooks";
@@ -78,11 +78,11 @@ export function SAMLConfigurationList(props: {
{
successMessage: "SAML configuration deleted successfully.",
errorMessage: "Failed to delete SAML configuration. Please try again.",
}
},
);
const handleDelete = (
config: NodeOf<SAMLConfigurationListFragment$data["samlConfigurations"]>
config: NodeOf<SAMLConfigurationListFragment$data["samlConfigurations"]>,
) => {
confirm(
async () => {
@@ -95,7 +95,7 @@ export function SAMLConfigurationList(props: {
connections: [
ConnectionHandler.getConnectionID(
organizationId,
"SAMLConfigurationListFragment_samlConfigurations"
"SAMLConfigurationListFragment_samlConfigurations",
),
],
},
@@ -106,11 +106,11 @@ export function SAMLConfigurationList(props: {
message: __(
"Are you sure you want to delete the SAML configuration for " +
config.emailDomain +
"? This action cannot be undone."
"? This action cannot be undone.",
),
label: __("Delete"),
variant: "danger",
}
},
);
};
@@ -123,7 +123,7 @@ export function SAMLConfigurationList(props: {
</h3>
<p className="text-gray-600 mb-6">
{__(
"Set up SAML 2.0 single sign-on for your organization by adding a configuration for each email domain."
"Set up SAML 2.0 single sign-on for your organization by adding a configuration for each email domain.",
)}
</p>
</div>
@@ -199,7 +199,7 @@ export function SAMLConfigurationList(props: {
<>
{isAuthorized(
"SAMLConfiguration",
"updateSAMLConfiguration"
"updateSAMLConfiguration",
) && (
<Button
variant="secondary"

View File

@@ -1,116 +0,0 @@
/**
* @generated SignedSource<<d29dfbdd0293d60af6d3f72e09dd5e9d>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type MembershipRole = "ADMIN" | "AUDITOR" | "EMPLOYEE" | "OWNER" | "VIEWER";
export type UpdateMembershipInput = {
membershipId: string;
organizationId: string;
role: MembershipRole;
};
export type EditMemberDialog_updateMutation$variables = {
input: UpdateMembershipInput;
};
export type EditMemberDialog_updateMutation$data = {
readonly updateMembership: {
readonly membership: {
readonly id: string;
readonly role: MembershipRole;
};
};
};
export type EditMemberDialog_updateMutation = {
response: EditMemberDialog_updateMutation$data;
variables: EditMemberDialog_updateMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "input"
}
],
v1 = [
{
"alias": null,
"args": [
{
"kind": "Variable",
"name": "input",
"variableName": "input"
}
],
"concreteType": "UpdateMembershipPayload",
"kind": "LinkedField",
"name": "updateMembership",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Membership",
"kind": "LinkedField",
"name": "membership",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "role",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
}
];
return {
"fragment": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Fragment",
"metadata": null,
"name": "EditMemberDialog_updateMutation",
"selections": (v1/*: any*/),
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "EditMemberDialog_updateMutation",
"selections": (v1/*: any*/)
},
"params": {
"cacheID": "696ec9f74220b92171bf60630e5c8d7f",
"id": null,
"metadata": {},
"name": "EditMemberDialog_updateMutation",
"operationKind": "mutation",
"text": "mutation EditMemberDialog_updateMutation(\n $input: UpdateMembershipInput!\n) {\n updateMembership(input: $input) {\n membership {\n id\n role\n }\n }\n}\n"
}
};
})();
(node as any).hash = "fc971ff69092912586c14c7f6e2111ed";
export default node;

View File

@@ -1,273 +0,0 @@
/**
* @generated SignedSource<<3da2840acb86d86a80715539be18fba0>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type SAMLEnforcementPolicy = "OFF" | "OPTIONAL" | "REQUIRED";
export type EditSAMLConfigurationFormQuery$variables = {
samlConfigurationId: string;
};
export type EditSAMLConfigurationFormQuery$data = {
readonly samlConfiguration: {
readonly __typename: "SAMLConfiguration";
readonly attributeMappings: {
readonly email: string;
readonly firstName: string;
readonly lastName: string;
readonly role: string;
};
readonly autoSignupEnabled: boolean;
readonly domainVerificationToken: string | null | undefined;
readonly domainVerifiedAt: any | null | undefined;
readonly emailDomain: string;
readonly enforcementPolicy: SAMLEnforcementPolicy;
readonly id: string;
readonly idpCertificate: string;
readonly idpEntityId: string;
readonly idpSsoUrl: string;
readonly testLoginUrl: string;
} | {
// This will never be '%other', but we need some
// value in case none of the concrete values match.
readonly __typename: "%other";
};
};
export type EditSAMLConfigurationFormQuery = {
response: EditSAMLConfigurationFormQuery$data;
variables: EditSAMLConfigurationFormQuery$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "samlConfigurationId"
}
],
v1 = [
{
"kind": "Variable",
"name": "id",
"variableName": "samlConfigurationId"
}
],
v2 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
},
v3 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
v4 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "emailDomain",
"storageKey": null
},
v5 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "enforcementPolicy",
"storageKey": null
},
v6 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "domainVerificationToken",
"storageKey": null
},
v7 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "domainVerifiedAt",
"storageKey": null
},
v8 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "testLoginUrl",
"storageKey": null
},
v9 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "idpEntityId",
"storageKey": null
},
v10 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "idpSsoUrl",
"storageKey": null
},
v11 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "idpCertificate",
"storageKey": null
},
v12 = {
"alias": null,
"args": null,
"concreteType": "SAMLAttributeMappings",
"kind": "LinkedField",
"name": "attributeMappings",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "email",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "firstName",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "lastName",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "role",
"storageKey": null
}
],
"storageKey": null
},
v13 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "autoSignupEnabled",
"storageKey": null
};
return {
"fragment": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Fragment",
"metadata": null,
"name": "EditSAMLConfigurationFormQuery",
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": "samlConfiguration",
"args": (v1/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v2/*: any*/),
{
"kind": "InlineFragment",
"selections": [
(v3/*: any*/),
(v4/*: any*/),
(v5/*: any*/),
(v6/*: any*/),
(v7/*: any*/),
(v8/*: any*/),
(v9/*: any*/),
(v10/*: any*/),
(v11/*: any*/),
(v12/*: any*/),
(v13/*: any*/)
],
"type": "SAMLConfiguration",
"abstractKey": null
}
],
"storageKey": null
},
"action": "THROW"
}
],
"type": "Query",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "EditSAMLConfigurationFormQuery",
"selections": [
{
"alias": "samlConfiguration",
"args": (v1/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v2/*: any*/),
(v3/*: any*/),
{
"kind": "InlineFragment",
"selections": [
(v4/*: any*/),
(v5/*: any*/),
(v6/*: any*/),
(v7/*: any*/),
(v8/*: any*/),
(v9/*: any*/),
(v10/*: any*/),
(v11/*: any*/),
(v12/*: any*/),
(v13/*: any*/)
],
"type": "SAMLConfiguration",
"abstractKey": null
}
],
"storageKey": null
}
]
},
"params": {
"cacheID": "47c1ce92e8ba0395fa803b343d093879",
"id": null,
"metadata": {},
"name": "EditSAMLConfigurationFormQuery",
"operationKind": "query",
"text": "query EditSAMLConfigurationFormQuery(\n $samlConfigurationId: ID!\n) {\n samlConfiguration: node(id: $samlConfigurationId) {\n __typename\n ... on SAMLConfiguration {\n id\n emailDomain\n enforcementPolicy\n domainVerificationToken\n domainVerifiedAt\n testLoginUrl\n idpEntityId\n idpSsoUrl\n idpCertificate\n attributeMappings {\n email\n firstName\n lastName\n role\n }\n autoSignupEnabled\n }\n id\n }\n}\n"
}
};
})();
(node as any).hash = "d31326e3e4423e62d8acde5735d9b578";
export default node;

View File

@@ -1,159 +0,0 @@
/**
* @generated SignedSource<<33cdb4d30c06225b656ba2b3f27830eb>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type SAMLEnforcementPolicy = "OFF" | "OPTIONAL" | "REQUIRED";
export type UpdateSAMLConfigurationInput = {
attributeMappings?: SAMLAttributeMappingsInput | null | undefined;
autoSignupEnabled?: boolean | null | undefined;
enforcementPolicy: SAMLEnforcementPolicy;
idpCertificate?: string | null | undefined;
idpEntityId?: string | null | undefined;
idpSsoUrl?: string | null | undefined;
organizationId: string;
samlConfigurationId: string;
};
export type SAMLAttributeMappingsInput = {
email?: string | null | undefined;
firstName?: string | null | undefined;
lastName?: string | null | undefined;
role?: string | null | undefined;
};
export type EditSAMLConfigurationForm_updateMutation$variables = {
input: UpdateSAMLConfigurationInput;
};
export type EditSAMLConfigurationForm_updateMutation$data = {
readonly updateSAMLConfiguration: {
readonly samlConfiguration: {
readonly domainVerificationToken: string | null | undefined;
readonly domainVerifiedAt: any | null | undefined;
readonly emailDomain: string;
readonly enforcementPolicy: SAMLEnforcementPolicy;
readonly id: string;
readonly testLoginUrl: string;
} | null | undefined;
} | null | undefined;
};
export type EditSAMLConfigurationForm_updateMutation = {
response: EditSAMLConfigurationForm_updateMutation$data;
variables: EditSAMLConfigurationForm_updateMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "input"
}
],
v1 = [
{
"alias": null,
"args": [
{
"kind": "Variable",
"name": "input",
"variableName": "input"
}
],
"concreteType": "UpdateSAMLConfigurationPayload",
"kind": "LinkedField",
"name": "updateSAMLConfiguration",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "SAMLConfiguration",
"kind": "LinkedField",
"name": "samlConfiguration",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "emailDomain",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "enforcementPolicy",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "domainVerificationToken",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "domainVerifiedAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "testLoginUrl",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
}
];
return {
"fragment": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Fragment",
"metadata": null,
"name": "EditSAMLConfigurationForm_updateMutation",
"selections": (v1/*: any*/),
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "EditSAMLConfigurationForm_updateMutation",
"selections": (v1/*: any*/)
},
"params": {
"cacheID": "56d29623294c243a01bfbc2ab4310d28",
"id": null,
"metadata": {},
"name": "EditSAMLConfigurationForm_updateMutation",
"operationKind": "mutation",
"text": "mutation EditSAMLConfigurationForm_updateMutation(\n $input: UpdateSAMLConfigurationInput!\n) {\n updateSAMLConfiguration(input: $input) {\n samlConfiguration {\n id\n emailDomain\n enforcementPolicy\n domainVerificationToken\n domainVerifiedAt\n testLoginUrl\n }\n }\n}\n"
}
};
})();
(node as any).hash = "b98e701514c179bba0f0ce63aae0c0b8";
export default node;

View File

@@ -1,244 +0,0 @@
/**
* @generated SignedSource<<6067ce11fa959cba895d2b10862592de>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type InvitationListFragment$data = {
readonly id: string;
readonly invitations: {
readonly __id: string;
readonly edges: ReadonlyArray<{
readonly node: {
readonly id: string;
readonly " $fragmentSpreads": FragmentRefs<"InvitationListItemFragment">;
};
}>;
readonly totalCount: number | null | undefined;
};
readonly " $fragmentType": "InvitationListFragment";
};
export type InvitationListFragment$key = {
readonly " $data"?: InvitationListFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"InvitationListFragment">;
};
import InvitationListFragment_RefetchQuery_graphql from './InvitationListFragment_RefetchQuery.graphql';
const node: ReaderFragment = (function(){
var v0 = [
"invitations"
],
v1 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
};
return {
"argumentDefinitions": [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "after"
},
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "before"
},
{
"defaultValue": 20,
"kind": "LocalArgument",
"name": "first"
},
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "last"
},
{
"defaultValue": {
"direction": "ASC",
"field": "CREATED_AT"
},
"kind": "LocalArgument",
"name": "order"
}
],
"kind": "Fragment",
"metadata": {
"connection": [
{
"count": null,
"cursor": null,
"direction": "bidirectional",
"path": (v0/*: any*/)
}
],
"refetch": {
"connection": {
"forward": {
"count": "first",
"cursor": "after"
},
"backward": {
"count": "last",
"cursor": "before"
},
"path": (v0/*: any*/)
},
"fragmentPathInResult": [
"node"
],
"operation": InvitationListFragment_RefetchQuery_graphql,
"identifierInfo": {
"identifierField": "id",
"identifierQueryVariableName": "id"
}
}
},
"name": "InvitationListFragment",
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": "invitations",
"args": [
{
"kind": "Variable",
"name": "orderBy",
"variableName": "order"
}
],
"concreteType": "InvitationConnection",
"kind": "LinkedField",
"name": "__InvitationListFragment_invitations_connection",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "totalCount",
"storageKey": null
},
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "InvitationEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Invitation",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v1/*: any*/),
{
"args": null,
"kind": "FragmentSpread",
"name": "InvitationListItemFragment"
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "cursor",
"storageKey": null
}
],
"storageKey": null
},
"action": "THROW"
},
{
"alias": null,
"args": null,
"concreteType": "PageInfo",
"kind": "LinkedField",
"name": "pageInfo",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "endCursor",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasNextPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasPreviousPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "startCursor",
"storageKey": null
}
],
"storageKey": null
},
{
"kind": "ClientExtension",
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__id",
"storageKey": null
}
]
}
],
"storageKey": null
},
"action": "THROW"
},
(v1/*: any*/)
],
"type": "Organization",
"abstractKey": null
};
})();
(node as any).hash = "837e567be489574a7f0350e26a8e5454";
export default node;

View File

@@ -1,375 +0,0 @@
/**
* @generated SignedSource<<f1bb84b37a7d8df3e9e563fe6204a307>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type InvitationOrderField = "ACCEPTED_AT" | "CREATED_AT" | "EMAIL" | "EXPIRES_AT" | "ROLE";
export type OrderDirection = "ASC" | "DESC";
export type InvitationOrder = {
direction: OrderDirection;
field: InvitationOrderField;
};
export type InvitationListFragment_RefetchQuery$variables = {
after?: any | null | undefined;
before?: any | null | undefined;
first?: number | null | undefined;
id: string;
last?: number | null | undefined;
order?: InvitationOrder | null | undefined;
};
export type InvitationListFragment_RefetchQuery$data = {
readonly node: {
readonly " $fragmentSpreads": FragmentRefs<"InvitationListFragment">;
} | null | undefined;
};
export type InvitationListFragment_RefetchQuery = {
response: InvitationListFragment_RefetchQuery$data;
variables: InvitationListFragment_RefetchQuery$variables;
};
const node: ConcreteRequest = (function(){
var v0 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "after"
},
v1 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "before"
},
v2 = {
"defaultValue": 20,
"kind": "LocalArgument",
"name": "first"
},
v3 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "id"
},
v4 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "last"
},
v5 = {
"defaultValue": {
"direction": "ASC",
"field": "CREATED_AT"
},
"kind": "LocalArgument",
"name": "order"
},
v6 = [
{
"kind": "Variable",
"name": "id",
"variableName": "id"
}
],
v7 = {
"kind": "Variable",
"name": "after",
"variableName": "after"
},
v8 = {
"kind": "Variable",
"name": "before",
"variableName": "before"
},
v9 = {
"kind": "Variable",
"name": "first",
"variableName": "first"
},
v10 = {
"kind": "Variable",
"name": "last",
"variableName": "last"
},
v11 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
},
v12 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
v13 = [
(v7/*: any*/),
(v8/*: any*/),
(v9/*: any*/),
(v10/*: any*/),
{
"kind": "Variable",
"name": "orderBy",
"variableName": "order"
}
];
return {
"fragment": {
"argumentDefinitions": [
(v0/*: any*/),
(v1/*: any*/),
(v2/*: any*/),
(v3/*: any*/),
(v4/*: any*/),
(v5/*: any*/)
],
"kind": "Fragment",
"metadata": null,
"name": "InvitationListFragment_RefetchQuery",
"selections": [
{
"alias": null,
"args": (v6/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
{
"args": [
(v7/*: any*/),
(v8/*: any*/),
(v9/*: any*/),
(v10/*: any*/),
{
"kind": "Variable",
"name": "order",
"variableName": "order"
}
],
"kind": "FragmentSpread",
"name": "InvitationListFragment"
}
],
"storageKey": null
}
],
"type": "Query",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": [
(v0/*: any*/),
(v1/*: any*/),
(v2/*: any*/),
(v4/*: any*/),
(v5/*: any*/),
(v3/*: any*/)
],
"kind": "Operation",
"name": "InvitationListFragment_RefetchQuery",
"selections": [
{
"alias": null,
"args": (v6/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v11/*: any*/),
(v12/*: any*/),
{
"kind": "InlineFragment",
"selections": [
{
"alias": null,
"args": (v13/*: any*/),
"concreteType": "InvitationConnection",
"kind": "LinkedField",
"name": "invitations",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "totalCount",
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "InvitationEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Invitation",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v12/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "fullName",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "email",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "role",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "status",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "createdAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "expiresAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "acceptedAt",
"storageKey": null
},
(v11/*: any*/)
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "cursor",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "PageInfo",
"kind": "LinkedField",
"name": "pageInfo",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "endCursor",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasNextPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasPreviousPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "startCursor",
"storageKey": null
}
],
"storageKey": null
},
{
"kind": "ClientExtension",
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__id",
"storageKey": null
}
]
}
],
"storageKey": null
},
{
"alias": null,
"args": (v13/*: any*/),
"filters": [
"orderBy"
],
"handle": "connection",
"key": "InvitationListFragment_invitations",
"kind": "LinkedHandle",
"name": "invitations"
}
],
"type": "Organization",
"abstractKey": null
}
],
"storageKey": null
}
]
},
"params": {
"cacheID": "4cc36c8fb50b104ebe3fae66bf847ecc",
"id": null,
"metadata": {},
"name": "InvitationListFragment_RefetchQuery",
"operationKind": "query",
"text": "query InvitationListFragment_RefetchQuery(\n $after: CursorKey = null\n $before: CursorKey = null\n $first: Int = 20\n $last: Int = null\n $order: InvitationOrder = {direction: ASC, field: CREATED_AT}\n $id: ID!\n) {\n node(id: $id) {\n __typename\n ...InvitationListFragment_16fISc\n id\n }\n}\n\nfragment InvitationListFragment_16fISc on Organization {\n invitations(first: $first, after: $after, last: $last, before: $before, orderBy: $order) {\n totalCount\n edges {\n node {\n id\n ...InvitationListItemFragment\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n hasPreviousPage\n startCursor\n }\n }\n id\n}\n\nfragment InvitationListItemFragment on Invitation {\n id\n fullName\n email\n role\n status\n createdAt\n expiresAt\n acceptedAt\n}\n"
}
};
})();
(node as any).hash = "837e567be489574a7f0350e26a8e5454";
export default node;

View File

@@ -1,100 +0,0 @@
/**
* @generated SignedSource<<748bbadd485b1e131e583c119f980e91>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
export type InvitationStatus = "ACCEPTED" | "EXPIRED" | "PENDING";
export type MembershipRole = "ADMIN" | "AUDITOR" | "EMPLOYEE" | "OWNER" | "VIEWER";
import { FragmentRefs } from "relay-runtime";
export type InvitationListItemFragment$data = {
readonly acceptedAt: any | null | undefined;
readonly createdAt: any;
readonly email: any;
readonly expiresAt: any;
readonly fullName: string;
readonly id: string;
readonly role: MembershipRole;
readonly status: InvitationStatus;
readonly " $fragmentType": "InvitationListItemFragment";
};
export type InvitationListItemFragment$key = {
readonly " $data"?: InvitationListItemFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"InvitationListItemFragment">;
};
const node: ReaderFragment = {
"argumentDefinitions": [],
"kind": "Fragment",
"metadata": null,
"name": "InvitationListItemFragment",
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "fullName",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "email",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "role",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "status",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "createdAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "expiresAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "acceptedAt",
"storageKey": null
}
],
"type": "Invitation",
"abstractKey": null
};
(node as any).hash = "772414270b8ce2fed6c7b5fe97082c17";
export default node;

View File

@@ -1,133 +0,0 @@
/**
* @generated SignedSource<<a46996c5fe127b005124bc79ea88fea4>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type DeleteInvitationInput = {
invitationId: string;
organizationId: string;
};
export type InvitationListItem_DeleteInvitationMutation$variables = {
connections: ReadonlyArray<string>;
input: DeleteInvitationInput;
};
export type InvitationListItem_DeleteInvitationMutation$data = {
readonly deleteInvitation: {
readonly deletedInvitationId: string;
} | null | undefined;
};
export type InvitationListItem_DeleteInvitationMutation = {
response: InvitationListItem_DeleteInvitationMutation$data;
variables: InvitationListItem_DeleteInvitationMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "connections"
},
v1 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "input"
},
v2 = [
{
"kind": "Variable",
"name": "input",
"variableName": "input"
}
],
v3 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "deletedInvitationId",
"storageKey": null
};
return {
"fragment": {
"argumentDefinitions": [
(v0/*: any*/),
(v1/*: any*/)
],
"kind": "Fragment",
"metadata": null,
"name": "InvitationListItem_DeleteInvitationMutation",
"selections": [
{
"alias": null,
"args": (v2/*: any*/),
"concreteType": "DeleteInvitationPayload",
"kind": "LinkedField",
"name": "deleteInvitation",
"plural": false,
"selections": [
(v3/*: any*/)
],
"storageKey": null
}
],
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": [
(v1/*: any*/),
(v0/*: any*/)
],
"kind": "Operation",
"name": "InvitationListItem_DeleteInvitationMutation",
"selections": [
{
"alias": null,
"args": (v2/*: any*/),
"concreteType": "DeleteInvitationPayload",
"kind": "LinkedField",
"name": "deleteInvitation",
"plural": false,
"selections": [
(v3/*: any*/),
{
"alias": null,
"args": null,
"filters": null,
"handle": "deleteEdge",
"key": "",
"kind": "ScalarHandle",
"name": "deletedInvitationId",
"handleArgs": [
{
"kind": "Variable",
"name": "connections",
"variableName": "connections"
}
]
}
],
"storageKey": null
}
]
},
"params": {
"cacheID": "35736b4156c15bb9eeb863b4d40fc4e6",
"id": null,
"metadata": {},
"name": "InvitationListItem_DeleteInvitationMutation",
"operationKind": "mutation",
"text": "mutation InvitationListItem_DeleteInvitationMutation(\n $input: DeleteInvitationInput!\n) {\n deleteInvitation(input: $input) {\n deletedInvitationId\n }\n}\n"
}
};
})();
(node as any).hash = "2191c08f6c6bf5bace0d70a6481124bb";
export default node;

View File

@@ -1,59 +0,0 @@
/**
* @generated SignedSource<<0fa501d76c400538c62a44425ebe4b11>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type InvitationListItem_permissionsFragment$data = {
readonly canDeleteInvitation: boolean;
readonly " $fragmentType": "InvitationListItem_permissionsFragment";
};
export type InvitationListItem_permissionsFragment$key = {
readonly " $data"?: InvitationListItem_permissionsFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"InvitationListItem_permissionsFragment">;
};
const node: ReaderFragment = {
"argumentDefinitions": [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "organizationId"
}
],
"kind": "Fragment",
"metadata": null,
"name": "InvitationListItem_permissionsFragment",
"selections": [
{
"alias": "canDeleteInvitation",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "iam:invitation:delete"
},
{
"kind": "Variable",
"name": "id",
"variableName": "organizationId"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
}
],
"type": "Identity",
"abstractKey": null
};
(node as any).hash = "e9e75ae0f5a3755a777acf16e5024ee0";
export default node;

View File

@@ -1,211 +0,0 @@
/**
* @generated SignedSource<<84f3f3da89ad2bdfecd79b479bf74814>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type MembershipRole = "ADMIN" | "AUDITOR" | "EMPLOYEE" | "OWNER" | "VIEWER";
export type InviteMemberInput = {
createPeople: boolean;
email: any;
fullName: string;
organizationId: string;
role: MembershipRole;
};
export type InviteUserDialogMutation$variables = {
connections: ReadonlyArray<string>;
input: InviteMemberInput;
};
export type InviteUserDialogMutation$data = {
readonly inviteMember: {
readonly invitationEdge: {
readonly node: {
readonly acceptedAt: any | null | undefined;
readonly createdAt: any;
readonly email: any;
readonly expiresAt: any;
readonly fullName: string;
readonly id: string;
readonly role: MembershipRole;
};
};
} | null | undefined;
};
export type InviteUserDialogMutation = {
response: InviteUserDialogMutation$data;
variables: InviteUserDialogMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "connections"
},
v1 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "input"
},
v2 = [
{
"kind": "Variable",
"name": "input",
"variableName": "input"
}
],
v3 = {
"alias": null,
"args": null,
"concreteType": "InvitationEdge",
"kind": "LinkedField",
"name": "invitationEdge",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Invitation",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "email",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "fullName",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "role",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "expiresAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "acceptedAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "createdAt",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
};
return {
"fragment": {
"argumentDefinitions": [
(v0/*: any*/),
(v1/*: any*/)
],
"kind": "Fragment",
"metadata": null,
"name": "InviteUserDialogMutation",
"selections": [
{
"alias": null,
"args": (v2/*: any*/),
"concreteType": "InviteMemberPayload",
"kind": "LinkedField",
"name": "inviteMember",
"plural": false,
"selections": [
(v3/*: any*/)
],
"storageKey": null
}
],
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": [
(v1/*: any*/),
(v0/*: any*/)
],
"kind": "Operation",
"name": "InviteUserDialogMutation",
"selections": [
{
"alias": null,
"args": (v2/*: any*/),
"concreteType": "InviteMemberPayload",
"kind": "LinkedField",
"name": "inviteMember",
"plural": false,
"selections": [
(v3/*: any*/),
{
"alias": null,
"args": null,
"filters": null,
"handle": "prependEdge",
"key": "",
"kind": "LinkedHandle",
"name": "invitationEdge",
"handleArgs": [
{
"kind": "Variable",
"name": "connections",
"variableName": "connections"
}
]
}
],
"storageKey": null
}
]
},
"params": {
"cacheID": "43ea730d742b7d259b50b50d3684147c",
"id": null,
"metadata": {},
"name": "InviteUserDialogMutation",
"operationKind": "mutation",
"text": "mutation InviteUserDialogMutation(\n $input: InviteMemberInput!\n) {\n inviteMember(input: $input) {\n invitationEdge {\n node {\n id\n email\n fullName\n role\n expiresAt\n acceptedAt\n createdAt\n }\n }\n }\n}\n"
}
};
})();
(node as any).hash = "b45737075b750b79b3a90748cb2565f3";
export default node;

View File

@@ -1,60 +0,0 @@
/**
* @generated SignedSource<<de896a2d4f3d1dce06f7b88630afb445>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
export type MembershipRole = "ADMIN" | "AUDITOR" | "EMPLOYEE" | "OWNER" | "VIEWER";
import { FragmentRefs } from "relay-runtime";
export type InviteUserDialog_currentRoleFragment$data = {
readonly viewerMembership: {
readonly role: MembershipRole;
};
readonly " $fragmentType": "InviteUserDialog_currentRoleFragment";
};
export type InviteUserDialog_currentRoleFragment$key = {
readonly " $data"?: InviteUserDialog_currentRoleFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"InviteUserDialog_currentRoleFragment">;
};
const node: ReaderFragment = {
"argumentDefinitions": [],
"kind": "Fragment",
"metadata": null,
"name": "InviteUserDialog_currentRoleFragment",
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "Membership",
"kind": "LinkedField",
"name": "viewerMembership",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "role",
"storageKey": null
}
],
"storageKey": null
},
"action": "THROW"
}
],
"type": "Organization",
"abstractKey": null
};
(node as any).hash = "167528734d4ad650128d5ed8f201c97e";
export default node;

View File

@@ -1,250 +0,0 @@
/**
* @generated SignedSource<<30bea11238a554ed69a88c9f07d33d9e>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type MemberListFragment$data = {
readonly id: string;
readonly members: {
readonly __id: string;
readonly edges: ReadonlyArray<{
readonly node: {
readonly id: string;
readonly " $fragmentSpreads": FragmentRefs<"MemberListItemFragment">;
};
}>;
readonly totalCount: number | null | undefined;
};
readonly " $fragmentSpreads": FragmentRefs<"MemberListItem_currentRoleFragment">;
readonly " $fragmentType": "MemberListFragment";
};
export type MemberListFragment$key = {
readonly " $data"?: MemberListFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"MemberListFragment">;
};
import MemberListFragment_RefetchQuery_graphql from './MemberListFragment_RefetchQuery.graphql';
const node: ReaderFragment = (function(){
var v0 = [
"members"
],
v1 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
};
return {
"argumentDefinitions": [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "after"
},
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "before"
},
{
"defaultValue": 20,
"kind": "LocalArgument",
"name": "first"
},
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "last"
},
{
"defaultValue": {
"direction": "ASC",
"field": "CREATED_AT"
},
"kind": "LocalArgument",
"name": "order"
}
],
"kind": "Fragment",
"metadata": {
"connection": [
{
"count": null,
"cursor": null,
"direction": "bidirectional",
"path": (v0/*: any*/)
}
],
"refetch": {
"connection": {
"forward": {
"count": "first",
"cursor": "after"
},
"backward": {
"count": "last",
"cursor": "before"
},
"path": (v0/*: any*/)
},
"fragmentPathInResult": [
"node"
],
"operation": MemberListFragment_RefetchQuery_graphql,
"identifierInfo": {
"identifierField": "id",
"identifierQueryVariableName": "id"
}
}
},
"name": "MemberListFragment",
"selections": [
{
"args": null,
"kind": "FragmentSpread",
"name": "MemberListItem_currentRoleFragment"
},
{
"kind": "RequiredField",
"field": {
"alias": "members",
"args": [
{
"kind": "Variable",
"name": "orderBy",
"variableName": "order"
}
],
"concreteType": "MembershipConnection",
"kind": "LinkedField",
"name": "__MemberListFragment_members_connection",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "totalCount",
"storageKey": null
},
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "MembershipEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Membership",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v1/*: any*/),
{
"args": null,
"kind": "FragmentSpread",
"name": "MemberListItemFragment"
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "cursor",
"storageKey": null
}
],
"storageKey": null
},
"action": "THROW"
},
{
"alias": null,
"args": null,
"concreteType": "PageInfo",
"kind": "LinkedField",
"name": "pageInfo",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "endCursor",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasNextPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasPreviousPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "startCursor",
"storageKey": null
}
],
"storageKey": null
},
{
"kind": "ClientExtension",
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__id",
"storageKey": null
}
]
}
],
"storageKey": null
},
"action": "THROW"
},
(v1/*: any*/)
],
"type": "Organization",
"abstractKey": null
};
})();
(node as any).hash = "909f6c9ed0fcaf7b0d170bded8c97562";
export default node;

View File

@@ -1,392 +0,0 @@
/**
* @generated SignedSource<<75b9df3cc430ed26d41b88a67a410aca>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type MembershipOrderField = "CREATED_AT" | "ROLE";
export type OrderDirection = "ASC" | "DESC";
export type MembershipOrder = {
direction: OrderDirection;
field: MembershipOrderField;
};
export type MemberListFragment_RefetchQuery$variables = {
after?: any | null | undefined;
before?: any | null | undefined;
first?: number | null | undefined;
id: string;
last?: number | null | undefined;
order?: MembershipOrder | null | undefined;
};
export type MemberListFragment_RefetchQuery$data = {
readonly node: {
readonly " $fragmentSpreads": FragmentRefs<"MemberListFragment">;
} | null | undefined;
};
export type MemberListFragment_RefetchQuery = {
response: MemberListFragment_RefetchQuery$data;
variables: MemberListFragment_RefetchQuery$variables;
};
const node: ConcreteRequest = (function(){
var v0 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "after"
},
v1 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "before"
},
v2 = {
"defaultValue": 20,
"kind": "LocalArgument",
"name": "first"
},
v3 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "id"
},
v4 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "last"
},
v5 = {
"defaultValue": {
"direction": "ASC",
"field": "CREATED_AT"
},
"kind": "LocalArgument",
"name": "order"
},
v6 = [
{
"kind": "Variable",
"name": "id",
"variableName": "id"
}
],
v7 = {
"kind": "Variable",
"name": "after",
"variableName": "after"
},
v8 = {
"kind": "Variable",
"name": "before",
"variableName": "before"
},
v9 = {
"kind": "Variable",
"name": "first",
"variableName": "first"
},
v10 = {
"kind": "Variable",
"name": "last",
"variableName": "last"
},
v11 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
},
v12 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
v13 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "role",
"storageKey": null
},
v14 = [
(v7/*: any*/),
(v8/*: any*/),
(v9/*: any*/),
(v10/*: any*/),
{
"kind": "Variable",
"name": "orderBy",
"variableName": "order"
}
];
return {
"fragment": {
"argumentDefinitions": [
(v0/*: any*/),
(v1/*: any*/),
(v2/*: any*/),
(v3/*: any*/),
(v4/*: any*/),
(v5/*: any*/)
],
"kind": "Fragment",
"metadata": null,
"name": "MemberListFragment_RefetchQuery",
"selections": [
{
"alias": null,
"args": (v6/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
{
"args": [
(v7/*: any*/),
(v8/*: any*/),
(v9/*: any*/),
(v10/*: any*/),
{
"kind": "Variable",
"name": "order",
"variableName": "order"
}
],
"kind": "FragmentSpread",
"name": "MemberListFragment"
}
],
"storageKey": null
}
],
"type": "Query",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": [
(v0/*: any*/),
(v1/*: any*/),
(v2/*: any*/),
(v4/*: any*/),
(v5/*: any*/),
(v3/*: any*/)
],
"kind": "Operation",
"name": "MemberListFragment_RefetchQuery",
"selections": [
{
"alias": null,
"args": (v6/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v11/*: any*/),
(v12/*: any*/),
{
"kind": "InlineFragment",
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Membership",
"kind": "LinkedField",
"name": "viewerMembership",
"plural": false,
"selections": [
(v13/*: any*/),
(v12/*: any*/)
],
"storageKey": null
},
{
"alias": null,
"args": (v14/*: any*/),
"concreteType": "MembershipConnection",
"kind": "LinkedField",
"name": "members",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "totalCount",
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "MembershipEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Membership",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v12/*: any*/),
(v13/*: any*/),
{
"alias": null,
"args": null,
"concreteType": "MembershipProfile",
"kind": "LinkedField",
"name": "profile",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "fullName",
"storageKey": null
},
(v12/*: any*/)
],
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "Identity",
"kind": "LinkedField",
"name": "identity",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "email",
"storageKey": null
},
(v12/*: any*/)
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "createdAt",
"storageKey": null
},
(v11/*: any*/)
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "cursor",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "PageInfo",
"kind": "LinkedField",
"name": "pageInfo",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "endCursor",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasNextPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasPreviousPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "startCursor",
"storageKey": null
}
],
"storageKey": null
},
{
"kind": "ClientExtension",
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__id",
"storageKey": null
}
]
}
],
"storageKey": null
},
{
"alias": null,
"args": (v14/*: any*/),
"filters": [
"orderBy"
],
"handle": "connection",
"key": "MemberListFragment_members",
"kind": "LinkedHandle",
"name": "members"
}
],
"type": "Organization",
"abstractKey": null
}
],
"storageKey": null
}
]
},
"params": {
"cacheID": "df1f40dcee56d6e5181849cd82acb824",
"id": null,
"metadata": {},
"name": "MemberListFragment_RefetchQuery",
"operationKind": "query",
"text": "query MemberListFragment_RefetchQuery(\n $after: CursorKey = null\n $before: CursorKey = null\n $first: Int = 20\n $last: Int = null\n $order: MembershipOrder = {direction: ASC, field: CREATED_AT}\n $id: ID!\n) {\n node(id: $id) {\n __typename\n ...MemberListFragment_16fISc\n id\n }\n}\n\nfragment MemberListFragment_16fISc on Organization {\n ...MemberListItem_currentRoleFragment\n members(first: $first, after: $after, last: $last, before: $before, orderBy: $order) {\n totalCount\n edges {\n node {\n id\n ...MemberListItemFragment\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n hasPreviousPage\n startCursor\n }\n }\n id\n}\n\nfragment MemberListItemFragment on Membership {\n id\n role\n profile {\n fullName\n id\n }\n identity {\n email\n id\n }\n createdAt\n}\n\nfragment MemberListItem_currentRoleFragment on Organization {\n viewerMembership {\n role\n id\n }\n}\n"
}
};
})();
(node as any).hash = "909f6c9ed0fcaf7b0d170bded8c97562";
export default node;

View File

@@ -1,109 +0,0 @@
/**
* @generated SignedSource<<50f7d8bffdec238d8a262e892db7be39>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
export type MembershipRole = "ADMIN" | "AUDITOR" | "EMPLOYEE" | "OWNER" | "VIEWER";
import { FragmentRefs } from "relay-runtime";
export type MemberListItemFragment$data = {
readonly createdAt: any;
readonly id: string;
readonly identity: {
readonly email: any;
};
readonly profile: {
readonly fullName: string;
};
readonly role: MembershipRole;
readonly " $fragmentType": "MemberListItemFragment";
};
export type MemberListItemFragment$key = {
readonly " $data"?: MemberListItemFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"MemberListItemFragment">;
};
const node: ReaderFragment = {
"argumentDefinitions": [],
"kind": "Fragment",
"metadata": null,
"name": "MemberListItemFragment",
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "role",
"storageKey": null
},
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "MembershipProfile",
"kind": "LinkedField",
"name": "profile",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "fullName",
"storageKey": null
}
],
"storageKey": null
},
"action": "THROW"
},
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "Identity",
"kind": "LinkedField",
"name": "identity",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "email",
"storageKey": null
}
],
"storageKey": null
},
"action": "THROW"
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "createdAt",
"storageKey": null
}
],
"type": "Membership",
"abstractKey": null
};
(node as any).hash = "31ca1c20d23f9709b0c1575ae56aeb64";
export default node;

View File

@@ -1,60 +0,0 @@
/**
* @generated SignedSource<<89f39cf7aa4cd7702b62f549ed8defdd>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
export type MembershipRole = "ADMIN" | "AUDITOR" | "EMPLOYEE" | "OWNER" | "VIEWER";
import { FragmentRefs } from "relay-runtime";
export type MemberListItem_currentRoleFragment$data = {
readonly viewerMembership: {
readonly role: MembershipRole;
};
readonly " $fragmentType": "MemberListItem_currentRoleFragment";
};
export type MemberListItem_currentRoleFragment$key = {
readonly " $data"?: MemberListItem_currentRoleFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"MemberListItem_currentRoleFragment">;
};
const node: ReaderFragment = {
"argumentDefinitions": [],
"kind": "Fragment",
"metadata": null,
"name": "MemberListItem_currentRoleFragment",
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "Membership",
"kind": "LinkedField",
"name": "viewerMembership",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "role",
"storageKey": null
}
],
"storageKey": null
},
"action": "THROW"
}
],
"type": "Organization",
"abstractKey": null
};
(node as any).hash = "9e7e3eefcb6f2f4398b0703a9342548b";
export default node;

View File

@@ -1,77 +0,0 @@
/**
* @generated SignedSource<<66b5754d2d4ecfc54f6c698df247e241>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type MemberListItem_permissionsFragment$data = {
readonly canDeleteMembership: boolean;
readonly canUpdateMembership: boolean;
readonly " $fragmentType": "MemberListItem_permissionsFragment";
};
export type MemberListItem_permissionsFragment$key = {
readonly " $data"?: MemberListItem_permissionsFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"MemberListItem_permissionsFragment">;
};
const node: ReaderFragment = (function(){
var v0 = {
"kind": "Variable",
"name": "id",
"variableName": "organizationId"
};
return {
"argumentDefinitions": [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "organizationId"
}
],
"kind": "Fragment",
"metadata": null,
"name": "MemberListItem_permissionsFragment",
"selections": [
{
"alias": "canUpdateMembership",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "iam:membership:update"
},
(v0/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
},
{
"alias": "canDeleteMembership",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "iam:membership:delete"
},
(v0/*: any*/)
],
"kind": "ScalarField",
"name": "permission",
"storageKey": null
}
],
"type": "Identity",
"abstractKey": null
};
})();
(node as any).hash = "d467db6a9f7f80521cf35c8c1a0c3416";
export default node;

View File

@@ -1,133 +0,0 @@
/**
* @generated SignedSource<<1eebc63e903c6dd5ab9f0178d2aaaa90>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type RemoveMemberInput = {
membershipId: string;
organizationId: string;
};
export type MemberListItem_removeMutation$variables = {
connections: ReadonlyArray<string>;
input: RemoveMemberInput;
};
export type MemberListItem_removeMutation$data = {
readonly removeMember: {
readonly deletedMembershipId: string;
} | null | undefined;
};
export type MemberListItem_removeMutation = {
response: MemberListItem_removeMutation$data;
variables: MemberListItem_removeMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "connections"
},
v1 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "input"
},
v2 = [
{
"kind": "Variable",
"name": "input",
"variableName": "input"
}
],
v3 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "deletedMembershipId",
"storageKey": null
};
return {
"fragment": {
"argumentDefinitions": [
(v0/*: any*/),
(v1/*: any*/)
],
"kind": "Fragment",
"metadata": null,
"name": "MemberListItem_removeMutation",
"selections": [
{
"alias": null,
"args": (v2/*: any*/),
"concreteType": "RemoveMemberPayload",
"kind": "LinkedField",
"name": "removeMember",
"plural": false,
"selections": [
(v3/*: any*/)
],
"storageKey": null
}
],
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": [
(v1/*: any*/),
(v0/*: any*/)
],
"kind": "Operation",
"name": "MemberListItem_removeMutation",
"selections": [
{
"alias": null,
"args": (v2/*: any*/),
"concreteType": "RemoveMemberPayload",
"kind": "LinkedField",
"name": "removeMember",
"plural": false,
"selections": [
(v3/*: any*/),
{
"alias": null,
"args": null,
"filters": null,
"handle": "deleteEdge",
"key": "",
"kind": "ScalarHandle",
"name": "deletedMembershipId",
"handleArgs": [
{
"kind": "Variable",
"name": "connections",
"variableName": "connections"
}
]
}
],
"storageKey": null
}
]
},
"params": {
"cacheID": "6bf37e12e069385eabd2bba63e0e980f",
"id": null,
"metadata": {},
"name": "MemberListItem_removeMutation",
"operationKind": "mutation",
"text": "mutation MemberListItem_removeMutation(\n $input: RemoveMemberInput!\n) {\n removeMember(input: $input) {\n deletedMembershipId\n }\n}\n"
}
};
})();
(node as any).hash = "9732b5ce9ca9de5c31e71a690e1763ed";
export default node;

View File

@@ -1,211 +0,0 @@
/**
* @generated SignedSource<<0d0fdbf079f1a72545fa363ce60cd2f7>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type SAMLEnforcementPolicy = "OFF" | "OPTIONAL" | "REQUIRED";
export type CreateSAMLConfigurationInput = {
attributeMappings?: SAMLAttributeMappingsInput | null | undefined;
autoSignupEnabled: boolean;
emailDomain: string;
idpCertificate: string;
idpEntityId: string;
idpSsoUrl: string;
organizationId: string;
};
export type SAMLAttributeMappingsInput = {
email?: string | null | undefined;
firstName?: string | null | undefined;
lastName?: string | null | undefined;
role?: string | null | undefined;
};
export type NewSAMLConfigurationForm_createMutation$variables = {
connections: ReadonlyArray<string>;
input: CreateSAMLConfigurationInput;
};
export type NewSAMLConfigurationForm_createMutation$data = {
readonly createSAMLConfiguration: {
readonly samlConfigurationEdge: {
readonly node: {
readonly domainVerificationToken: string | null | undefined;
readonly domainVerifiedAt: any | null | undefined;
readonly emailDomain: string;
readonly enforcementPolicy: SAMLEnforcementPolicy;
readonly id: string;
readonly testLoginUrl: string;
};
};
} | null | undefined;
};
export type NewSAMLConfigurationForm_createMutation = {
response: NewSAMLConfigurationForm_createMutation$data;
variables: NewSAMLConfigurationForm_createMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "connections"
},
v1 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "input"
},
v2 = [
{
"kind": "Variable",
"name": "input",
"variableName": "input"
}
],
v3 = {
"alias": null,
"args": null,
"concreteType": "SAMLConfigurationEdge",
"kind": "LinkedField",
"name": "samlConfigurationEdge",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "SAMLConfiguration",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "emailDomain",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "enforcementPolicy",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "domainVerificationToken",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "domainVerifiedAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "testLoginUrl",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
};
return {
"fragment": {
"argumentDefinitions": [
(v0/*: any*/),
(v1/*: any*/)
],
"kind": "Fragment",
"metadata": null,
"name": "NewSAMLConfigurationForm_createMutation",
"selections": [
{
"alias": null,
"args": (v2/*: any*/),
"concreteType": "CreateSAMLConfigurationPayload",
"kind": "LinkedField",
"name": "createSAMLConfiguration",
"plural": false,
"selections": [
(v3/*: any*/)
],
"storageKey": null
}
],
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": [
(v1/*: any*/),
(v0/*: any*/)
],
"kind": "Operation",
"name": "NewSAMLConfigurationForm_createMutation",
"selections": [
{
"alias": null,
"args": (v2/*: any*/),
"concreteType": "CreateSAMLConfigurationPayload",
"kind": "LinkedField",
"name": "createSAMLConfiguration",
"plural": false,
"selections": [
(v3/*: any*/),
{
"alias": null,
"args": null,
"filters": null,
"handle": "prependEdge",
"key": "",
"kind": "LinkedHandle",
"name": "samlConfigurationEdge",
"handleArgs": [
{
"kind": "Variable",
"name": "connections",
"variableName": "connections"
}
]
}
],
"storageKey": null
}
]
},
"params": {
"cacheID": "969d5fb34995f5cce359c792cbe1ff49",
"id": null,
"metadata": {},
"name": "NewSAMLConfigurationForm_createMutation",
"operationKind": "mutation",
"text": "mutation NewSAMLConfigurationForm_createMutation(\n $input: CreateSAMLConfigurationInput!\n) {\n createSAMLConfiguration(input: $input) {\n samlConfigurationEdge {\n node {\n id\n emailDomain\n enforcementPolicy\n domainVerificationToken\n domainVerifiedAt\n testLoginUrl\n }\n }\n }\n}\n"
}
};
})();
(node as any).hash = "5a3b2e5d219b40ca096eece75d7b63b3";
export default node;

View File

@@ -1,102 +0,0 @@
/**
* @generated SignedSource<<8deb33fbc8305caa3d3de954cf555c79>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type OrganizationFormFragment$data = {
readonly description: string | null | undefined;
readonly email: string | null | undefined;
readonly headquarterAddress: string | null | undefined;
readonly horizontalLogoUrl: string | null | undefined;
readonly id: string;
readonly logoUrl: string | null | undefined;
readonly name: string;
readonly websiteUrl: string | null | undefined;
readonly " $fragmentType": "OrganizationFormFragment";
};
export type OrganizationFormFragment$key = {
readonly " $data"?: OrganizationFormFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"OrganizationFormFragment">;
};
const node: ReaderFragment = {
"argumentDefinitions": [],
"kind": "Fragment",
"metadata": null,
"name": "OrganizationFormFragment",
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "name",
"storageKey": null
},
"action": "THROW"
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "logoUrl",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "horizontalLogoUrl",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "description",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "websiteUrl",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "email",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "headquarterAddress",
"storageKey": null
}
],
"type": "Organization",
"abstractKey": null
};
(node as any).hash = "0894093a550e5ba033a33b255b1bf2c7";
export default node;

View File

@@ -1,113 +0,0 @@
/**
* @generated SignedSource<<ea00a00b77edf3939a310de2b0f7b8e0>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type DeleteOrganizationHorizontalLogoInput = {
organizationId: string;
};
export type OrganizationForm_deleteHorizontalLogoMutation$variables = {
input: DeleteOrganizationHorizontalLogoInput;
};
export type OrganizationForm_deleteHorizontalLogoMutation$data = {
readonly deleteOrganizationHorizontalLogo: {
readonly organization: {
readonly horizontalLogoUrl: string | null | undefined;
readonly id: string;
};
} | null | undefined;
};
export type OrganizationForm_deleteHorizontalLogoMutation = {
response: OrganizationForm_deleteHorizontalLogoMutation$data;
variables: OrganizationForm_deleteHorizontalLogoMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "input"
}
],
v1 = [
{
"alias": null,
"args": [
{
"kind": "Variable",
"name": "input",
"variableName": "input"
}
],
"concreteType": "DeleteOrganizationHorizontalLogoPayload",
"kind": "LinkedField",
"name": "deleteOrganizationHorizontalLogo",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Organization",
"kind": "LinkedField",
"name": "organization",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "horizontalLogoUrl",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
}
];
return {
"fragment": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Fragment",
"metadata": null,
"name": "OrganizationForm_deleteHorizontalLogoMutation",
"selections": (v1/*: any*/),
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "OrganizationForm_deleteHorizontalLogoMutation",
"selections": (v1/*: any*/)
},
"params": {
"cacheID": "2ec98faaaf8317f642f5db54c7bbed80",
"id": null,
"metadata": {},
"name": "OrganizationForm_deleteHorizontalLogoMutation",
"operationKind": "mutation",
"text": "mutation OrganizationForm_deleteHorizontalLogoMutation(\n $input: DeleteOrganizationHorizontalLogoInput!\n) {\n deleteOrganizationHorizontalLogo(input: $input) {\n organization {\n id\n horizontalLogoUrl\n }\n }\n}\n"
}
};
})();
(node as any).hash = "9ea67e345e506fef9d85ee31bc360d51";
export default node;

View File

@@ -1,168 +0,0 @@
/**
* @generated SignedSource<<9602c1a0ad55d4889431c8e5f54f4461>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type UpdateOrganizationInput = {
description?: string | null | undefined;
email?: string | null | undefined;
headquarterAddress?: string | null | undefined;
horizontalLogoFile?: any | null | undefined;
logoFile?: any | null | undefined;
name?: string | null | undefined;
organizationId: string;
websiteUrl?: string | null | undefined;
};
export type OrganizationForm_updateMutation$variables = {
input: UpdateOrganizationInput;
};
export type OrganizationForm_updateMutation$data = {
readonly updateOrganization: {
readonly organization: {
readonly description: string | null | undefined;
readonly email: string | null | undefined;
readonly headquarterAddress: string | null | undefined;
readonly horizontalLogoUrl: string | null | undefined;
readonly id: string;
readonly logoUrl: string | null | undefined;
readonly name: string;
readonly websiteUrl: string | null | undefined;
} | null | undefined;
} | null | undefined;
};
export type OrganizationForm_updateMutation = {
response: OrganizationForm_updateMutation$data;
variables: OrganizationForm_updateMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "input"
}
],
v1 = [
{
"alias": null,
"args": [
{
"kind": "Variable",
"name": "input",
"variableName": "input"
}
],
"concreteType": "UpdateOrganizationPayload",
"kind": "LinkedField",
"name": "updateOrganization",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Organization",
"kind": "LinkedField",
"name": "organization",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "name",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "logoUrl",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "horizontalLogoUrl",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "description",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "websiteUrl",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "email",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "headquarterAddress",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
}
];
return {
"fragment": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Fragment",
"metadata": null,
"name": "OrganizationForm_updateMutation",
"selections": (v1/*: any*/),
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "OrganizationForm_updateMutation",
"selections": (v1/*: any*/)
},
"params": {
"cacheID": "f2a249d13ff38645cb858b494c05c59d",
"id": null,
"metadata": {},
"name": "OrganizationForm_updateMutation",
"operationKind": "mutation",
"text": "mutation OrganizationForm_updateMutation(\n $input: UpdateOrganizationInput!\n) {\n updateOrganization(input: $input) {\n organization {\n id\n name\n logoUrl\n horizontalLogoUrl\n description\n websiteUrl\n email\n headquarterAddress\n }\n }\n}\n"
}
};
})();
(node as any).hash = "c4dd7a42f611fa210594017a5a63d159";
export default node;

View File

@@ -1,180 +0,0 @@
/**
* @generated SignedSource<<12fade1fd1f7f3ae53595970b6c2c47e>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
export type SAMLEnforcementPolicy = "OFF" | "OPTIONAL" | "REQUIRED";
import { FragmentRefs } from "relay-runtime";
export type SAMLConfigurationListFragment$data = {
readonly samlConfigurations: {
readonly edges: ReadonlyArray<{
readonly node: {
readonly domainVerificationToken: string | null | undefined;
readonly domainVerifiedAt: any | null | undefined;
readonly emailDomain: string;
readonly enforcementPolicy: SAMLEnforcementPolicy;
readonly id: string;
readonly testLoginUrl: string;
};
}>;
};
readonly " $fragmentType": "SAMLConfigurationListFragment";
};
export type SAMLConfigurationListFragment$key = {
readonly " $data"?: SAMLConfigurationListFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"SAMLConfigurationListFragment">;
};
const node: ReaderFragment = {
"argumentDefinitions": [],
"kind": "Fragment",
"metadata": {
"connection": [
{
"count": null,
"cursor": null,
"direction": "forward",
"path": [
"samlConfigurations"
]
}
]
},
"name": "SAMLConfigurationListFragment",
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": "samlConfigurations",
"args": null,
"concreteType": "SAMLConfigurationConnection",
"kind": "LinkedField",
"name": "__SAMLConfigurationListFragment_samlConfigurations_connection",
"plural": false,
"selections": [
{
"kind": "RequiredField",
"field": {
"alias": null,
"args": null,
"concreteType": "SAMLConfigurationEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "SAMLConfiguration",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "emailDomain",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "enforcementPolicy",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "domainVerificationToken",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "domainVerifiedAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "testLoginUrl",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "cursor",
"storageKey": null
}
],
"storageKey": null
},
"action": "THROW"
},
{
"alias": null,
"args": null,
"concreteType": "PageInfo",
"kind": "LinkedField",
"name": "pageInfo",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "endCursor",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasNextPage",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
},
"action": "THROW"
}
],
"type": "Organization",
"abstractKey": null
};
(node as any).hash = "79203ccae6f8e3a1967b463f0f3f3c76";
export default node;

View File

@@ -1,133 +0,0 @@
/**
* @generated SignedSource<<6466caf236dccf64aadc80e85172d8e3>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type DeleteSAMLConfigurationInput = {
organizationId: string;
samlConfigurationId: string;
};
export type SAMLConfigurationList_deleteMutation$variables = {
connections: ReadonlyArray<string>;
input: DeleteSAMLConfigurationInput;
};
export type SAMLConfigurationList_deleteMutation$data = {
readonly deleteSAMLConfiguration: {
readonly deletedSamlConfigurationId: string;
} | null | undefined;
};
export type SAMLConfigurationList_deleteMutation = {
response: SAMLConfigurationList_deleteMutation$data;
variables: SAMLConfigurationList_deleteMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "connections"
},
v1 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "input"
},
v2 = [
{
"kind": "Variable",
"name": "input",
"variableName": "input"
}
],
v3 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "deletedSamlConfigurationId",
"storageKey": null
};
return {
"fragment": {
"argumentDefinitions": [
(v0/*: any*/),
(v1/*: any*/)
],
"kind": "Fragment",
"metadata": null,
"name": "SAMLConfigurationList_deleteMutation",
"selections": [
{
"alias": null,
"args": (v2/*: any*/),
"concreteType": "DeleteSAMLConfigurationPayload",
"kind": "LinkedField",
"name": "deleteSAMLConfiguration",
"plural": false,
"selections": [
(v3/*: any*/)
],
"storageKey": null
}
],
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": [
(v1/*: any*/),
(v0/*: any*/)
],
"kind": "Operation",
"name": "SAMLConfigurationList_deleteMutation",
"selections": [
{
"alias": null,
"args": (v2/*: any*/),
"concreteType": "DeleteSAMLConfigurationPayload",
"kind": "LinkedField",
"name": "deleteSAMLConfiguration",
"plural": false,
"selections": [
(v3/*: any*/),
{
"alias": null,
"args": null,
"filters": null,
"handle": "deleteEdge",
"key": "",
"kind": "ScalarHandle",
"name": "deletedSamlConfigurationId",
"handleArgs": [
{
"kind": "Variable",
"name": "connections",
"variableName": "connections"
}
]
}
],
"storageKey": null
}
]
},
"params": {
"cacheID": "cb46bb31e5d10f0ddad38795a72b1ab1",
"id": null,
"metadata": {},
"name": "SAMLConfigurationList_deleteMutation",
"operationKind": "mutation",
"text": "mutation SAMLConfigurationList_deleteMutation(\n $input: DeleteSAMLConfigurationInput!\n) {\n deleteSAMLConfiguration(input: $input) {\n deletedSamlConfigurationId\n }\n}\n"
}
};
})();
(node as any).hash = "aba27afc1e97268478c5159cedf70026";
export default node;

View File

@@ -1,4 +1,7 @@
import { getAssetTypeVariant, validateSnapshotConsistency } from "@probo/helpers";
import {
getAssetTypeVariant,
validateSnapshotConsistency,
} from "@probo/helpers";
import { useTranslate } from "@probo/i18n";
import {
ActionDropdown,
@@ -26,7 +29,7 @@ import { SnapshotBanner } from "/components/SnapshotBanner";
import { ControlledField } from "/components/form/ControlledField";
import { PeopleSelectField } from "/components/form/PeopleSelectField";
import { VendorsMultiSelectField } from "/components/form/VendorsMultiSelectField";
import type { AssetGraphNodeQuery } from "/hooks/graph/__generated__/AssetGraphNodeQuery.graphql";
import type { AssetGraphNodeQuery } from "/__generated__/core/AssetGraphNodeQuery.graphql";
import { useFormWithSchema } from "/hooks/useFormWithSchema";
import { useOrganizationId } from "/hooks/useOrganizationId";
import { use } from "react";
@@ -46,7 +49,10 @@ type Props = {
};
export default function AssetDetailsPage(props: Props) {
const asset = usePreloadedQuery<AssetGraphNodeQuery>(assetNodeQuery, props.queryRef);
const asset = usePreloadedQuery<AssetGraphNodeQuery>(
assetNodeQuery,
props.queryRef,
);
const assetEntry = asset.node;
const { __ } = useTranslate();
const organizationId = useOrganizationId();
@@ -59,23 +65,24 @@ export default function AssetDetailsPage(props: Props) {
const connectionId = ConnectionHandler.getConnectionID(
organizationId,
"AssetsPage_assets",
{ filter: { snapshotId: snapshotId || null } }
{ filter: { snapshotId: snapshotId || null } },
);
const deleteAsset = useDeleteAsset(assetEntry, connectionId);
const vendors = assetEntry.vendors?.edges.map((edge) => edge.node) ?? [];
const vendorIds = vendors.map((vendor) => vendor.id);
const { control, formState, handleSubmit, register, reset } = useFormWithSchema(updateAssetSchema, {
defaultValues: {
name: assetEntry.name || "",
amount: assetEntry.amount || 0,
assetType: assetEntry.assetType || "VIRTUAL",
dataTypesStored: assetEntry.dataTypesStored || "",
ownerId: assetEntry.owner?.id || "",
vendorIds: vendorIds,
},
});
const { control, formState, handleSubmit, register, reset } =
useFormWithSchema(updateAssetSchema, {
defaultValues: {
name: assetEntry.name || "",
amount: assetEntry.amount || 0,
assetType: assetEntry.assetType || "VIRTUAL",
dataTypesStored: assetEntry.dataTypesStored || "",
ownerId: assetEntry.owner?.id || "",
vendorIds: vendorIds,
},
});
const updateAsset = useUpdateAsset();
@@ -87,9 +94,10 @@ export default function AssetDetailsPage(props: Props) {
reset(formData);
});
const breadcrumbAssetsUrl = isSnapshotMode && snapshotId
? `/organizations/${organizationId}/snapshots/${snapshotId}/assets`
: `/organizations/${organizationId}/assets`;
const breadcrumbAssetsUrl =
isSnapshotMode && snapshotId
? `/organizations/${organizationId}/snapshots/${snapshotId}/assets`
: `/organizations/${organizationId}/assets`;
return (
<div className="space-y-6">
@@ -109,22 +117,24 @@ export default function AssetDetailsPage(props: Props) {
<div className="flex justify-between items-start">
<div className="flex items-center gap-4">
<div className="text-2xl">{assetEntry?.name}</div>
<Badge variant={getAssetTypeVariant(assetEntry?.assetType ?? "VIRTUAL")}>
{assetEntry?.assetType === "PHYSICAL" ? __("Physical") : __("Virtual")}
<Badge
variant={getAssetTypeVariant(assetEntry?.assetType ?? "VIRTUAL")}
>
{assetEntry?.assetType === "PHYSICAL"
? __("Physical")
: __("Virtual")}
</Badge>
</div>
{!isSnapshotMode && (
isAuthorized("Asset", "deleteAsset") && (
<ActionDropdown variant="secondary">
<DropdownItem
variant="danger"
icon={IconTrashCan}
onClick={deleteAsset}
>
{__("Delete")}
</DropdownItem>
</ActionDropdown>
)
{!isSnapshotMode && isAuthorized("Asset", "deleteAsset") && (
<ActionDropdown variant="secondary">
<DropdownItem
variant="danger"
icon={IconTrashCan}
onClick={deleteAsset}
>
{__("Delete")}
</DropdownItem>
</ActionDropdown>
)}
</div>
@@ -179,13 +189,13 @@ export default function AssetDetailsPage(props: Props) {
/>
<div className="flex justify-end">
{formState.isDirty && !isSnapshotMode && (
{formState.isDirty &&
!isSnapshotMode &&
isAuthorized("Asset", "updateAsset") && (
<Button type="submit" disabled={formState.isSubmitting}>
{formState.isSubmitting ? __("Updating...") : __("Update")}
</Button>
)
)}
)}
</div>
</form>
</div>

View File

@@ -1,10 +1,6 @@
import { usePageTitle } from "@probo/hooks";
import { useTranslate } from "@probo/i18n";
import {
Button,
IconPlusLarge,
PageHeader,
} from "@probo/ui";
import { Button, IconPlusLarge, PageHeader } from "@probo/ui";
import { use } from "react";
import {
graphql,
@@ -15,13 +11,11 @@ import {
import { useParams } from "react-router";
import { AssetsTable } from "../../../components/assets/AssetsTable";
import { ReadOnlyAssetsTable } from "../../../components/assets/ReadOnlyAssetsTable";
import type { AssetsPageFragment$key } from "./__generated__/AssetsPageFragment.graphql";
import type { AssetsPageFragment$key } from "/__generated__/core/AssetsPageFragment.graphql";
import { CreateAssetDialog } from "./dialogs/CreateAssetDialog";
import { SnapshotBanner } from "/components/SnapshotBanner";
import {
assetsQuery,
} from "/hooks/graph/AssetGraph";
import type { AssetGraphListQuery } from "/hooks/graph/__generated__/AssetGraphListQuery.graphql";
import { assetsQuery } from "/hooks/graph/AssetGraph";
import type { AssetGraphListQuery } from "/__generated__/core/AssetGraphListQuery.graphql";
import { useOrganizationId } from "/hooks/useOrganizationId";
import { PermissionsContext } from "/providers/PermissionsContext";
@@ -83,7 +77,10 @@ export default function AssetsPage(props: Props) {
const { snapshotId } = useParams<{ snapshotId?: string }>();
const isSnapshotMode = Boolean(snapshotId);
const data = usePreloadedQuery<AssetGraphListQuery>(assetsQuery, props.queryRef);
const data = usePreloadedQuery<AssetGraphListQuery>(
assetsQuery,
props.queryRef,
);
const pagination = usePaginationFragment(
paginatedAssetsFragment,
data.node as AssetsPageFragment$key,
@@ -92,10 +89,9 @@ export default function AssetsPage(props: Props) {
const connectionId = pagination.data.assets.__id;
const { isAuthorized } = use(PermissionsContext);
const canWrite = (
const canWrite =
isAuthorized("Asset", "updateAsset") ||
isAuthorized("Asset", "deleteAsset")
);
isAuthorized("Asset", "deleteAsset");
usePageTitle(__("Assets"));
return (
@@ -116,15 +112,15 @@ export default function AssetsPage(props: Props) {
</CreateAssetDialog>
)}
</PageHeader>
{isSnapshotMode || !canWrite ?
{isSnapshotMode || !canWrite ? (
<ReadOnlyAssetsTable pagination={pagination} assets={assets} />
:
) : (
<AssetsTable
connectionId={connectionId}
pagination={pagination}
assets={assets}
/>
}
)}
</div>
);
}

View File

@@ -1,444 +0,0 @@
/**
* @generated SignedSource<<794ba3ed2ccc75355a8c69c83d143587>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type AssetOrderField = "AMOUNT" | "CREATED_AT";
export type OrderDirection = "ASC" | "DESC";
export type AssetOrder = {
direction: OrderDirection;
field: AssetOrderField;
};
export type AssetsListQuery$variables = {
after?: any | null | undefined;
before?: any | null | undefined;
first?: number | null | undefined;
id: string;
last?: number | null | undefined;
orderBy?: AssetOrder | null | undefined;
snapshotId?: string | null | undefined;
};
export type AssetsListQuery$data = {
readonly node: {
readonly " $fragmentSpreads": FragmentRefs<"AssetsPageFragment">;
};
};
export type AssetsListQuery = {
response: AssetsListQuery$data;
variables: AssetsListQuery$variables;
};
const node: ConcreteRequest = (function(){
var v0 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "after"
},
v1 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "before"
},
v2 = {
"defaultValue": 10,
"kind": "LocalArgument",
"name": "first"
},
v3 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "id"
},
v4 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "last"
},
v5 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "orderBy"
},
v6 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "snapshotId"
},
v7 = [
{
"kind": "Variable",
"name": "id",
"variableName": "id"
}
],
v8 = {
"kind": "Variable",
"name": "after",
"variableName": "after"
},
v9 = {
"kind": "Variable",
"name": "before",
"variableName": "before"
},
v10 = {
"kind": "Variable",
"name": "first",
"variableName": "first"
},
v11 = {
"kind": "Variable",
"name": "last",
"variableName": "last"
},
v12 = {
"kind": "Variable",
"name": "orderBy",
"variableName": "orderBy"
},
v13 = {
"kind": "Variable",
"name": "snapshotId",
"variableName": "snapshotId"
},
v14 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
},
v15 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
v16 = [
(v8/*: any*/),
(v9/*: any*/),
{
"fields": [
(v13/*: any*/)
],
"kind": "ObjectValue",
"name": "filter"
},
(v10/*: any*/),
(v11/*: any*/),
(v12/*: any*/)
],
v17 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "name",
"storageKey": null
};
return {
"fragment": {
"argumentDefinitions": [
(v0/*: any*/),
(v1/*: any*/),
(v2/*: any*/),
(v3/*: any*/),
(v4/*: any*/),
(v5/*: any*/),
(v6/*: any*/)
],
"kind": "Fragment",
"metadata": null,
"name": "AssetsListQuery",
"selections": [
{
"alias": null,
"args": (v7/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
{
"args": [
(v8/*: any*/),
(v9/*: any*/),
(v10/*: any*/),
(v11/*: any*/),
(v12/*: any*/),
(v13/*: any*/)
],
"kind": "FragmentSpread",
"name": "AssetsPageFragment"
}
],
"storageKey": null
}
],
"type": "Query",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": [
(v0/*: any*/),
(v1/*: any*/),
(v2/*: any*/),
(v4/*: any*/),
(v5/*: any*/),
(v6/*: any*/),
(v3/*: any*/)
],
"kind": "Operation",
"name": "AssetsListQuery",
"selections": [
{
"alias": null,
"args": (v7/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v14/*: any*/),
(v15/*: any*/),
{
"kind": "InlineFragment",
"selections": [
{
"alias": null,
"args": (v16/*: any*/),
"concreteType": "AssetConnection",
"kind": "LinkedField",
"name": "assets",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "AssetEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Asset",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v15/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "snapshotId",
"storageKey": null
},
(v17/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "amount",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "assetType",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "dataTypesStored",
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "People",
"kind": "LinkedField",
"name": "owner",
"plural": false,
"selections": [
(v15/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "fullName",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": [
{
"kind": "Literal",
"name": "first",
"value": 50
}
],
"concreteType": "VendorConnection",
"kind": "LinkedField",
"name": "vendors",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "VendorEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Vendor",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v15/*: any*/),
(v17/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "websiteUrl",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": "vendors(first:50)"
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "createdAt",
"storageKey": null
},
(v14/*: any*/)
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "cursor",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "PageInfo",
"kind": "LinkedField",
"name": "pageInfo",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "endCursor",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasNextPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasPreviousPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "startCursor",
"storageKey": null
}
],
"storageKey": null
},
{
"kind": "ClientExtension",
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__id",
"storageKey": null
}
]
}
],
"storageKey": null
},
{
"alias": null,
"args": (v16/*: any*/),
"filters": [
"filter"
],
"handle": "connection",
"key": "AssetsPage_assets",
"kind": "LinkedHandle",
"name": "assets"
}
],
"type": "Organization",
"abstractKey": null
}
],
"storageKey": null
}
]
},
"params": {
"cacheID": "71aa6b89d4eba225262e326fdfe04cf7",
"id": null,
"metadata": {},
"name": "AssetsListQuery",
"operationKind": "query",
"text": "query AssetsListQuery(\n $after: CursorKey = null\n $before: CursorKey = null\n $first: Int = 10\n $last: Int = null\n $orderBy: AssetOrder = null\n $snapshotId: ID = null\n $id: ID!\n) {\n node(id: $id) {\n __typename\n ...AssetsPageFragment_38J9tm\n id\n }\n}\n\nfragment AssetsPageFragment_38J9tm on Organization {\n assets(first: $first, after: $after, last: $last, before: $before, orderBy: $orderBy, filter: {snapshotId: $snapshotId}) {\n edges {\n node {\n id\n snapshotId\n name\n amount\n assetType\n dataTypesStored\n owner {\n id\n fullName\n }\n vendors(first: 50) {\n edges {\n node {\n id\n name\n websiteUrl\n }\n }\n }\n createdAt\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n hasPreviousPage\n startCursor\n }\n }\n id\n}\n"
}
};
})();
(node as any).hash = "a230182c928f189b50fdc39950602ffd";
export default node;

View File

@@ -1,360 +0,0 @@
/**
* @generated SignedSource<<6f077a71ef62a9c059bee1b50d3a23ef>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
export type AssetType = "PHYSICAL" | "VIRTUAL";
import { FragmentRefs } from "relay-runtime";
export type AssetsPageFragment$data = {
readonly assets: {
readonly __id: string;
readonly edges: ReadonlyArray<{
readonly node: {
readonly amount: number;
readonly assetType: AssetType;
readonly createdAt: any;
readonly dataTypesStored: string;
readonly id: string;
readonly name: string;
readonly owner: {
readonly fullName: string;
readonly id: string;
};
readonly snapshotId: string | null | undefined;
readonly vendors: {
readonly edges: ReadonlyArray<{
readonly node: {
readonly id: string;
readonly name: string;
readonly websiteUrl: string | null | undefined;
};
}>;
};
};
}>;
};
readonly id: string;
readonly " $fragmentType": "AssetsPageFragment";
};
export type AssetsPageFragment$key = {
readonly " $data"?: AssetsPageFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"AssetsPageFragment">;
};
import AssetsListQuery_graphql from './AssetsListQuery.graphql';
const node: ReaderFragment = (function(){
var v0 = [
"assets"
],
v1 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
v2 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "name",
"storageKey": null
};
return {
"argumentDefinitions": [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "after"
},
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "before"
},
{
"defaultValue": 10,
"kind": "LocalArgument",
"name": "first"
},
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "last"
},
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "orderBy"
},
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "snapshotId"
}
],
"kind": "Fragment",
"metadata": {
"connection": [
{
"count": null,
"cursor": null,
"direction": "bidirectional",
"path": (v0/*: any*/)
}
],
"refetch": {
"connection": {
"forward": {
"count": "first",
"cursor": "after"
},
"backward": {
"count": "last",
"cursor": "before"
},
"path": (v0/*: any*/)
},
"fragmentPathInResult": [
"node"
],
"operation": AssetsListQuery_graphql,
"identifierInfo": {
"identifierField": "id",
"identifierQueryVariableName": "id"
}
}
},
"name": "AssetsPageFragment",
"selections": [
{
"alias": "assets",
"args": [
{
"fields": [
{
"kind": "Variable",
"name": "snapshotId",
"variableName": "snapshotId"
}
],
"kind": "ObjectValue",
"name": "filter"
}
],
"concreteType": "AssetConnection",
"kind": "LinkedField",
"name": "__AssetsPage_assets_connection",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "AssetEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Asset",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v1/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "snapshotId",
"storageKey": null
},
(v2/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "amount",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "assetType",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "dataTypesStored",
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "People",
"kind": "LinkedField",
"name": "owner",
"plural": false,
"selections": [
(v1/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "fullName",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": [
{
"kind": "Literal",
"name": "first",
"value": 50
}
],
"concreteType": "VendorConnection",
"kind": "LinkedField",
"name": "vendors",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "VendorEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Vendor",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v1/*: any*/),
(v2/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "websiteUrl",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": "vendors(first:50)"
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "createdAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "cursor",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "PageInfo",
"kind": "LinkedField",
"name": "pageInfo",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "endCursor",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasNextPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasPreviousPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "startCursor",
"storageKey": null
}
],
"storageKey": null
},
{
"kind": "ClientExtension",
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__id",
"storageKey": null
}
]
}
],
"storageKey": null
},
(v1/*: any*/)
],
"type": "Organization",
"abstractKey": null
};
})();
(node as any).hash = "a230182c928f189b50fdc39950602ffd";
export default node;

View File

@@ -43,7 +43,7 @@ import {
formatDate,
type GraphQLError,
} from "@probo/helpers";
import type { AuditGraphNodeQuery } from "/hooks/graph/__generated__/AuditGraphNodeQuery.graphql";
import type { AuditGraphNodeQuery } from "/__generated__/core/AuditGraphNodeQuery.graphql";
import { use } from "react";
import { PermissionsContext } from "/providers/PermissionsContext";
import { useNavigate } from "react-router";
@@ -68,7 +68,7 @@ type Props = {
export default function AuditDetailsPage(props: Props) {
const audit = usePreloadedQuery<AuditGraphNodeQuery>(
auditNodeQuery,
props.queryRef
props.queryRef,
);
const auditEntry = audit.node;
const { __ } = useTranslate();
@@ -79,7 +79,7 @@ export default function AuditDetailsPage(props: Props) {
const deleteAudit = useDeleteAudit(
{ id: auditEntry.id!, framework: { name: auditEntry.framework!.name } },
ConnectionHandler.getConnectionID(organizationId, "AuditsPage_audits"),
() => navigate(`/organizations/${organizationId}/audits`)
() => navigate(`/organizations/${organizationId}/audits`),
);
const { control, formState, handleSubmit, register, reset } =
@@ -120,7 +120,7 @@ export default function AuditDetailsPage(props: Props) {
title: __("Error"),
description: formatError(
__("Failed to update audit"),
error as GraphQLError
error as GraphQLError,
),
variant: "error",
});
@@ -137,11 +137,11 @@ export default function AuditDetailsPage(props: Props) {
{
message: sprintf(
__(
'This will permanently delete the audit report "%s". This action cannot be undone.'
'This will permanently delete the audit report "%s". This action cannot be undone.',
),
auditEntry.report.filename
auditEntry.report.filename,
),
}
},
);
};
@@ -273,12 +273,12 @@ export default function AuditDetailsPage(props: Props) {
<div className="space-y-4">
<p className="text-neutral-600">
{__(
"Upload the final audit report document (PDF recommended)"
"Upload the final audit report document (PDF recommended)",
)}
</p>
<Dropzone
description={__(
"Only PDF, DOCX files up to 25MB are allowed"
"Only PDF, DOCX files up to 25MB are allowed",
)}
isUploading={isUploading}
onDrop={async (files) => {

View File

@@ -23,13 +23,17 @@ import {
import { useOrganizationId } from "/hooks/useOrganizationId";
import { CreateAuditDialog } from "./dialogs/CreateAuditDialog";
import { useDeleteAudit, auditsQuery } from "../../../hooks/graph/AuditGraph";
import type { AuditGraphListQuery } from "/hooks/graph/__generated__/AuditGraphListQuery.graphql";
import type { AuditGraphListQuery } from "/__generated__/core/AuditGraphListQuery.graphql";
import type { NodeOf } from "/types";
import { getAuditStateLabel, getAuditStateVariant, formatDate } from "@probo/helpers";
import {
getAuditStateLabel,
getAuditStateVariant,
formatDate,
} from "@probo/helpers";
import type {
AuditsPageFragment$data,
AuditsPageFragment$key,
} from "./__generated__/AuditsPageFragment.graphql";
} from "/__generated__/core/AuditsPageFragment.graphql";
import { SortableTable } from "/components/SortableTable";
import { PermissionsContext } from "/providers/PermissionsContext";
import { use } from "react";
@@ -88,14 +92,15 @@ export default function AuditsPage(props: Props) {
const data = usePreloadedQuery(auditsQuery, props.queryRef);
const pagination = usePaginationFragment(
paginatedAuditsFragment,
data.node as AuditsPageFragment$key
data.node as AuditsPageFragment$key,
);
const audits = pagination.data.audits?.edges?.map((edge) => edge.node) ?? [];
const connectionId = pagination.data.audits.__id;
usePageTitle(__("Audits"));
const hasAnyAction = isAuthorized("Audit", "updateAudit") ||
const hasAnyAction =
isAuthorized("Audit", "updateAudit") ||
isAuthorized("Audit", "deleteAudit");
return (
@@ -103,7 +108,7 @@ export default function AuditsPage(props: Props) {
<PageHeader
title={__("Audits")}
description={__(
"Manage your organization's compliance audits and their progress."
"Manage your organization's compliance audits and their progress.",
)}
>
{isAuthorized("Organization", "createAudit") && (
@@ -111,7 +116,7 @@ export default function AuditsPage(props: Props) {
connection={connectionId}
organizationId={organizationId}
>
<Button icon={IconPlusLarge}>{__("Add audit")}</Button>
<Button icon={IconPlusLarge}>{__("Add audit")}</Button>
</CreateAuditDialog>
)}
</PageHeader>

View File

@@ -1,370 +0,0 @@
/**
* @generated SignedSource<<0010416e8a5bda346d415bd80fd70dc8>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type AuditOrderField = "CREATED_AT" | "STATE" | "VALID_FROM" | "VALID_UNTIL";
export type OrderDirection = "ASC" | "DESC";
export type AuditOrder = {
direction: OrderDirection;
field: AuditOrderField;
};
export type AuditsListQuery$variables = {
after?: any | null | undefined;
before?: any | null | undefined;
first?: number | null | undefined;
id: string;
last?: number | null | undefined;
orderBy?: AuditOrder | null | undefined;
};
export type AuditsListQuery$data = {
readonly node: {
readonly " $fragmentSpreads": FragmentRefs<"AuditsPageFragment">;
};
};
export type AuditsListQuery = {
response: AuditsListQuery$data;
variables: AuditsListQuery$variables;
};
const node: ConcreteRequest = (function(){
var v0 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "after"
},
v1 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "before"
},
v2 = {
"defaultValue": 10,
"kind": "LocalArgument",
"name": "first"
},
v3 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "id"
},
v4 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "last"
},
v5 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "orderBy"
},
v6 = [
{
"kind": "Variable",
"name": "id",
"variableName": "id"
}
],
v7 = [
{
"kind": "Variable",
"name": "after",
"variableName": "after"
},
{
"kind": "Variable",
"name": "before",
"variableName": "before"
},
{
"kind": "Variable",
"name": "first",
"variableName": "first"
},
{
"kind": "Variable",
"name": "last",
"variableName": "last"
},
{
"kind": "Variable",
"name": "orderBy",
"variableName": "orderBy"
}
],
v8 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
},
v9 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
v10 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "name",
"storageKey": null
};
return {
"fragment": {
"argumentDefinitions": [
(v0/*: any*/),
(v1/*: any*/),
(v2/*: any*/),
(v3/*: any*/),
(v4/*: any*/),
(v5/*: any*/)
],
"kind": "Fragment",
"metadata": null,
"name": "AuditsListQuery",
"selections": [
{
"alias": null,
"args": (v6/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
{
"args": (v7/*: any*/),
"kind": "FragmentSpread",
"name": "AuditsPageFragment"
}
],
"storageKey": null
}
],
"type": "Query",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": [
(v0/*: any*/),
(v1/*: any*/),
(v2/*: any*/),
(v4/*: any*/),
(v5/*: any*/),
(v3/*: any*/)
],
"kind": "Operation",
"name": "AuditsListQuery",
"selections": [
{
"alias": null,
"args": (v6/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v8/*: any*/),
(v9/*: any*/),
{
"kind": "InlineFragment",
"selections": [
{
"alias": null,
"args": (v7/*: 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": [
(v9/*: any*/),
(v10/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "validFrom",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "validUntil",
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "Report",
"kind": "LinkedField",
"name": "report",
"plural": false,
"selections": [
(v9/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "filename",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "state",
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "Framework",
"kind": "LinkedField",
"name": "framework",
"plural": false,
"selections": [
(v9/*: any*/),
(v10/*: any*/)
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "createdAt",
"storageKey": null
},
(v8/*: any*/)
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "cursor",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "PageInfo",
"kind": "LinkedField",
"name": "pageInfo",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "endCursor",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasNextPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasPreviousPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "startCursor",
"storageKey": null
}
],
"storageKey": null
},
{
"kind": "ClientExtension",
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__id",
"storageKey": null
}
]
}
],
"storageKey": null
},
{
"alias": null,
"args": (v7/*: any*/),
"filters": [
"orderBy"
],
"handle": "connection",
"key": "AuditsPage_audits",
"kind": "LinkedHandle",
"name": "audits"
}
],
"type": "Organization",
"abstractKey": null
}
],
"storageKey": null
}
]
},
"params": {
"cacheID": "9d185e504f8c34d5c3fd7211d4e8a2a2",
"id": null,
"metadata": {},
"name": "AuditsListQuery",
"operationKind": "query",
"text": "query AuditsListQuery(\n $after: CursorKey = null\n $before: CursorKey = null\n $first: Int = 10\n $last: Int = null\n $orderBy: AuditOrder = null\n $id: ID!\n) {\n node(id: $id) {\n __typename\n ...AuditsPageFragment_sdb03\n id\n }\n}\n\nfragment AuditsPageFragment_sdb03 on Organization {\n audits(first: $first, after: $after, last: $last, before: $before, orderBy: $orderBy) {\n edges {\n node {\n id\n name\n validFrom\n validUntil\n report {\n id\n filename\n }\n state\n framework {\n id\n name\n }\n createdAt\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n hasPreviousPage\n startCursor\n }\n }\n id\n}\n"
}
};
})();
(node as any).hash = "be8d1f1d8015c16539886bc79c8026f7";
export default node;

View File

@@ -1,301 +0,0 @@
/**
* @generated SignedSource<<8c09163f7cf7b3953aed77791b0d3dd1>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
export type AuditState = "COMPLETED" | "IN_PROGRESS" | "NOT_STARTED" | "OUTDATED" | "REJECTED";
import { FragmentRefs } from "relay-runtime";
export type AuditsPageFragment$data = {
readonly audits: {
readonly __id: string;
readonly edges: ReadonlyArray<{
readonly node: {
readonly createdAt: any;
readonly framework: {
readonly id: string;
readonly name: string;
};
readonly id: string;
readonly name: string | null | undefined;
readonly report: {
readonly filename: string;
readonly id: string;
} | null | undefined;
readonly state: AuditState;
readonly validFrom: any | null | undefined;
readonly validUntil: any | null | undefined;
};
}>;
};
readonly id: string;
readonly " $fragmentType": "AuditsPageFragment";
};
export type AuditsPageFragment$key = {
readonly " $data"?: AuditsPageFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"AuditsPageFragment">;
};
import AuditsListQuery_graphql from './AuditsListQuery.graphql';
const node: ReaderFragment = (function(){
var v0 = [
"audits"
],
v1 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
v2 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "name",
"storageKey": null
};
return {
"argumentDefinitions": [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "after"
},
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "before"
},
{
"defaultValue": 10,
"kind": "LocalArgument",
"name": "first"
},
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "last"
},
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "orderBy"
}
],
"kind": "Fragment",
"metadata": {
"connection": [
{
"count": null,
"cursor": null,
"direction": "bidirectional",
"path": (v0/*: any*/)
}
],
"refetch": {
"connection": {
"forward": {
"count": "first",
"cursor": "after"
},
"backward": {
"count": "last",
"cursor": "before"
},
"path": (v0/*: any*/)
},
"fragmentPathInResult": [
"node"
],
"operation": AuditsListQuery_graphql,
"identifierInfo": {
"identifierField": "id",
"identifierQueryVariableName": "id"
}
}
},
"name": "AuditsPageFragment",
"selections": [
{
"alias": "audits",
"args": [
{
"kind": "Variable",
"name": "orderBy",
"variableName": "orderBy"
}
],
"concreteType": "AuditConnection",
"kind": "LinkedField",
"name": "__AuditsPage_audits_connection",
"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": [
(v1/*: any*/),
(v2/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "validFrom",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "validUntil",
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "Report",
"kind": "LinkedField",
"name": "report",
"plural": false,
"selections": [
(v1/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "filename",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "state",
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "Framework",
"kind": "LinkedField",
"name": "framework",
"plural": false,
"selections": [
(v1/*: any*/),
(v2/*: any*/)
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "createdAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "cursor",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "PageInfo",
"kind": "LinkedField",
"name": "pageInfo",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "endCursor",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasNextPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasPreviousPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "startCursor",
"storageKey": null
}
],
"storageKey": null
},
{
"kind": "ClientExtension",
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__id",
"storageKey": null
}
]
}
],
"storageKey": null
},
(v1/*: any*/)
],
"type": "Organization",
"abstractKey": null
};
})();
(node as any).hash = "be8d1f1d8015c16539886bc79c8026f7";
export default node;

View File

@@ -16,12 +16,18 @@ import z from "zod";
import { useFormWithSchema } from "/hooks/useFormWithSchema";
import { ControlledField } from "/components/form/ControlledField";
import { useCreateAudit } from "/hooks/graph/AuditGraph";
import { auditStates, getAuditStateLabel, formatDatetime, formatError, type GraphQLError } from "@probo/helpers";
import {
auditStates,
getAuditStateLabel,
formatDatetime,
formatError,
type GraphQLError,
} from "@probo/helpers";
import { useLazyLoadQuery } from "react-relay";
import { graphql } from "relay-runtime";
import { Suspense } from "react";
import { Controller, type Control } from "react-hook-form";
import type { CreateAuditDialogFrameworksQuery } from "./__generated__/CreateAuditDialogFrameworksQuery.graphql";
import type { CreateAuditDialogFrameworksQuery } from "/__generated__/core/CreateAuditDialogFrameworksQuery.graphql";
const frameworksQuery = graphql`
query CreateAuditDialogFrameworksQuery($organizationId: ID!) {
@@ -45,7 +51,13 @@ const schema = z.object({
name: z.string().optional(),
validFrom: z.string().optional(),
validUntil: z.string().optional(),
state: z.enum(["NOT_STARTED", "IN_PROGRESS", "COMPLETED", "REJECTED", "OUTDATED"]),
state: z.enum([
"NOT_STARTED",
"IN_PROGRESS",
"COMPLETED",
"REJECTED",
"OUTDATED",
]),
});
type Props = {
@@ -94,7 +106,10 @@ export function CreateAuditDialog({
} catch (error) {
toast({
title: __("Error"),
description: formatError(__("Failed to create audit"), error as GraphQLError),
description: formatError(
__("Failed to create audit"),
error as GraphQLError,
),
variant: "error",
});
}
@@ -109,7 +124,11 @@ export function CreateAuditDialog({
<form onSubmit={onSubmit} className="space-y-4">
<DialogContent padded className="space-y-4">
<Field label={__("Framework")}>
<Suspense fallback={<Select variant="editor" disabled placeholder="Loading..." />}>
<Suspense
fallback={
<Select variant="editor" disabled placeholder="Loading..." />
}
>
<FrameworkSelect
organizationId={organizationId}
control={control}
@@ -157,15 +176,22 @@ type FormSchema = z.infer<typeof schema>;
function FrameworkSelect({
organizationId,
control,
name
name,
}: {
organizationId: string;
control: Control<FormSchema>;
name: keyof FormSchema;
}) {
const { __ } = useTranslate();
const data = useLazyLoadQuery<CreateAuditDialogFrameworksQuery>(frameworksQuery, { organizationId }, { fetchPolicy: "network-only" });
const frameworks = data?.organization?.frameworks?.edges?.map((edge) => edge.node).filter((node): node is NonNullable<typeof node> => node !== null) ?? [];
const data = useLazyLoadQuery<CreateAuditDialogFrameworksQuery>(
frameworksQuery,
{ organizationId },
{ fetchPolicy: "network-only" },
);
const frameworks =
data?.organization?.frameworks?.edges
?.map((edge) => edge.node)
.filter((node): node is NonNullable<typeof node> => node !== null) ?? [];
return (
<Controller

View File

@@ -1,172 +0,0 @@
/**
* @generated SignedSource<<e7f7a5781f356aaba7ec0ff1a60b43b6>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type CreateAuditDialogFrameworksQuery$variables = {
organizationId: string;
};
export type CreateAuditDialogFrameworksQuery$data = {
readonly organization: {
readonly frameworks?: {
readonly edges: ReadonlyArray<{
readonly node: {
readonly id: string;
readonly name: string;
};
}>;
};
};
};
export type CreateAuditDialogFrameworksQuery = {
response: CreateAuditDialogFrameworksQuery$data;
variables: CreateAuditDialogFrameworksQuery$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "organizationId"
}
],
v1 = [
{
"kind": "Variable",
"name": "id",
"variableName": "organizationId"
}
],
v2 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
v3 = {
"kind": "InlineFragment",
"selections": [
{
"alias": null,
"args": [
{
"kind": "Literal",
"name": "first",
"value": 100
}
],
"concreteType": "FrameworkConnection",
"kind": "LinkedField",
"name": "frameworks",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "FrameworkEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Framework",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v2/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "name",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": "frameworks(first:100)"
}
],
"type": "Organization",
"abstractKey": null
};
return {
"fragment": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Fragment",
"metadata": null,
"name": "CreateAuditDialogFrameworksQuery",
"selections": [
{
"alias": "organization",
"args": (v1/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v3/*: any*/)
],
"storageKey": null
}
],
"type": "Query",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "CreateAuditDialogFrameworksQuery",
"selections": [
{
"alias": "organization",
"args": (v1/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
},
(v3/*: any*/),
(v2/*: any*/)
],
"storageKey": null
}
]
},
"params": {
"cacheID": "3b61e88adc92ac47ea6b5810a8d13f18",
"id": null,
"metadata": {},
"name": "CreateAuditDialogFrameworksQuery",
"operationKind": "query",
"text": "query CreateAuditDialogFrameworksQuery(\n $organizationId: ID!\n) {\n organization: node(id: $organizationId) {\n __typename\n ... on Organization {\n frameworks(first: 100) {\n edges {\n node {\n id\n name\n }\n }\n }\n }\n id\n }\n}\n"
}
};
})();
(node as any).hash = "ce9f84bb4e6e1e657cdf54bf8a3b4faa";
export default node;

View File

@@ -32,9 +32,14 @@ import { useFormWithSchema } from "/hooks/useFormWithSchema";
import { Controller } from "react-hook-form";
import { formatError, type GraphQLError } from "@probo/helpers";
import z from "zod";
import { getStatusVariant, getStatusLabel, formatDatetime, validateSnapshotConsistency } from "@probo/helpers";
import {
getStatusVariant,
getStatusLabel,
formatDatetime,
validateSnapshotConsistency,
} from "@probo/helpers";
import { SnapshotBanner } from "/components/SnapshotBanner";
import type { ContinualImprovementGraphNodeQuery } from "/hooks/graph/__generated__/ContinualImprovementGraphNodeQuery.graphql";
import type { ContinualImprovementGraphNodeQuery } from "/__generated__/core/ContinualImprovementGraphNodeQuery.graphql";
import { use } from "react";
import { PermissionsContext } from "/providers/PermissionsContext";
@@ -53,7 +58,10 @@ type Props = {
};
export default function ContinualImprovementDetailsPage(props: Props) {
const data = usePreloadedQuery<ContinualImprovementGraphNodeQuery>(continualImprovementNodeQuery, props.queryRef);
const data = usePreloadedQuery<ContinualImprovementGraphNodeQuery>(
continualImprovementNodeQuery,
props.queryRef,
);
const improvement = data.node;
const { __ } = useTranslate();
const { toast } = useToast();
@@ -69,10 +77,13 @@ export default function ContinualImprovementDetailsPage(props: Props) {
const connectionId = ConnectionHandler.getConnectionID(
organizationId,
ContinualImprovementsConnectionKey,
{ filter: { snapshotId: snapshotId || null } }
{ filter: { snapshotId: snapshotId || null } },
);
const deleteImprovement = useDeleteContinualImprovement({ id: improvement.id!, referenceId: improvement.referenceId! }, connectionId);
const deleteImprovement = useDeleteContinualImprovement(
{ id: improvement.id!, referenceId: improvement.referenceId! },
connectionId,
);
const { register, handleSubmit, formState, control } = useFormWithSchema(
updateImprovementSchema,
@@ -88,7 +99,7 @@ export default function ContinualImprovementDetailsPage(props: Props) {
priority: improvement.priority || "MEDIUM",
ownerId: improvement.owner?.id || "",
},
}
},
);
const onSubmit = handleSubmit(async (formData) => {
@@ -102,7 +113,6 @@ export default function ContinualImprovementDetailsPage(props: Props) {
status: formData.status,
priority: formData.priority,
ownerId: formData.ownerId,
});
toast({
@@ -113,7 +123,10 @@ export default function ContinualImprovementDetailsPage(props: Props) {
} catch (error) {
toast({
title: __("Error"),
description: formatError(__("Failed to update continual improvement"), error as GraphQLError),
description: formatError(
__("Failed to update continual improvement"),
error as GraphQLError,
),
variant: "error",
});
}
@@ -143,19 +156,24 @@ export default function ContinualImprovementDetailsPage(props: Props) {
<div className="flex items-center justify-between">
<Breadcrumb
items={[
{ label: __("Continual Improvements"), to: breadcrumbImprovementsUrl },
{
label: __("Continual Improvements"),
to: breadcrumbImprovementsUrl,
},
{ label: improvement.referenceId! },
]}
/>
{!isSnapshotMode && (
isAuthorized("ContinualImprovement", "deleteContinualImprovement") && (
{!isSnapshotMode &&
isAuthorized(
"ContinualImprovement",
"deleteContinualImprovement",
) && (
<ActionDropdown>
<DropdownItem onClick={deleteImprovement} variant="danger">
{__("Delete")}
</DropdownItem>
</ActionDropdown>
)
)}
)}
</div>
<Card>
@@ -166,8 +184,20 @@ export default function ContinualImprovementDetailsPage(props: Props) {
<Badge variant={getStatusVariant(improvement.status || "OPEN")}>
{getStatusLabel(improvement.status || "OPEN")}
</Badge>
<Badge variant={improvement.priority === "HIGH" ? "danger" : improvement.priority === "MEDIUM" ? "warning" : "success"}>
{improvement.priority === "HIGH" ? __("High") : improvement.priority === "MEDIUM" ? __("Medium") : __("Low")}
<Badge
variant={
improvement.priority === "HIGH"
? "danger"
: improvement.priority === "MEDIUM"
? "warning"
: "success"
}
>
{improvement.priority === "HIGH"
? __("High")
: improvement.priority === "MEDIUM"
? __("Medium")
: __("Low")}
</Badge>
</div>
</div>
@@ -181,8 +211,6 @@ export default function ContinualImprovementDetailsPage(props: Props) {
required
/>
<div>
<Label>{__("Description")}</Label>
<Textarea
@@ -287,13 +315,18 @@ export default function ContinualImprovementDetailsPage(props: Props) {
{!isSnapshotMode && (
<div className="flex justify-end pt-4">
{isAuthorized("ContinualImprovement", "updateContinualImprovement") && (
{isAuthorized(
"ContinualImprovement",
"updateContinualImprovement",
) && (
<Button
type="submit"
variant="primary"
disabled={formState.isSubmitting}
>
{formState.isSubmitting ? __("Saving...") : __("Save Changes")}
{formState.isSubmitting
? __("Saving...")
: __("Save Changes")}
</Button>
)}
</div>

View File

@@ -28,17 +28,27 @@ import {
import { useOrganizationId } from "/hooks/useOrganizationId";
import { useParams } from "react-router";
import { CreateContinualImprovementDialog } from "./dialogs/CreateContinualImprovementDialog";
import { deleteContinualImprovementMutation, ContinualImprovementsConnectionKey, continualImprovementsQuery } from "../../../hooks/graph/ContinualImprovementGraph";
import { sprintf, promisifyMutation, getStatusVariant, getStatusLabel, formatDate } from "@probo/helpers";
import {
deleteContinualImprovementMutation,
ContinualImprovementsConnectionKey,
continualImprovementsQuery,
} from "../../../hooks/graph/ContinualImprovementGraph";
import {
sprintf,
promisifyMutation,
getStatusVariant,
getStatusLabel,
formatDate,
} from "@probo/helpers";
import { SnapshotBanner } from "/components/SnapshotBanner";
import type { NodeOf } from "/types";
import type {
ContinualImprovementsPageFragment$key,
ContinualImprovementsPageFragment$data,
} from "./__generated__/ContinualImprovementsPageFragment.graphql";
} from "/__generated__/core/ContinualImprovementsPageFragment.graphql";
import { use } from "react";
import { PermissionsContext } from "/providers/PermissionsContext";
import type { ContinualImprovementGraphListQuery } from "/hooks/graph/__generated__/ContinualImprovementGraphListQuery.graphql";
import type { ContinualImprovementGraphListQuery } from "/__generated__/core/ContinualImprovementGraphListQuery.graphql";
interface ContinualImprovementsPageProps {
queryRef: PreloadedQuery<ContinualImprovementGraphListQuery>;
@@ -58,7 +68,10 @@ const continualImprovementsPageFragment = graphql`
after: $after
filter: { snapshotId: $snapshotId }
)
@connection(key: "ContinualImprovementsPage_continualImprovements", filters: ["filter"]) {
@connection(
key: "ContinualImprovementsPage_continualImprovements"
filters: ["filter"]
) {
__id
totalCount
edges {
@@ -88,7 +101,9 @@ const continualImprovementsPageFragment = graphql`
}
`;
export default function ContinualImprovementsPage({ queryRef }: ContinualImprovementsPageProps) {
export default function ContinualImprovementsPage({
queryRef,
}: ContinualImprovementsPageProps) {
const { __ } = useTranslate();
const organizationId = useOrganizationId();
const { snapshotId } = useParams<{ snapshotId?: string }>();
@@ -97,17 +112,9 @@ export default function ContinualImprovementsPage({ queryRef }: ContinualImprove
usePageTitle(__("Continual Improvements"));
const organization = usePreloadedQuery(
continualImprovementsQuery,
queryRef
);
const organization = usePreloadedQuery(continualImprovementsQuery, queryRef);
const {
data,
loadNext,
hasNext,
isLoadingNext,
} = usePaginationFragment<
const { data, loadNext, hasNext, isLoadingNext } = usePaginationFragment<
ContinualImprovementGraphListQuery,
ContinualImprovementsPageFragment$key
>(continualImprovementsPageFragment, organization.node);
@@ -115,22 +122,26 @@ export default function ContinualImprovementsPage({ queryRef }: ContinualImprove
const connectionId = ConnectionHandler.getConnectionID(
organizationId,
ContinualImprovementsConnectionKey,
{ filter: { snapshotId: snapshotId || null } }
{ filter: { snapshotId: snapshotId || null } },
);
const improvements = data?.continualImprovements?.edges?.map((edge) => edge.node) ?? [];
const improvements =
data?.continualImprovements?.edges?.map((edge) => edge.node) ?? [];
const hasAnyAction = !isSnapshotMode && (
isAuthorized("ContinualImprovement", "updateContinualImprovement") ||
isAuthorized("ContinualImprovement", "deleteContinualImprovement")
);
const hasAnyAction =
!isSnapshotMode &&
(isAuthorized("ContinualImprovement", "updateContinualImprovement") ||
isAuthorized("ContinualImprovement", "deleteContinualImprovement"));
return (
<div className="space-y-6">
{isSnapshotMode && snapshotId && (
<SnapshotBanner snapshotId={snapshotId} />
)}
<PageHeader title={__("Continual Improvements")} description={__("Manage your continual improvements.")}>
{!isSnapshotMode && (
<PageHeader
title={__("Continual Improvements")}
description={__("Manage your continual improvements.")}
>
{!isSnapshotMode &&
isAuthorized("Organization", "createContinualImprovement") && (
<CreateContinualImprovementDialog
organizationId={organizationId}
@@ -140,8 +151,7 @@ export default function ContinualImprovementsPage({ queryRef }: ContinualImprove
{__("Add continual improvement")}
</Button>
</CreateContinualImprovementDialog>
)
)}
)}
</PageHeader>
{improvements.length > 0 ? (
@@ -205,7 +215,9 @@ function ImprovementRow({
snapshotId,
hasAnyAction,
}: {
improvement: NodeOf<NonNullable<ContinualImprovementsPageFragment$data['continualImprovements']>>;
improvement: NodeOf<
NonNullable<ContinualImprovementsPageFragment$data["continualImprovements"]>
>;
connectionId: string;
snapshotId?: string;
hasAnyAction: boolean;
@@ -217,7 +229,6 @@ function ImprovementRow({
const isSnapshotMode = Boolean(snapshotId);
const { isAuthorized } = use(PermissionsContext);
const handleDelete = () => {
confirm(
() =>
@@ -232,11 +243,11 @@ function ImprovementRow({
{
message: sprintf(
__(
"This will permanently delete the continual improvement entry %s. This action cannot be undone."
"This will permanently delete the continual improvement entry %s. This action cannot be undone.",
),
improvement.referenceId
improvement.referenceId,
),
}
},
);
};
@@ -256,8 +267,20 @@ function ImprovementRow({
</Badge>
</Td>
<Td>
<Badge variant={improvement.priority === "HIGH" ? "danger" : improvement.priority === "MEDIUM" ? "warning" : "success"}>
{improvement.priority === "HIGH" ? __("High") : improvement.priority === "MEDIUM" ? __("Medium") : __("Low")}
<Badge
variant={
improvement.priority === "HIGH"
? "danger"
: improvement.priority === "MEDIUM"
? "warning"
: "success"
}
>
{improvement.priority === "HIGH"
? __("High")
: improvement.priority === "MEDIUM"
? __("Medium")
: __("Low")}
</Badge>
</Td>
<Td>{improvement.owner?.fullName || "-"}</Td>
@@ -273,7 +296,10 @@ function ImprovementRow({
{hasAnyAction && (
<Td noLink width={50} className="text-end">
<ActionDropdown>
{isAuthorized("ContinualImprovement", "deleteContinualImprovement") && (
{isAuthorized(
"ContinualImprovement",
"deleteContinualImprovement",
) && (
<DropdownItem
icon={IconTrashCan}
variant="danger"

View File

@@ -1,315 +0,0 @@
/**
* @generated SignedSource<<3065b6b41135aa2dcbb45cdafae94503>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
export type ContinualImprovementPriority = "HIGH" | "LOW" | "MEDIUM";
export type ContinualImprovementStatus = "CLOSED" | "IN_PROGRESS" | "OPEN";
import { FragmentRefs } from "relay-runtime";
export type ContinualImprovementsPageFragment$data = {
readonly continualImprovements: {
readonly __id: string;
readonly edges: ReadonlyArray<{
readonly node: {
readonly createdAt: any;
readonly description: string | null | undefined;
readonly id: string;
readonly owner: {
readonly fullName: string;
readonly id: string;
};
readonly priority: ContinualImprovementPriority;
readonly referenceId: string;
readonly snapshotId: string | null | undefined;
readonly source: string | null | undefined;
readonly sourceId: string | null | undefined;
readonly status: ContinualImprovementStatus;
readonly targetDate: any | null | undefined;
readonly updatedAt: any;
};
}>;
readonly pageInfo: {
readonly endCursor: any | null | undefined;
readonly hasNextPage: boolean;
};
readonly totalCount: number;
};
readonly id: string;
readonly " $fragmentType": "ContinualImprovementsPageFragment";
};
export type ContinualImprovementsPageFragment$key = {
readonly " $data"?: ContinualImprovementsPageFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"ContinualImprovementsPageFragment">;
};
import ContinualImprovementsPageRefetchQuery_graphql from './ContinualImprovementsPageRefetchQuery.graphql';
const node: ReaderFragment = (function(){
var v0 = [
"continualImprovements"
],
v1 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
};
return {
"argumentDefinitions": [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "after"
},
{
"defaultValue": 10,
"kind": "LocalArgument",
"name": "first"
},
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "snapshotId"
}
],
"kind": "Fragment",
"metadata": {
"connection": [
{
"count": "first",
"cursor": "after",
"direction": "forward",
"path": (v0/*: any*/)
}
],
"refetch": {
"connection": {
"forward": {
"count": "first",
"cursor": "after"
},
"backward": null,
"path": (v0/*: any*/)
},
"fragmentPathInResult": [
"node"
],
"operation": ContinualImprovementsPageRefetchQuery_graphql,
"identifierInfo": {
"identifierField": "id",
"identifierQueryVariableName": "id"
}
}
},
"name": "ContinualImprovementsPageFragment",
"selections": [
(v1/*: any*/),
{
"alias": "continualImprovements",
"args": [
{
"fields": [
{
"kind": "Variable",
"name": "snapshotId",
"variableName": "snapshotId"
}
],
"kind": "ObjectValue",
"name": "filter"
}
],
"concreteType": "ContinualImprovementConnection",
"kind": "LinkedField",
"name": "__ContinualImprovementsPage_continualImprovements_connection",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "totalCount",
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "ContinualImprovementEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "ContinualImprovement",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v1/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "snapshotId",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "sourceId",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "referenceId",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "description",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "source",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "targetDate",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "status",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "priority",
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "People",
"kind": "LinkedField",
"name": "owner",
"plural": false,
"selections": [
(v1/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "fullName",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "createdAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "updatedAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "cursor",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "PageInfo",
"kind": "LinkedField",
"name": "pageInfo",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasNextPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "endCursor",
"storageKey": null
}
],
"storageKey": null
},
{
"kind": "ClientExtension",
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__id",
"storageKey": null
}
]
}
],
"storageKey": null
}
],
"type": "Organization",
"abstractKey": null
};
})();
(node as any).hash = "44e30d3febc79c6df7236567d85e9ca8";
export default node;

View File

@@ -1,365 +0,0 @@
/**
* @generated SignedSource<<908fcf894c6d8a46a122991d388a4cb7>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type ContinualImprovementsPageRefetchQuery$variables = {
after?: any | null | undefined;
first?: number | null | undefined;
id: string;
snapshotId?: string | null | undefined;
};
export type ContinualImprovementsPageRefetchQuery$data = {
readonly node: {
readonly " $fragmentSpreads": FragmentRefs<"ContinualImprovementsPageFragment">;
};
};
export type ContinualImprovementsPageRefetchQuery = {
response: ContinualImprovementsPageRefetchQuery$data;
variables: ContinualImprovementsPageRefetchQuery$variables;
};
const node: ConcreteRequest = (function(){
var v0 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "after"
},
v1 = {
"defaultValue": 10,
"kind": "LocalArgument",
"name": "first"
},
v2 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "id"
},
v3 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "snapshotId"
},
v4 = [
{
"kind": "Variable",
"name": "id",
"variableName": "id"
}
],
v5 = {
"kind": "Variable",
"name": "after",
"variableName": "after"
},
v6 = {
"kind": "Variable",
"name": "first",
"variableName": "first"
},
v7 = {
"kind": "Variable",
"name": "snapshotId",
"variableName": "snapshotId"
},
v8 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
},
v9 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
v10 = [
(v5/*: any*/),
{
"fields": [
(v7/*: any*/)
],
"kind": "ObjectValue",
"name": "filter"
},
(v6/*: any*/)
];
return {
"fragment": {
"argumentDefinitions": [
(v0/*: any*/),
(v1/*: any*/),
(v2/*: any*/),
(v3/*: any*/)
],
"kind": "Fragment",
"metadata": null,
"name": "ContinualImprovementsPageRefetchQuery",
"selections": [
{
"alias": null,
"args": (v4/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
{
"args": [
(v5/*: any*/),
(v6/*: any*/),
(v7/*: any*/)
],
"kind": "FragmentSpread",
"name": "ContinualImprovementsPageFragment"
}
],
"storageKey": null
}
],
"type": "Query",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": [
(v0/*: any*/),
(v1/*: any*/),
(v3/*: any*/),
(v2/*: any*/)
],
"kind": "Operation",
"name": "ContinualImprovementsPageRefetchQuery",
"selections": [
{
"alias": null,
"args": (v4/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v8/*: any*/),
(v9/*: any*/),
{
"kind": "InlineFragment",
"selections": [
{
"alias": null,
"args": (v10/*: any*/),
"concreteType": "ContinualImprovementConnection",
"kind": "LinkedField",
"name": "continualImprovements",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "totalCount",
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "ContinualImprovementEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "ContinualImprovement",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v9/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "snapshotId",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "sourceId",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "referenceId",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "description",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "source",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "targetDate",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "status",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "priority",
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "People",
"kind": "LinkedField",
"name": "owner",
"plural": false,
"selections": [
(v9/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "fullName",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "createdAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "updatedAt",
"storageKey": null
},
(v8/*: any*/)
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "cursor",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "PageInfo",
"kind": "LinkedField",
"name": "pageInfo",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasNextPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "endCursor",
"storageKey": null
}
],
"storageKey": null
},
{
"kind": "ClientExtension",
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__id",
"storageKey": null
}
]
}
],
"storageKey": null
},
{
"alias": null,
"args": (v10/*: any*/),
"filters": [
"filter"
],
"handle": "connection",
"key": "ContinualImprovementsPage_continualImprovements",
"kind": "LinkedHandle",
"name": "continualImprovements"
}
],
"type": "Organization",
"abstractKey": null
}
],
"storageKey": null
}
]
},
"params": {
"cacheID": "277ed3aedb8b99e9ec291997ba0d0943",
"id": null,
"metadata": {},
"name": "ContinualImprovementsPageRefetchQuery",
"operationKind": "query",
"text": "query ContinualImprovementsPageRefetchQuery(\n $after: CursorKey\n $first: Int = 10\n $snapshotId: ID = null\n $id: ID!\n) {\n node(id: $id) {\n __typename\n ...ContinualImprovementsPageFragment_35e0S5\n id\n }\n}\n\nfragment ContinualImprovementsPageFragment_35e0S5 on Organization {\n id\n continualImprovements(first: $first, after: $after, filter: {snapshotId: $snapshotId}) {\n totalCount\n edges {\n node {\n id\n snapshotId\n sourceId\n referenceId\n description\n source\n targetDate\n status\n priority\n owner {\n id\n fullName\n }\n createdAt\n updatedAt\n __typename\n }\n cursor\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n}\n"
}
};
})();
(node as any).hash = "44e30d3febc79c6df7236567d85e9ca8";
export default node;

View File

@@ -25,14 +25,14 @@ import { useParams } from "react-router";
import { useOrganizationId } from "/hooks/useOrganizationId";
import { CreateDatumDialog } from "./dialogs/CreateDatumDialog";
import { useDeleteDatum, dataQuery } from "../../../hooks/graph/DatumGraph";
import type { DatumGraphListQuery } from "/hooks/graph/__generated__/DatumGraphListQuery.graphql";
import type { DatumGraphListQuery } from "/__generated__/core/DatumGraphListQuery.graphql";
import { faviconUrl } from "@probo/helpers";
import type { NodeOf } from "/types";
import type {
DataPageFragment$key,
DataPageFragment$data
} from "./__generated__/DataPageFragment.graphql";
import type { DataListQuery } from "./__generated__/DataListQuery.graphql";
DataPageFragment$data,
} from "/__generated__/core/DataPageFragment.graphql";
import type { DataListQuery } from "/__generated__/core/DataListQuery.graphql";
import { SortableTable } from "/components/SortableTable";
import { SnapshotBanner } from "/components/SnapshotBanner";
import { use } from "react";
@@ -97,35 +97,39 @@ export default function DataPage(props: Props) {
const queryData = usePreloadedQuery<DatumGraphListQuery>(
dataQuery,
props.queryRef
props.queryRef,
);
const data = queryData.node;
const pagination = usePaginationFragment<DataListQuery, DataPageFragment$key>(
paginatedDataFragment,
data
data,
);
const dataEntries = pagination.data.data.edges.map((edge) => edge.node);
const connectionId = pagination.data.data.__id;
const refetch = ({ order }: { order: { direction: string; field: string } }) => {
const refetch = ({
order,
}: {
order: { direction: string; field: string };
}) => {
pagination.refetch({
snapshotId,
order: {
direction: order.direction as "ASC" | "DESC",
field: order.field as "CREATED_AT" | "DATA_CLASSIFICATION" | "NAME"
}
field: order.field as "CREATED_AT" | "DATA_CLASSIFICATION" | "NAME",
},
});
};
usePageTitle(__("Data"));
const hasAnyAction = !isSnapshotMode && (
isAuthorized("Datum", "updateDatum") ||
isAuthorized("Datum", "deleteDatum")
);
const hasAnyAction =
!isSnapshotMode &&
(isAuthorized("Datum", "updateDatum") ||
isAuthorized("Datum", "deleteDatum"));
return (
<div className="space-y-6">
@@ -135,26 +139,20 @@ export default function DataPage(props: Props) {
<PageHeader
title={__("Data")}
description={__(
"Manage your organization's data assets and their classifications."
"Manage your organization's data assets and their classifications.",
)}
>
{!snapshotId && (
isAuthorized("Organization", "createDatum") && (
<CreateDatumDialog
connection={connectionId}
organizationId={organizationId}
onCreated={() => pagination.refetch({ snapshotId })}
>
<Button icon={IconPlusLarge}>{__("Add data")}</Button>
</CreateDatumDialog>
)
{!snapshotId && isAuthorized("Organization", "createDatum") && (
<CreateDatumDialog
connection={connectionId}
organizationId={organizationId}
onCreated={() => pagination.refetch({ snapshotId })}
>
<Button icon={IconPlusLarge}>{__("Add data")}</Button>
</CreateDatumDialog>
)}
</PageHeader>
<SortableTable
{...pagination}
refetch={refetch}
pageSize={10}
>
<SortableTable {...pagination} refetch={refetch} pageSize={10}>
<Thead>
<Tr>
<Th>{__("Name")}</Th>
@@ -166,7 +164,13 @@ export default function DataPage(props: Props) {
</Thead>
<Tbody>
{dataEntries.map((entry) => (
<DataRow key={entry.id} entry={entry} connectionId={connectionId} snapshotId={snapshotId} hasAnyAction={hasAnyAction} />
<DataRow
key={entry.id}
entry={entry}
connectionId={connectionId}
snapshotId={snapshotId}
hasAnyAction={hasAnyAction}
/>
))}
</Tbody>
</SortableTable>

View File

@@ -28,7 +28,7 @@ import { useFormWithSchema } from "/hooks/useFormWithSchema";
import z from "zod";
import { SnapshotBanner } from "/components/SnapshotBanner";
import { validateSnapshotConsistency } from "@probo/helpers";
import type { DatumGraphNodeQuery } from "/hooks/graph/__generated__/DatumGraphNodeQuery.graphql";
import type { DatumGraphNodeQuery } from "/__generated__/core/DatumGraphNodeQuery.graphql";
import { use } from "react";
import { PermissionsContext } from "/providers/PermissionsContext";
@@ -49,7 +49,7 @@ export default function DatumDetailsPage(props: Props) {
const queryData = usePreloadedQuery<DatumGraphNodeQuery>(
datumNodeQuery,
props.queryRef
props.queryRef,
);
const datumEntry = queryData.node;
@@ -62,15 +62,13 @@ export default function DatumDetailsPage(props: Props) {
const deleteDatum = useDeleteDatum(
datumEntry,
ConnectionHandler.getConnectionID(
organizationId,
"DataPage_data",
{ filter: { snapshotId: snapshotId || null } }
),
ConnectionHandler.getConnectionID(organizationId, "DataPage_data", {
filter: { snapshotId: snapshotId || null },
}),
);
const vendors = datumEntry?.vendors?.edges.map(edge => edge.node) ?? [];
const vendorIds = vendors.map(vendor => vendor.id);
const vendors = datumEntry?.vendors?.edges.map((edge) => edge.node) ?? [];
const vendorIds = vendors.map((vendor) => vendor.id);
const { control, formState, handleSubmit, register, reset } =
useFormWithSchema(updateDatumSchema, {
@@ -126,18 +124,16 @@ export default function DatumDetailsPage(props: Props) {
<div className="text-2xl">{datumEntry?.name}</div>
<Badge variant="info">{datumEntry?.dataClassification}</Badge>
</div>
{!isSnapshotMode && (
isAuthorized("Datum", "deleteDatum") && (
<ActionDropdown variant="secondary">
<DropdownItem
variant="danger"
icon={IconTrashCan}
onClick={deleteDatum}
>
{__("Delete")}
</DropdownItem>
</ActionDropdown>
)
{!isSnapshotMode && isAuthorized("Datum", "deleteDatum") && (
<ActionDropdown variant="secondary">
<DropdownItem
variant="danger"
icon={IconTrashCan}
onClick={deleteDatum}
>
{__("Delete")}
</DropdownItem>
</ActionDropdown>
)}
</div>
@@ -181,12 +177,10 @@ export default function DatumDetailsPage(props: Props) {
{!isSnapshotMode && (
<div className="flex justify-end">
{formState.isDirty && (
isAuthorized("Datum", "updateDatum") && (
<Button type="submit" disabled={formState.isSubmitting}>
{formState.isSubmitting ? __("Updating...") : __("Update")}
</Button>
)
{formState.isDirty && isAuthorized("Datum", "updateDatum") && (
<Button type="submit" disabled={formState.isSubmitting}>
{formState.isSubmitting ? __("Updating...") : __("Update")}
</Button>
)}
</div>
)}

View File

@@ -1,426 +0,0 @@
/**
* @generated SignedSource<<2000fd2ccfcf4b832c51ff71b0326fef>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type DatumOrderField = "CREATED_AT" | "DATA_CLASSIFICATION" | "NAME";
export type OrderDirection = "ASC" | "DESC";
export type DatumOrder = {
direction: OrderDirection;
field: DatumOrderField;
};
export type DataListQuery$variables = {
after?: any | null | undefined;
before?: any | null | undefined;
first?: number | null | undefined;
id: string;
last?: number | null | undefined;
order?: DatumOrder | null | undefined;
snapshotId?: string | null | undefined;
};
export type DataListQuery$data = {
readonly node: {
readonly " $fragmentSpreads": FragmentRefs<"DataPageFragment">;
};
};
export type DataListQuery = {
response: DataListQuery$data;
variables: DataListQuery$variables;
};
const node: ConcreteRequest = (function(){
var v0 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "after"
},
v1 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "before"
},
v2 = {
"defaultValue": 10,
"kind": "LocalArgument",
"name": "first"
},
v3 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "id"
},
v4 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "last"
},
v5 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "order"
},
v6 = {
"defaultValue": null,
"kind": "LocalArgument",
"name": "snapshotId"
},
v7 = [
{
"kind": "Variable",
"name": "id",
"variableName": "id"
}
],
v8 = {
"kind": "Variable",
"name": "after",
"variableName": "after"
},
v9 = {
"kind": "Variable",
"name": "before",
"variableName": "before"
},
v10 = {
"kind": "Variable",
"name": "first",
"variableName": "first"
},
v11 = {
"kind": "Variable",
"name": "last",
"variableName": "last"
},
v12 = {
"kind": "Variable",
"name": "snapshotId",
"variableName": "snapshotId"
},
v13 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
},
v14 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
v15 = [
(v8/*: any*/),
(v9/*: any*/),
{
"fields": [
(v12/*: any*/)
],
"kind": "ObjectValue",
"name": "filter"
},
(v10/*: any*/),
(v11/*: any*/),
{
"kind": "Variable",
"name": "orderBy",
"variableName": "order"
}
],
v16 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "name",
"storageKey": null
};
return {
"fragment": {
"argumentDefinitions": [
(v0/*: any*/),
(v1/*: any*/),
(v2/*: any*/),
(v3/*: any*/),
(v4/*: any*/),
(v5/*: any*/),
(v6/*: any*/)
],
"kind": "Fragment",
"metadata": null,
"name": "DataListQuery",
"selections": [
{
"alias": null,
"args": (v7/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
{
"args": [
(v8/*: any*/),
(v9/*: any*/),
(v10/*: any*/),
(v11/*: any*/),
{
"kind": "Variable",
"name": "order",
"variableName": "order"
},
(v12/*: any*/)
],
"kind": "FragmentSpread",
"name": "DataPageFragment"
}
],
"storageKey": null
}
],
"type": "Query",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": [
(v0/*: any*/),
(v1/*: any*/),
(v2/*: any*/),
(v4/*: any*/),
(v5/*: any*/),
(v6/*: any*/),
(v3/*: any*/)
],
"kind": "Operation",
"name": "DataListQuery",
"selections": [
{
"alias": null,
"args": (v7/*: any*/),
"concreteType": null,
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v13/*: any*/),
(v14/*: any*/),
{
"kind": "InlineFragment",
"selections": [
{
"alias": null,
"args": (v15/*: any*/),
"concreteType": "DatumConnection",
"kind": "LinkedField",
"name": "data",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "DatumEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Datum",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v14/*: any*/),
(v16/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "dataClassification",
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "People",
"kind": "LinkedField",
"name": "owner",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "fullName",
"storageKey": null
},
(v14/*: any*/)
],
"storageKey": null
},
{
"alias": null,
"args": [
{
"kind": "Literal",
"name": "first",
"value": 50
}
],
"concreteType": "VendorConnection",
"kind": "LinkedField",
"name": "vendors",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "VendorEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Vendor",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v14/*: any*/),
(v16/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "websiteUrl",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": "vendors(first:50)"
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "createdAt",
"storageKey": null
},
(v13/*: any*/)
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "cursor",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "PageInfo",
"kind": "LinkedField",
"name": "pageInfo",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "endCursor",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasNextPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasPreviousPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "startCursor",
"storageKey": null
}
],
"storageKey": null
},
{
"kind": "ClientExtension",
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__id",
"storageKey": null
}
]
}
],
"storageKey": null
},
{
"alias": null,
"args": (v15/*: any*/),
"filters": [
"filter"
],
"handle": "connection",
"key": "DataPage_data",
"kind": "LinkedHandle",
"name": "data"
}
],
"type": "Organization",
"abstractKey": null
}
],
"storageKey": null
}
]
},
"params": {
"cacheID": "dbca2ff147e8b1e367a266fcf016b184",
"id": null,
"metadata": {},
"name": "DataListQuery",
"operationKind": "query",
"text": "query DataListQuery(\n $after: CursorKey = null\n $before: CursorKey = null\n $first: Int = 10\n $last: Int = null\n $order: DatumOrder = null\n $snapshotId: ID = null\n $id: ID!\n) {\n node(id: $id) {\n __typename\n ...DataPageFragment_25MC8O\n id\n }\n}\n\nfragment DataPageFragment_25MC8O on Organization {\n data(first: $first, after: $after, last: $last, before: $before, orderBy: $order, filter: {snapshotId: $snapshotId}) {\n edges {\n node {\n id\n name\n dataClassification\n owner {\n fullName\n id\n }\n vendors(first: 50) {\n edges {\n node {\n id\n name\n websiteUrl\n }\n }\n }\n createdAt\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n hasPreviousPage\n startCursor\n }\n }\n id\n}\n"
}
};
})();
(node as any).hash = "5d3069a0d856613ccb854033b5b1f14e";
export default node;

View File

@@ -1,334 +0,0 @@
/**
* @generated SignedSource<<9619ee8f74aea67be931f8c40a8815c8>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
export type DataClassification = "CONFIDENTIAL" | "INTERNAL" | "PUBLIC" | "SECRET";
import { FragmentRefs } from "relay-runtime";
export type DataPageFragment$data = {
readonly data: {
readonly __id: string;
readonly edges: ReadonlyArray<{
readonly node: {
readonly createdAt: any;
readonly dataClassification: DataClassification;
readonly id: string;
readonly name: string;
readonly owner: {
readonly fullName: string;
};
readonly vendors: {
readonly edges: ReadonlyArray<{
readonly node: {
readonly id: string;
readonly name: string;
readonly websiteUrl: string | null | undefined;
};
}>;
};
};
}>;
};
readonly id: string;
readonly " $fragmentType": "DataPageFragment";
};
export type DataPageFragment$key = {
readonly " $data"?: DataPageFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"DataPageFragment">;
};
import DataListQuery_graphql from './DataListQuery.graphql';
const node: ReaderFragment = (function(){
var v0 = [
"data"
],
v1 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
v2 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "name",
"storageKey": null
};
return {
"argumentDefinitions": [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "after"
},
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "before"
},
{
"defaultValue": 10,
"kind": "LocalArgument",
"name": "first"
},
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "last"
},
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "order"
},
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "snapshotId"
}
],
"kind": "Fragment",
"metadata": {
"connection": [
{
"count": null,
"cursor": null,
"direction": "bidirectional",
"path": (v0/*: any*/)
}
],
"refetch": {
"connection": {
"forward": {
"count": "first",
"cursor": "after"
},
"backward": {
"count": "last",
"cursor": "before"
},
"path": (v0/*: any*/)
},
"fragmentPathInResult": [
"node"
],
"operation": DataListQuery_graphql,
"identifierInfo": {
"identifierField": "id",
"identifierQueryVariableName": "id"
}
}
},
"name": "DataPageFragment",
"selections": [
{
"alias": "data",
"args": [
{
"fields": [
{
"kind": "Variable",
"name": "snapshotId",
"variableName": "snapshotId"
}
],
"kind": "ObjectValue",
"name": "filter"
}
],
"concreteType": "DatumConnection",
"kind": "LinkedField",
"name": "__DataPage_data_connection",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "DatumEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Datum",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v1/*: any*/),
(v2/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "dataClassification",
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "People",
"kind": "LinkedField",
"name": "owner",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "fullName",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": [
{
"kind": "Literal",
"name": "first",
"value": 50
}
],
"concreteType": "VendorConnection",
"kind": "LinkedField",
"name": "vendors",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "VendorEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "Vendor",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v1/*: any*/),
(v2/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "websiteUrl",
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": null
}
],
"storageKey": "vendors(first:50)"
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "createdAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "cursor",
"storageKey": null
}
],
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "PageInfo",
"kind": "LinkedField",
"name": "pageInfo",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "endCursor",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasNextPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasPreviousPage",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "startCursor",
"storageKey": null
}
],
"storageKey": null
},
{
"kind": "ClientExtension",
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__id",
"storageKey": null
}
]
}
],
"storageKey": null
},
(v1/*: any*/)
],
"type": "Organization",
"abstractKey": null
};
})();
(node as any).hash = "5d3069a0d856613ccb854033b5b1f14e";
export default node;

View File

@@ -5,7 +5,7 @@ import {
useFragment,
usePreloadedQuery,
} from "react-relay";
import type { DocumentGraphNodeQuery } from "/hooks/graph/__generated__/DocumentGraphNodeQuery.graphql";
import type { DocumentGraphNodeQuery } from "/__generated__/core/DocumentGraphNodeQuery.graphql";
import {
documentNodeQuery,
useDeleteDocumentMutation,
@@ -15,9 +15,9 @@ import { usePageTitle } from "@probo/hooks";
import type {
DocumentDetailPageDocumentFragment$data,
DocumentDetailPageDocumentFragment$key,
} from "./__generated__/DocumentDetailPageDocumentFragment.graphql";
import type { DocumentDetailPageExportPDFMutation } from "./__generated__/DocumentDetailPageExportPDFMutation.graphql";
import type { DocumentDetailPageUpdateMutation } from "./__generated__/DocumentDetailPageUpdateMutation.graphql";
} from "/__generated__/core/DocumentDetailPageDocumentFragment.graphql";
import type { DocumentDetailPageExportPDFMutation } from "/__generated__/core/DocumentDetailPageExportPDFMutation.graphql";
import type { DocumentDetailPageUpdateMutation } from "/__generated__/core/DocumentDetailPageUpdateMutation.graphql";
import { useTranslate } from "@probo/i18n";
import {
ActionDropdown,
@@ -189,7 +189,7 @@ export default function DocumentDetailPage(props: Props) {
const node = usePreloadedQuery(documentNodeQuery, props.queryRef).node;
const document = useFragment<DocumentDetailPageDocumentFragment$key>(
documentFragment,
node
node,
);
const { __ } = useTranslate();
const organizationId = useOrganizationId();
@@ -212,7 +212,7 @@ export default function DocumentDetailPage(props: Props) {
{
successMessage: __("Document published successfully."),
errorMessage: __("Failed to publish document"),
}
},
);
const [deleteDocument, isDeleting] = useDeleteDocumentMutation();
const [deleteDraftDocumentVersion, isDeletingDraft] =
@@ -223,7 +223,7 @@ export default function DocumentDetailPage(props: Props) {
{
successMessage: __("PDF download started."),
errorMessage: __("Failed to generate PDF"),
}
},
);
// const userEmailData = useLazyLoadQuery<DocumentDetailPageUserEmailQuery>(
@@ -237,7 +237,7 @@ export default function DocumentDetailPage(props: Props) {
{
successMessage: __("Document updated successfully."),
errorMessage: __("Failed to update document"),
}
},
);
const versionConnectionId = document.versions.__id;
@@ -250,7 +250,7 @@ export default function DocumentDetailPage(props: Props) {
documentType: document.documentType,
classification: currentVersion.classification,
},
}
},
);
usePageTitle(document.title);
@@ -299,7 +299,7 @@ export default function DocumentDetailPage(props: Props) {
props.queryRef.environment,
documentNodeQuery,
props.queryRef.variables,
{ fetchPolicy: "network-only" }
{ fetchPolicy: "network-only" },
);
},
});
@@ -321,7 +321,7 @@ export default function DocumentDetailPage(props: Props) {
props.queryRef.environment,
documentNodeQuery,
props.queryRef.variables,
{ fetchPolicy: "network-only" }
{ fetchPolicy: "network-only" },
);
},
});
@@ -355,11 +355,11 @@ export default function DocumentDetailPage(props: Props) {
{
message: sprintf(
__(
'This will permanently delete the document "%s". This action cannot be undone.'
'This will permanently delete the document "%s". This action cannot be undone.',
),
document.title
document.title,
),
}
},
);
};
@@ -377,7 +377,7 @@ export default function DocumentDetailPage(props: Props) {
props.queryRef.environment,
documentNodeQuery,
props.queryRef.variables,
{ fetchPolicy: "network-only" }
{ fetchPolicy: "network-only" },
);
resolve();
@@ -388,12 +388,12 @@ export default function DocumentDetailPage(props: Props) {
{
message: sprintf(
__(
'This will permanently delete the draft version %s of "%s". This action cannot be undone.'
'This will permanently delete the draft version %s of "%s". This action cannot be undone.',
),
currentVersion.version,
document.title
document.title,
),
}
},
);
};
@@ -684,7 +684,7 @@ export default function DocumentDetailPage(props: Props) {
<div className="text-sm text-txt-secondary">
{getDocumentClassificationLabel(
__,
currentVersion.classification
currentVersion.classification,
)}
</div>
</ReadOnlyPropertyContent>
@@ -793,7 +793,7 @@ function VersionItem({
<div
className={clsx(
"flex-shrink-0 flex items-center justify-center size-10",
active && "bg-active rounded"
active && "bg-active rounded",
)}
>
<div className="text-base text-txt-primary whitespace-nowrap font-bold text-center">

View File

@@ -30,7 +30,7 @@ import {
} from "react-relay";
import { use, useRef } from "react";
import { graphql } from "relay-runtime";
import type { DocumentGraphListQuery } from "/hooks/graph/__generated__/DocumentGraphListQuery.graphql";
import type { DocumentGraphListQuery } from "/__generated__/core/DocumentGraphListQuery.graphql";
import {
documentsQuery,
useDeleteDocumentMutation,
@@ -38,7 +38,7 @@ import {
useBulkDeleteDocumentsMutation,
useBulkExportDocumentsMutation,
} from "/hooks/graph/DocumentGraph";
import type { DocumentsPageListFragment$key } from "./__generated__/DocumentsPageListFragment.graphql";
import type { DocumentsPageListFragment$key } from "/__generated__/core/DocumentsPageListFragment.graphql";
import { useList, usePageTitle } from "@probo/hooks";
import {
sprintf,
@@ -47,7 +47,7 @@ import {
formatDate,
} from "@probo/helpers";
import { CreateDocumentDialog } from "./dialogs/CreateDocumentDialog";
import type { DocumentsPageRowFragment$key } from "./__generated__/DocumentsPageRowFragment.graphql";
import type { DocumentsPageRowFragment$key } from "/__generated__/core/DocumentsPageRowFragment.graphql";
import { SortableTable, SortableTh } from "/components/SortableTable";
import { PublishDocumentsDialog } from "./dialogs/PublishDocumentsDialog.tsx";
import { SignatureDocumentsDialog } from "./dialogs/SignatureDocumentsDialog.tsx";
@@ -108,7 +108,7 @@ export default function DocumentsPage(props: Props) {
const organization = usePreloadedQuery(
documentsQuery,
props.queryRef
props.queryRef,
).organization;
// const userEmailData = useLazyLoadQuery<DocumentsPageUserEmailQuery>(
@@ -118,7 +118,7 @@ export default function DocumentsPage(props: Props) {
// const defaultEmail = userEmailData.viewer.user.email;
const pagination = usePaginationFragment(
documentsFragment,
organization as DocumentsPageListFragment$key
organization as DocumentsPageListFragment$key,
);
const documents = pagination.data.documents.edges
@@ -161,12 +161,12 @@ export default function DocumentsPage(props: Props) {
{
message: sprintf(
__(
"This will permanently delete %s document%s. This action cannot be undone."
"This will permanently delete %s document%s. This action cannot be undone.",
),
documentCount,
documentCount > 1 ? "s" : ""
documentCount > 1 ? "s" : "",
),
}
},
);
};
@@ -396,7 +396,7 @@ function DocumentRow({
const { isAuthorized } = use(PermissionsContext);
const document = useFragment<DocumentsPageRowFragment$key>(
rowFragment,
documentKey
documentKey,
);
const lastVersion = document.versions.edges?.[0]?.node;
@@ -414,7 +414,7 @@ function DocumentRow({
lastVersion.signatures?.edges?.map((edge) => edge?.node)?.filter(Boolean) ??
[];
const signedCount = signatures.filter(
(signature) => signature.state === "SIGNED"
(signature) => signature.state === "SIGNED",
).length;
const handleDelete = () => {
@@ -428,11 +428,11 @@ function DocumentRow({
{
message: sprintf(
__(
'This will permanently delete the document "%s". This action cannot be undone.'
'This will permanently delete the document "%s". This action cannot be undone.',
),
document.title
document.title,
),
}
},
);
};

View File

@@ -1,373 +0,0 @@
/**
* @generated SignedSource<<3ba79250c6ba07fa44aca6eff28b3d9d>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
export type DocumentClassification = "CONFIDENTIAL" | "INTERNAL" | "PUBLIC" | "SECRET";
export type DocumentStatus = "DRAFT" | "PUBLISHED";
export type DocumentType = "ISMS" | "OTHER" | "POLICY" | "PROCEDURE";
export type DocumentVersionSignatureState = "REQUESTED" | "SIGNED";
import { FragmentRefs } from "relay-runtime";
export type DocumentDetailPageDocumentFragment$data = {
readonly classification: DocumentClassification;
readonly controlsInfo: {
readonly totalCount: number;
};
readonly documentType: DocumentType;
readonly id: string;
readonly owner: {
readonly fullName: string;
readonly id: string;
};
readonly title: string;
readonly versions: {
readonly __id: string;
readonly edges: ReadonlyArray<{
readonly node: {
readonly classification: DocumentClassification;
readonly content: string;
readonly id: string;
readonly owner: {
readonly fullName: string;
readonly id: string;
};
readonly publishedAt: any | null | undefined;
readonly signatures: {
readonly __id: string;
readonly edges: ReadonlyArray<{
readonly node: {
readonly id: string;
readonly signedBy: {
readonly id: string;
};
readonly state: DocumentVersionSignatureState;
readonly " $fragmentSpreads": FragmentRefs<"DocumentSignaturesTab_signature">;
};
}>;
};
readonly status: DocumentStatus;
readonly updatedAt: any;
readonly version: number;
readonly " $fragmentSpreads": FragmentRefs<"DocumentSignaturesTab_version">;
};
}>;
};
readonly " $fragmentSpreads": FragmentRefs<"DocumentControlsTabFragment">;
readonly " $fragmentType": "DocumentDetailPageDocumentFragment";
};
export type DocumentDetailPageDocumentFragment$key = {
readonly " $data"?: DocumentDetailPageDocumentFragment$data;
readonly " $fragmentSpreads": FragmentRefs<"DocumentDetailPageDocumentFragment">;
};
const node: ReaderFragment = (function(){
var v0 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
v1 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "classification",
"storageKey": null
},
v2 = {
"alias": null,
"args": null,
"concreteType": "People",
"kind": "LinkedField",
"name": "owner",
"plural": false,
"selections": [
(v0/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "fullName",
"storageKey": null
}
],
"storageKey": null
},
v3 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
},
v4 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "cursor",
"storageKey": null
},
v5 = {
"alias": null,
"args": null,
"concreteType": "PageInfo",
"kind": "LinkedField",
"name": "pageInfo",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "endCursor",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "hasNextPage",
"storageKey": null
}
],
"storageKey": null
},
v6 = {
"kind": "ClientExtension",
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__id",
"storageKey": null
}
]
};
return {
"argumentDefinitions": [],
"kind": "Fragment",
"metadata": {
"connection": [
{
"count": null,
"cursor": null,
"direction": "forward",
"path": null
},
{
"count": null,
"cursor": null,
"direction": "forward",
"path": [
"versions"
]
}
]
},
"name": "DocumentDetailPageDocumentFragment",
"selections": [
(v0/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "title",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "documentType",
"storageKey": null
},
(v1/*: any*/),
(v2/*: any*/),
{
"args": null,
"kind": "FragmentSpread",
"name": "DocumentControlsTabFragment"
},
{
"alias": "controlsInfo",
"args": [
{
"kind": "Literal",
"name": "first",
"value": 0
}
],
"concreteType": "ControlConnection",
"kind": "LinkedField",
"name": "controls",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "totalCount",
"storageKey": null
}
],
"storageKey": "controls(first:0)"
},
{
"alias": "versions",
"args": null,
"concreteType": "DocumentVersionConnection",
"kind": "LinkedField",
"name": "__DocumentDetailPage_versions_connection",
"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": [
(v0/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "content",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "status",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "publishedAt",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "version",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "updatedAt",
"storageKey": null
},
(v1/*: any*/),
(v2/*: any*/),
{
"args": null,
"kind": "FragmentSpread",
"name": "DocumentSignaturesTab_version"
},
{
"alias": "signatures",
"args": null,
"concreteType": "DocumentVersionSignatureConnection",
"kind": "LinkedField",
"name": "__DocumentDetailPage_signatures_connection",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "DocumentVersionSignatureEdge",
"kind": "LinkedField",
"name": "edges",
"plural": true,
"selections": [
{
"alias": null,
"args": null,
"concreteType": "DocumentVersionSignature",
"kind": "LinkedField",
"name": "node",
"plural": false,
"selections": [
(v0/*: any*/),
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "state",
"storageKey": null
},
{
"alias": null,
"args": null,
"concreteType": "People",
"kind": "LinkedField",
"name": "signedBy",
"plural": false,
"selections": [
(v0/*: any*/)
],
"storageKey": null
},
{
"args": null,
"kind": "FragmentSpread",
"name": "DocumentSignaturesTab_signature"
},
(v3/*: any*/)
],
"storageKey": null
},
(v4/*: any*/)
],
"storageKey": null
},
(v5/*: any*/),
(v6/*: any*/)
],
"storageKey": null
},
(v3/*: any*/)
],
"storageKey": null
},
(v4/*: any*/)
],
"storageKey": null
},
(v5/*: any*/),
(v6/*: any*/)
],
"storageKey": null
}
],
"type": "Document",
"abstractKey": null
};
})();
(node as any).hash = "e1418d5efeade64db32e9939132c03de";
export default node;

View File

@@ -1,95 +0,0 @@
/**
* @generated SignedSource<<3a082179d9ea9d47824b7ee925418b95>>
* @lightSyntaxTransform
* @nogrep
*/
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
export type ExportDocumentVersionPDFInput = {
documentVersionId: string;
watermarkEmail?: any | null | undefined;
withSignatures: boolean;
withWatermark: boolean;
};
export type DocumentDetailPageExportPDFMutation$variables = {
input: ExportDocumentVersionPDFInput;
};
export type DocumentDetailPageExportPDFMutation$data = {
readonly exportDocumentVersionPDF: {
readonly data: string;
};
};
export type DocumentDetailPageExportPDFMutation = {
response: DocumentDetailPageExportPDFMutation$data;
variables: DocumentDetailPageExportPDFMutation$variables;
};
const node: ConcreteRequest = (function(){
var v0 = [
{
"defaultValue": null,
"kind": "LocalArgument",
"name": "input"
}
],
v1 = [
{
"alias": null,
"args": [
{
"kind": "Variable",
"name": "input",
"variableName": "input"
}
],
"concreteType": "ExportDocumentVersionPDFPayload",
"kind": "LinkedField",
"name": "exportDocumentVersionPDF",
"plural": false,
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "data",
"storageKey": null
}
],
"storageKey": null
}
];
return {
"fragment": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Fragment",
"metadata": null,
"name": "DocumentDetailPageExportPDFMutation",
"selections": (v1/*: any*/),
"type": "Mutation",
"abstractKey": null
},
"kind": "Request",
"operation": {
"argumentDefinitions": (v0/*: any*/),
"kind": "Operation",
"name": "DocumentDetailPageExportPDFMutation",
"selections": (v1/*: any*/)
},
"params": {
"cacheID": "4c17d48a790ff5f1617c7db604766b83",
"id": null,
"metadata": {},
"name": "DocumentDetailPageExportPDFMutation",
"operationKind": "mutation",
"text": "mutation DocumentDetailPageExportPDFMutation(\n $input: ExportDocumentVersionPDFInput!\n) {\n exportDocumentVersionPDF(input: $input) {\n data\n }\n}\n"
}
};
})();
(node as any).hash = "e8854650389c3ebd1020ec278d8be831";
export default node;

Some files were not shown because too many files have changed in this diff Show More