Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .changeset/async-select-query-name.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
"@comet/admin-generator": minor
---

asyncSelect: query name is now derived from field name instead of rootQuery

Previously the GraphQL operation name was derived from `rootQuery` (e.g. `rootQuery: "people"` → `PeopleSelect`). When multiple fields shared the same `rootQuery`, this produced duplicate operation names, causing errors in `gql:types`.

The operation name is now derived from the **field name** (e.g. field `host` → `HostSelect`, field `guest` → `GuestSelect`). This ensures uniqueness across all fields in a form automatically, without any extra configuration.

An optional `queryName` setting was also added to both `asyncSelect` and `asyncSelectFilter` to manually override the generated operation name when needed.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 12 additions & 12 deletions demo/admin/src/products/generator/generated/ProductForm.tsx

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,12 @@ export type FormFieldConfig<T> = (
type: "asyncSelect";
name: UsableFormFields<T>;
rootQuery: string;
/**
* Override the generated GraphQL query name.
* Defaults to the field name with an uppercased first letter and "Select" appended (e.g. field "host" → "HostSelect").
* Useful when the auto-generated name (based on the field name) is not descriptive enough.
*/
queryName?: string;
labelField?: string;
/** Whether Autocomplete or Select should be used.
*
Expand All @@ -129,6 +135,12 @@ export type FormFieldConfig<T> = (
name: string;
loadValueQueryField: string; //TODO improve typing, use something similar to UsableFormFields<T>;
rootQuery: string;
/**
* Override the generated GraphQL query name.
* Defaults to the field name with an uppercased first letter and "Select" appended (e.g. field "productCategory" → "ProductCategorySelect").
* Useful when the auto-generated name (based on the field name) is not descriptive enough.
*/
queryName?: string;
labelField?: string;
/** Whether Autocomplete or Select should be used.
*
Expand Down
Loading
Loading