Remove trust center slug config UI

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
This commit is contained in:
Bryan Frimin
2025-10-14 11:46:16 +02:00
parent b490b8e674
commit 09281bce72
11 changed files with 53 additions and 299 deletions

View File

@@ -5,7 +5,6 @@ export const trustCenterByIdQuery = graphql`
node(id: $trustCenterId) {
... on TrustCenter {
id
slug
active
organization {
id

View File

@@ -15,7 +15,6 @@ export const trustCenterQuery = graphql`
trustCenter {
id
active
slug
ndaFileName
ndaFileUrl
createdAt
@@ -69,7 +68,6 @@ export const updateTrustCenterMutation = graphql`
trustCenter {
id
active
slug
updatedAt
}
}

View File

@@ -1,5 +1,5 @@
/**
* @generated SignedSource<<6e43a07222fde7acc3d588bac24a8077>>
* @generated SignedSource<<04ca9566a32dd6c4ec830303d27040b3>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -20,7 +20,6 @@ export type TrustCenterAccessTokenGraphQuery$data = {
readonly id: string;
readonly name: string;
};
readonly slug?: string;
};
};
export type TrustCenterAccessTokenGraphQuery = {
@@ -51,20 +50,13 @@ v2 = {
"storageKey": null
},
v3 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "slug",
"storageKey": null
},
v4 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "active",
"storageKey": null
},
v5 = {
v4 = {
"alias": null,
"args": null,
"concreteType": "Organization",
@@ -103,8 +95,7 @@ return {
"selections": [
(v2/*: any*/),
(v3/*: any*/),
(v4/*: any*/),
(v5/*: any*/)
(v4/*: any*/)
],
"type": "TrustCenter",
"abstractKey": null
@@ -142,8 +133,7 @@ return {
"kind": "InlineFragment",
"selections": [
(v3/*: any*/),
(v4/*: any*/),
(v5/*: any*/)
(v4/*: any*/)
],
"type": "TrustCenter",
"abstractKey": null
@@ -154,16 +144,16 @@ return {
]
},
"params": {
"cacheID": "7d3d891944391d31a722364f8b1f1cbb",
"cacheID": "3149be57889b4ab4716cf9a8cce2ab8c",
"id": null,
"metadata": {},
"name": "TrustCenterAccessTokenGraphQuery",
"operationKind": "query",
"text": "query TrustCenterAccessTokenGraphQuery(\n $trustCenterId: ID!\n) {\n node(id: $trustCenterId) {\n __typename\n ... on TrustCenter {\n id\n slug\n active\n organization {\n id\n name\n }\n }\n id\n }\n}\n"
"text": "query TrustCenterAccessTokenGraphQuery(\n $trustCenterId: ID!\n) {\n node(id: $trustCenterId) {\n __typename\n ... on TrustCenter {\n id\n active\n organization {\n id\n name\n }\n }\n id\n }\n}\n"
}
};
})();
(node as any).hash = "e273d4e8c8b756a5aba5271520df8602";
(node as any).hash = "0eff39cd61d08eeff978f26d88a52edf";
export default node;

View File

@@ -1,5 +1,5 @@
/**
* @generated SignedSource<<8cd42363722a49fe7e843086be0c6b4f>>
* @generated SignedSource<<8e92507c4ea06441e81f19bdcd6d4feb>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -56,7 +56,6 @@ export type TrustCenterGraphQuery$data = {
};
}>;
};
readonly slug: string;
readonly updatedAt: any;
} | null | undefined;
readonly vendors?: {
@@ -164,13 +163,6 @@ v9 = {
"name": "active",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "slug",
"storageKey": null
},
{
"alias": null,
"args": null,
@@ -669,16 +661,16 @@ return {
]
},
"params": {
"cacheID": "5344c186b2f81c2e3e82e2e7398c477a",
"cacheID": "89f1657de6e2c073609a2c69d7b2d747",
"id": null,
"metadata": {},
"name": "TrustCenterGraphQuery",
"operationKind": "query",
"text": "query TrustCenterGraphQuery(\n $organizationId: ID!\n) {\n organization: node(id: $organizationId) {\n __typename\n ... on Organization {\n id\n name\n customDomain {\n id\n domain\n }\n trustCenter {\n id\n active\n slug\n ndaFileName\n ndaFileUrl\n createdAt\n updatedAt\n references(first: 100, orderBy: {field: CREATED_AT, direction: DESC}) {\n edges {\n node {\n id\n name\n description\n websiteUrl\n logoUrl\n createdAt\n updatedAt\n }\n }\n }\n }\n documents(first: 100) {\n edges {\n node {\n id\n ...TrustCenterDocumentsCardFragment\n }\n }\n }\n audits(first: 100) {\n edges {\n node {\n id\n ...TrustCenterAuditsCardFragment\n }\n }\n }\n vendors(first: 100) {\n edges {\n node {\n id\n ...TrustCenterVendorsCardFragment\n }\n }\n }\n }\n id\n }\n}\n\nfragment TrustCenterAuditsCardFragment on Audit {\n id\n name\n framework {\n name\n id\n }\n validFrom\n validUntil\n state\n trustCenterVisibility\n createdAt\n}\n\nfragment TrustCenterDocumentsCardFragment on Document {\n id\n title\n createdAt\n documentType\n trustCenterVisibility\n versions(first: 1) {\n edges {\n node {\n id\n status\n }\n }\n }\n}\n\nfragment TrustCenterVendorsCardFragment on Vendor {\n id\n name\n category\n description\n showOnTrustCenter\n createdAt\n}\n"
"text": "query TrustCenterGraphQuery(\n $organizationId: ID!\n) {\n organization: node(id: $organizationId) {\n __typename\n ... on Organization {\n id\n name\n customDomain {\n id\n domain\n }\n trustCenter {\n id\n active\n ndaFileName\n ndaFileUrl\n createdAt\n updatedAt\n references(first: 100, orderBy: {field: CREATED_AT, direction: DESC}) {\n edges {\n node {\n id\n name\n description\n websiteUrl\n logoUrl\n createdAt\n updatedAt\n }\n }\n }\n }\n documents(first: 100) {\n edges {\n node {\n id\n ...TrustCenterDocumentsCardFragment\n }\n }\n }\n audits(first: 100) {\n edges {\n node {\n id\n ...TrustCenterAuditsCardFragment\n }\n }\n }\n vendors(first: 100) {\n edges {\n node {\n id\n ...TrustCenterVendorsCardFragment\n }\n }\n }\n }\n id\n }\n}\n\nfragment TrustCenterAuditsCardFragment on Audit {\n id\n name\n framework {\n name\n id\n }\n validFrom\n validUntil\n state\n trustCenterVisibility\n createdAt\n}\n\nfragment TrustCenterDocumentsCardFragment on Document {\n id\n title\n createdAt\n documentType\n trustCenterVisibility\n versions(first: 1) {\n edges {\n node {\n id\n status\n }\n }\n }\n}\n\nfragment TrustCenterVendorsCardFragment on Vendor {\n id\n name\n category\n description\n showOnTrustCenter\n createdAt\n}\n"
}
};
})();
(node as any).hash = "e23ad5ad1f1e29900a49be2312244147";
(node as any).hash = "60725f4e10d6e720a09a883430854ada";
export default node;

View File

@@ -1,5 +1,5 @@
/**
* @generated SignedSource<<c257950f58c4b876a6ff7ef6083f005b>>
* @generated SignedSource<<138afd21c62a2f7940b64b40c61e2014>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -11,7 +11,6 @@
import { ConcreteRequest } from 'relay-runtime';
export type UpdateTrustCenterInput = {
active?: boolean | null | undefined;
slug?: string | null | undefined;
trustCenterId: string;
};
export type TrustCenterGraphUpdateMutation$variables = {
@@ -22,7 +21,6 @@ export type TrustCenterGraphUpdateMutation$data = {
readonly trustCenter: {
readonly active: boolean;
readonly id: string;
readonly slug: string;
readonly updatedAt: any;
};
};
@@ -77,13 +75,6 @@ v1 = [
"name": "active",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "slug",
"storageKey": null
},
{
"alias": null,
"args": null,
@@ -116,16 +107,16 @@ return {
"selections": (v1/*: any*/)
},
"params": {
"cacheID": "18e80937923185923d9b427819334337",
"cacheID": "4d56330e76f63430b88de2deac6d73ff",
"id": null,
"metadata": {},
"name": "TrustCenterGraphUpdateMutation",
"operationKind": "mutation",
"text": "mutation TrustCenterGraphUpdateMutation(\n $input: UpdateTrustCenterInput!\n) {\n updateTrustCenter(input: $input) {\n trustCenter {\n id\n active\n slug\n updatedAt\n }\n }\n}\n"
"text": "mutation TrustCenterGraphUpdateMutation(\n $input: UpdateTrustCenterInput!\n) {\n updateTrustCenter(input: $input) {\n trustCenter {\n id\n active\n updatedAt\n }\n }\n}\n"
}
};
})();
(node as any).hash = "988f3baf354e729d6cc9482129040898";
(node as any).hash = "e5db4ea1986315fc8103885fee2ede5b";
export default node;

View File

@@ -5,8 +5,6 @@ import {
Card,
Checkbox,
Dropzone,
Field,
Input,
PageHeader,
Spinner,
useToast,
@@ -38,8 +36,6 @@ export default function TrustCenterPage({ queryRef }: Props) {
const [uploadNDA, isUploadingNDA] = useUploadTrustCenterNDAMutation();
const [deleteNDA, isDeletingNDA] = useDeleteTrustCenterNDAMutation();
const [isActive, setIsActive] = useState(organization.trustCenter?.active || false);
const [slug, setSlug] = useState(organization.trustCenter?.slug || "");
const [isUpdatingSlug, setIsUpdatingSlug] = useState(false);
usePageTitle(__("Trust Center"));
@@ -68,44 +64,6 @@ export default function TrustCenterPage({ queryRef }: Props) {
});
};
const handleSlugUpdate = async () => {
if (!organization.trustCenter?.id) {
toast({
title: __("Error"),
description: __("Trust center not found"),
variant: "error",
});
return;
}
if (!slug.trim()) {
toast({
title: __("Error"),
description: __("Slug cannot be empty"),
variant: "error",
});
return;
}
setIsUpdatingSlug(true);
updateTrustCenter({
variables: {
input: {
trustCenterId: organization.trustCenter.id,
slug: slug.trim(),
},
},
onCompleted: () => {
setIsUpdatingSlug(false);
},
onError: () => {
setIsUpdatingSlug(false);
setSlug(organization.trustCenter?.slug || "");
},
});
};
const handleNDAUpload = async (files: File[]) => {
if (!organization.trustCenter?.id) {
toast({
@@ -233,42 +191,6 @@ export default function TrustCenterPage({ queryRef }: Props) {
)}
</Card>
</div>
<div className="space-y-4">
<div className="flex items-center justify-between">
<h2 className="text-base font-medium">{__("Configuration")}</h2>
{isUpdatingSlug && <Spinner />}
</div>
<Card padded className="space-y-4">
<div className="space-y-2">
<Field
label={__("Slug")}
help={__("The unique identifier for your trust center URL")}
>
<div className="flex items-center space-x-2">
<div className="flex items-center">
<Input
value={slug}
onChange={(e) => setSlug(e.target.value)}
placeholder={__("your-organization")}
className="min-w-[200px]"
/>
</div>
<Button
variant="secondary"
onClick={handleSlugUpdate}
disabled={
isUpdatingSlug ||
!slug.trim() ||
slug === organization.trustCenter?.slug
}
>
{__("Update")}
</Button>
</div>
</Field>
</div>
</Card>
</div>
<div className="space-y-4">
<div className="flex items-center justify-between">