diff --git a/.changeset/honest-buses-accept.md b/.changeset/honest-buses-accept.md new file mode 100644 index 00000000..14242804 --- /dev/null +++ b/.changeset/honest-buses-accept.md @@ -0,0 +1,5 @@ +--- +"@comet/brevo-admin": minor +--- + +Fix `TargetGroupForms` if no additional form fields are defined. diff --git a/packages/admin/src/targetGroups/TargetGroupForm.gql.ts b/packages/admin/src/targetGroups/TargetGroupForm.gql.ts index d48f7287..05940b7a 100644 --- a/packages/admin/src/targetGroups/TargetGroupForm.gql.ts +++ b/packages/admin/src/targetGroups/TargetGroupForm.gql.ts @@ -1,18 +1,20 @@ import { DocumentNode, gql } from "@apollo/client"; -export const targetGroupFormQuery = (targetGroupFormFragment: DocumentNode) => gql` - query TargetGroupForm($id: ID!) { - targetGroup(id: $id) { - id - title - updatedAt - brevoId - assignedContactsTargetGroupBrevoId - ...TargetGroupForm +export const targetGroupFormQuery = (targetGroupFormFragment?: DocumentNode) => { + return gql` + query TargetGroupForm($id: ID!) { + targetGroup(id: $id) { + id + title + updatedAt + brevoId + assignedContactsTargetGroupBrevoId + ${targetGroupFormFragment ? "...TargetGroupForm" : ""} + } } - } - ${targetGroupFormFragment} -`; + ${targetGroupFormFragment ?? ""} + `; +}; export const targetGroupFormCheckForChangesQuery = gql` query TargetGroupFormCheckForChanges($id: ID!) { @@ -22,24 +24,28 @@ export const targetGroupFormCheckForChangesQuery = gql` } `; -export const createTargetGroupMutation = (targetGroupFormFragment: DocumentNode) => gql` - mutation CreateTargetGroup($scope: EmailCampaignContentScopeInput!, $input: TargetGroupInput!) { - createTargetGroup(scope: $scope, input: $input) { - id - updatedAt - ...TargetGroupForm +export const createTargetGroupMutation = (targetGroupFormFragment?: DocumentNode) => { + return gql` + mutation CreateTargetGroup($scope: EmailCampaignContentScopeInput!, $input: TargetGroupInput!) { + createTargetGroup(scope: $scope, input: $input) { + id + updatedAt + ${targetGroupFormFragment ? "...TargetGroupForm" : ""} + } } - } - ${targetGroupFormFragment} -`; + ${targetGroupFormFragment ?? ""} + `; +}; -export const updateTargetGroupMutation = (targetGroupFormFragment: DocumentNode) => gql` - mutation UpdateTargetGroup($id: ID!, $input: TargetGroupUpdateInput!, $lastUpdatedAt: DateTime) { - updateTargetGroup(id: $id, input: $input, lastUpdatedAt: $lastUpdatedAt) { - id - updatedAt - ...TargetGroupForm +export const updateTargetGroupMutation = (targetGroupFormFragment?: DocumentNode) => { + return gql` + mutation UpdateTargetGroup($id: ID!, $input: TargetGroupUpdateInput!, $lastUpdatedAt: DateTime) { + updateTargetGroup(id: $id, input: $input, lastUpdatedAt: $lastUpdatedAt) { + id + updatedAt + ${targetGroupFormFragment ? "...TargetGroupForm" : ""} + } } - } - ${targetGroupFormFragment} -`; + ${targetGroupFormFragment ?? ""} + `; +}; diff --git a/packages/admin/src/targetGroups/TargetGroupForm.tsx b/packages/admin/src/targetGroups/TargetGroupForm.tsx index 9f45ebf2..3b0163cf 100644 --- a/packages/admin/src/targetGroups/TargetGroupForm.tsx +++ b/packages/admin/src/targetGroups/TargetGroupForm.tsx @@ -54,12 +54,15 @@ export function TargetGroupForm({ id, scope, additionalFormFields, input2State, const mode = "edit"; const formApiRef = useFormApiRef(); - const targetGroupFormFragment = gql` - fragment TargetGroupForm on TargetGroup { - ${nodeFragment ? "...".concat(nodeFragment?.name) : ""} - } - ${nodeFragment?.fragment ?? ""} - `; + let targetGroupFormFragment: DocumentNode | undefined; + if (additionalFormFields && nodeFragment) { + targetGroupFormFragment = gql` + fragment TargetGroupForm on TargetGroup { + ${"...".concat(nodeFragment.name)} + } + ${nodeFragment.fragment} + `; + } const { data, error, loading, refetch } = useQuery( targetGroupFormQuery(targetGroupFormFragment),