Refactor SOA generation

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
This commit is contained in:
Bryan Frimin
2025-07-07 15:44:22 +02:00
parent ba71f0d725
commit afa5a822aa
16 changed files with 1008 additions and 1070 deletions

View File

@@ -26,10 +26,7 @@ import { Navigate, Outlet, useNavigate, useParams } from "react-router";
import { useOrganizationId } from "/hooks/useOrganizationId";
import type { FrameworkGraphNodeQuery } from "/hooks/graph/__generated__/FrameworkGraphNodeQuery.graphql";
import type { FrameworkDetailPageFragment$key } from "./__generated__/FrameworkDetailPageFragment.graphql";
import type {
FrameworkDetailPageGenerateFrameworkStateOfApplicabilityMutation,
FrameworkDetailPageGenerateFrameworkStateOfApplicabilityMutation$data,
} from "./__generated__/FrameworkDetailPageGenerateFrameworkStateOfApplicabilityMutation.graphql";
import type { FrameworkDetailPageGenerateFrameworkStateOfApplicabilityMutation } from "./__generated__/FrameworkDetailPageGenerateFrameworkStateOfApplicabilityMutation.graphql";
import { FrameworkFormDialog } from "./dialogs/FrameworkFormDialog";
import { FrameworkControlDialog } from "./dialogs/FrameworkControlDialog";
import { useMutationWithToasts } from "/hooks/useMutationWithToasts";
@@ -59,7 +56,7 @@ const generateFrameworkStateOfApplicabilityMutation = graphql`
generateFrameworkStateOfApplicability(
input: { frameworkId: $frameworkId }
) {
downloadUrl
data
}
}
`;
@@ -139,17 +136,14 @@ export default function FrameworkDetailPage(props: Props) {
onClick={() => {
generateFrameworkStateOfApplicability({
variables: { frameworkId: framework.id },
onCompleted: (
data: FrameworkDetailPageGenerateFrameworkStateOfApplicabilityMutation$data
) => {
if (data.generateFrameworkStateOfApplicability.downloadUrl) {
const link = document.createElement("a");
link.href =
data.generateFrameworkStateOfApplicability.downloadUrl;
link.download = `${framework.name}-SOA.pdf`; // You can adjust the filename as needed
document.body.appendChild(link);
onCompleted: (data) => {
if (data.generateFrameworkStateOfApplicability?.data) {
const link = window.document.createElement("a");
link.href = data.generateFrameworkStateOfApplicability.data;
link.download = `${framework.name}-SOA.xlsx`;
window.document.body.appendChild(link);
link.click();
document.body.removeChild(link);
window.document.body.removeChild(link);
}
},
});

View File

@@ -1,5 +1,5 @@
/**
* @generated SignedSource<<bcdaed0c84805f387ee7d1de8ece0068>>
* @generated SignedSource<<b7c54e98eb3ba12bf4619530b45fdbab>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -14,7 +14,7 @@ export type FrameworkDetailPageGenerateFrameworkStateOfApplicabilityMutation$var
};
export type FrameworkDetailPageGenerateFrameworkStateOfApplicabilityMutation$data = {
readonly generateFrameworkStateOfApplicability: {
readonly downloadUrl: string;
readonly data: string;
};
};
export type FrameworkDetailPageGenerateFrameworkStateOfApplicabilityMutation = {
@@ -55,7 +55,7 @@ v1 = [
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "downloadUrl",
"name": "data",
"storageKey": null
}
],
@@ -80,16 +80,16 @@ return {
"selections": (v1/*: any*/)
},
"params": {
"cacheID": "338cbffe84fb19cdf46c97b739216342",
"cacheID": "80185d474f3a9c5d20f97a387b219511",
"id": null,
"metadata": {},
"name": "FrameworkDetailPageGenerateFrameworkStateOfApplicabilityMutation",
"operationKind": "mutation",
"text": "mutation FrameworkDetailPageGenerateFrameworkStateOfApplicabilityMutation(\n $frameworkId: ID!\n) {\n generateFrameworkStateOfApplicability(input: {frameworkId: $frameworkId}) {\n downloadUrl\n }\n}\n"
"text": "mutation FrameworkDetailPageGenerateFrameworkStateOfApplicabilityMutation(\n $frameworkId: ID!\n) {\n generateFrameworkStateOfApplicability(input: {frameworkId: $frameworkId}) {\n data\n }\n}\n"
}
};
})();
(node as any).hash = "f5c0a7d2bebedecc3de7d55d52f06cd8";
(node as any).hash = "eac70164d676cb8e19d7fe7f06b2b817";
export default node;