From b4e2e2e1b6bb3e72dae88010494488c5da6da8a9 Mon Sep 17 00:00:00 2001 From: James Date: Tue, 2 Jun 2020 20:31:05 -0400 Subject: [PATCH] enables properly building object type for Row field type --- demo/payload.public.config.js | 34 +++++++++++++-------------- src/graphql/schema/buildObjectType.js | 23 +++++++++++++++++- 2 files changed, 39 insertions(+), 18 deletions(-) diff --git a/demo/payload.public.config.js b/demo/payload.public.config.js index 04453d624f..ba4afdfbab 100644 --- a/demo/payload.public.config.js +++ b/demo/payload.public.config.js @@ -30,24 +30,24 @@ module.exports = { collections: [ Admin, AllFields, - Code, - Conditions, - CustomComponents, - File, - FlexibleContent, - HiddenFields, - Hooks, - HTML, - Localized, - Media, - Preview, - RelationshipA, - RelationshipB, - RichText, - StrictPolicies, - Validations, + // Code, + // Conditions, + // CustomComponents, + // File, + // FlexibleContent, + // HiddenFields, + // Hooks, + // HTML, + // Localized, + // Media, + // Preview, + // RelationshipA, + // RelationshipB, + // RichText, + // StrictPolicies, + // Validations, ], - globals: [NavigationRepeater, GlobalWithPolicies, FlexibleGlobal], + // globals: [NavigationRepeater, GlobalWithPolicies, FlexibleGlobal], cookiePrefix: 'payload', serverURL: 'http://localhost:3000', cors: ['http://localhost', 'http://localhost:8080', 'http://localhost:8081'], diff --git a/src/graphql/schema/buildObjectType.js b/src/graphql/schema/buildObjectType.js index 826cd0f3ed..233e99df96 100644 --- a/src/graphql/schema/buildObjectType.js +++ b/src/graphql/schema/buildObjectType.js @@ -243,6 +243,20 @@ function buildObjectType(name, fields, parentName, baseFields = {}) { return { type }; }, + row: (field) => { + return field.fields.reduce((subFieldSchema, subField) => { + const buildSchemaType = fieldToSchemaMap[subField.type]; + + if (buildSchemaType) { + return { + ...subFieldSchema, + [formatName(subField.name)]: buildSchemaType(subField), + }; + } + + return subFieldSchema; + }, {}); + }, }; const objectSchema = { @@ -250,9 +264,16 @@ function buildObjectType(name, fields, parentName, baseFields = {}) { fields: () => fields.reduce((schema, field) => { const fieldSchema = fieldToSchemaMap[field.type]; if (fieldSchema) { + if (field.name) { + return { + ...schema, + [formatName(field.name)]: fieldSchema(field), + }; + } + return { ...schema, - [formatName(field.name)]: fieldSchema(field), + ...fieldSchema(field), }; }