Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Supported nested fields #1695

Closed
wants to merge 16 commits into from
Closed
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
8 changes: 8 additions & 0 deletions demo/admin/src/common/MasterMenu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import { Page } from "@src/pages/Page";
import { categoryToUrlParam, pageTreeCategories, urlParamToCategory } from "@src/pageTree/pageTreeCategories";
import { PredefinedPage } from "@src/predefinedPage/PredefinedPage";
import ProductCategoriesPage from "@src/products/categories/ProductCategoriesPage";
import { ManufacturersPage as FutureManufacturersPage } from "@src/products/future/ManufacturersPage";
import { ProductsPage as FutureProductsPage } from "@src/products/future/ProductsPage";
import { ProductsPage } from "@src/products/generated/ProductsPage";
import { ManufacturersPage as ManufacturersHandmadePage } from "@src/products/ManufacturersPage";
Expand Down Expand Up @@ -173,6 +174,13 @@ export const masterMenuData: MasterMenuData = [
component: FutureProductsPage,
},
},
{
primary: <FormattedMessage id="menu.manufacturersFuture" defaultMessage="Manufacturers Future" />,
route: {
path: "/manufacturers-future",
component: FutureManufacturersPage,
},
},
{
primary: <FormattedMessage id="menu.products" defaultMessage="Products" />,
route: {
Expand Down
26 changes: 26 additions & 0 deletions demo/admin/src/products/future/ManufacturerForm.cometGen.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import { future_FormConfig as FormConfig } from "@comet/cms-admin";
import { GQLManufacturer } from "@src/graphql.generated";

export const ManufacturerForm: FormConfig<GQLManufacturer> = {
type: "form",
gqlType: "Manufacturer",
fragmentName: "ManufacturerFormDetails",
fields: [
{ type: "text", name: "address.street" },
{ type: "number", name: "address.streetNumber" },
{ type: "number", name: "address.zip" },
{ type: "text", name: "address.country" },
{ type: "text", name: "address.alternativeAddress.street" },
{ type: "number", name: "address.alternativeAddress.streetNumber" },
{ type: "number", name: "address.alternativeAddress.zip" },
{ type: "text", name: "address.alternativeAddress.country" },
{ type: "text", name: "addressAsEmbeddable.street" },
{ type: "number", name: "addressAsEmbeddable.streetNumber" },
{ type: "number", name: "addressAsEmbeddable.zip" },
{ type: "text", name: "addressAsEmbeddable.country" },
{ type: "text", name: "addressAsEmbeddable.alternativeAddress.street" },
{ type: "number", name: "addressAsEmbeddable.alternativeAddress.streetNumber" },
{ type: "number", name: "addressAsEmbeddable.alternativeAddress.zip" },
{ type: "text", name: "addressAsEmbeddable.alternativeAddress.country" },
],
};
21 changes: 21 additions & 0 deletions demo/admin/src/products/future/ManufacturersPage.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { Stack, StackPage, StackSwitch } from "@comet/admin";
import * as React from "react";
import { useIntl } from "react-intl";

import { ManufacturerForm } from "./generated/ManufacturerForm";

export function ManufacturersPage(): React.ReactElement {
const intl = useIntl();
return (
<Stack topLevelTitle={intl.formatMessage({ id: "manufacturers.manufacturers", defaultMessage: "Manufacturers" })}>
<StackSwitch>
<StackPage name="add" title={intl.formatMessage({ id: "manufacturers.addManufacturer", defaultMessage: "Add Manufacturer" })}>
<ManufacturerForm />
</StackPage>
<StackPage name="edit" title={intl.formatMessage({ id: "manufacturers.editManufacturer", defaultMessage: "Edit Manufacturer" })}>
{(selectedId) => <ManufacturerForm id={selectedId} />}
</StackPage>
</StackSwitch>
</Stack>
);
}
62 changes: 62 additions & 0 deletions demo/admin/src/products/future/generated/ManufacturerForm.gql.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
// This file has been generated by comet admin-generator.
// You may choose to use this file as scaffold by moving this file out of generated folder and removing this comment.
import { gql } from "@apollo/client";

export const manufacturerFormFragment = gql`
fragment ManufacturerFormDetails on Manufacturer {
address {
street
streetNumber
zip
country
alternativeAddress {
street
streetNumber
zip
country
}
}
addressAsEmbeddable {
street
streetNumber
zip
country
alternativeAddress {
street
streetNumber
zip
country
}
}
}
`;
export const manufacturerQuery = gql`
query Manufacturer($id: ID!) {
manufacturer(id: $id) {
id
updatedAt
...ManufacturerFormDetails
}
}
${manufacturerFormFragment}
`;
export const createManufacturerMutation = gql`
mutation CreateManufacturer($input: ManufacturerInput!) {
createManufacturer(input: $input) {
id
updatedAt
...ManufacturerFormDetails
}
}
${manufacturerFormFragment}
`;
export const updateManufacturerMutation = gql`
mutation UpdateManufacturer($id: ID!, $input: ManufacturerUpdateInput!) {
updateManufacturer(id: $id, input: $input) {
id
updatedAt
...ManufacturerFormDetails
}
}
${manufacturerFormFragment}
`;
Loading
Loading