Refactor compliance page access page
Signed-off-by: Émile Ré <emile@getprobo.com>
This commit is contained in:
@@ -1,84 +1,4 @@
|
||||
import { graphql, useLazyLoadQuery, usePaginationFragment } from "react-relay";
|
||||
|
||||
import type {
|
||||
TrustCenterAccessGraph_accesses$data,
|
||||
TrustCenterAccessGraph_accesses$key,
|
||||
} from "#/__generated__/core/TrustCenterAccessGraph_accesses.graphql";
|
||||
import type { TrustCenterAccessGraphQuery } from "#/__generated__/core/TrustCenterAccessGraphQuery.graphql";
|
||||
|
||||
export const trustCenterAccessesPaginationFragment = graphql`
|
||||
fragment TrustCenterAccessGraph_accesses on TrustCenter
|
||||
@refetchable(queryName: "TrustCenterAccessGraphPaginationQuery") {
|
||||
accesses(
|
||||
first: $count
|
||||
after: $cursor
|
||||
orderBy: { field: CREATED_AT, direction: DESC }
|
||||
) @connection(key: "TrustCenterAccessGraph_accesses") {
|
||||
__id
|
||||
pageInfo {
|
||||
hasNextPage
|
||||
hasPreviousPage
|
||||
startCursor
|
||||
endCursor
|
||||
}
|
||||
edges {
|
||||
cursor
|
||||
node {
|
||||
id
|
||||
email
|
||||
name
|
||||
active
|
||||
hasAcceptedNonDisclosureAgreement
|
||||
createdAt
|
||||
pendingRequestCount
|
||||
activeCount
|
||||
canUpdate: permission(action: "core:trust-center-access:update")
|
||||
canDelete: permission(action: "core:trust-center-access:delete")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export const trustCenterAccessesQuery = graphql`
|
||||
query TrustCenterAccessGraphQuery(
|
||||
$trustCenterId: ID!
|
||||
$count: Int!
|
||||
$cursor: CursorKey
|
||||
) {
|
||||
node(id: $trustCenterId) {
|
||||
... on TrustCenter {
|
||||
id
|
||||
...TrustCenterAccessGraph_accesses
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export const createTrustCenterAccessMutation = graphql`
|
||||
mutation TrustCenterAccessGraphCreateMutation(
|
||||
$input: CreateTrustCenterAccessInput!
|
||||
$connections: [ID!]!
|
||||
) {
|
||||
createTrustCenterAccess(input: $input) {
|
||||
trustCenterAccessEdge @prependEdge(connections: $connections) {
|
||||
cursor
|
||||
node {
|
||||
id
|
||||
email
|
||||
name
|
||||
active
|
||||
hasAcceptedNonDisclosureAgreement
|
||||
createdAt
|
||||
pendingRequestCount
|
||||
activeCount
|
||||
canUpdate: permission(action: "core:trust-center-access:update")
|
||||
canDelete: permission(action: "core:trust-center-access:delete")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
import { graphql } from "react-relay";
|
||||
|
||||
export const updateTrustCenterAccessMutation = graphql`
|
||||
mutation TrustCenterAccessGraphUpdateMutation(
|
||||
@@ -100,17 +20,6 @@ export const updateTrustCenterAccessMutation = graphql`
|
||||
}
|
||||
`;
|
||||
|
||||
export const deleteTrustCenterAccessMutation = graphql`
|
||||
mutation TrustCenterAccessGraphDeleteMutation(
|
||||
$input: DeleteTrustCenterAccessInput!
|
||||
$connections: [ID!]!
|
||||
) {
|
||||
deleteTrustCenterAccess(input: $input) {
|
||||
deletedTrustCenterAccessId @deleteEdge(connections: $connections)
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export const loadTrustCenterAccessDocumentAccessesQuery = graphql`
|
||||
query TrustCenterAccessGraphLoadDocumentAccessesQuery($accessId: ID!) {
|
||||
node(id: $accessId) {
|
||||
@@ -151,54 +60,3 @@ export const loadTrustCenterAccessDocumentAccessesQuery = graphql`
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
interface PaginatedData {
|
||||
data: TrustCenterAccessGraph_accesses$data | null;
|
||||
hasNext: boolean;
|
||||
loadMore: () => void;
|
||||
isLoadingNext: boolean;
|
||||
}
|
||||
|
||||
export function useTrustCenterAccesses(trustCenterId: string): PaginatedData {
|
||||
const data = useLazyLoadQuery<TrustCenterAccessGraphQuery>(
|
||||
trustCenterAccessesQuery,
|
||||
{
|
||||
trustCenterId: trustCenterId || "",
|
||||
count: 10,
|
||||
cursor: null,
|
||||
},
|
||||
{ fetchPolicy: "store-and-network" },
|
||||
);
|
||||
|
||||
const trustCenter = data?.node;
|
||||
|
||||
const {
|
||||
data: paginationData,
|
||||
loadNext,
|
||||
hasNext,
|
||||
isLoadingNext,
|
||||
} = usePaginationFragment<
|
||||
TrustCenterAccessGraphQuery,
|
||||
TrustCenterAccessGraph_accesses$key
|
||||
>(trustCenterAccessesPaginationFragment, trustCenter);
|
||||
|
||||
if (!trustCenterId) {
|
||||
return {
|
||||
data: null,
|
||||
hasNext: false,
|
||||
loadMore: () => {},
|
||||
isLoadingNext: false,
|
||||
};
|
||||
}
|
||||
|
||||
const loadMore = () => {
|
||||
loadNext(10);
|
||||
};
|
||||
|
||||
return {
|
||||
data: paginationData,
|
||||
hasNext,
|
||||
loadMore,
|
||||
isLoadingNext,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user