From 25520312d092a8986254bc195e584f69b747de40 Mon Sep 17 00:00:00 2001 From: Daniel Cousens <413395+dcousens@users.noreply.github.com> Date: Wed, 21 Aug 2024 17:10:37 +1000 Subject: [PATCH] type fixes and deduplication, fixes for 49e689881 --- .../core/src/admin-ui/admin-meta-graphql.ts | 79 +++++++------------ .../core/src/admin-ui/utils/useAdminMeta.tsx | 6 +- packages/core/src/lib/create-admin-meta.ts | 3 +- packages/core/src/lib/resolve-admin-meta.ts | 10 +-- 4 files changed, 35 insertions(+), 63 deletions(-) diff --git a/packages/core/src/admin-ui/admin-meta-graphql.ts b/packages/core/src/admin-ui/admin-meta-graphql.ts index c4f42799a4e..b0f954eaec3 100644 --- a/packages/core/src/admin-ui/admin-meta-graphql.ts +++ b/packages/core/src/admin-ui/admin-meta-graphql.ts @@ -1,7 +1,11 @@ import { type GraphQLNames, - type JSONValue, } from '../types/utils' +import { + type ListMeta, + type FieldMeta, + type FieldGroupMeta, +} from '../types' import { gql } from './apollo' export const staticAdminMetaQuery = gql` @@ -27,16 +31,26 @@ export const staticAdminMetaQuery = gql` label description fieldMeta + isOrderable + isFilterable viewsIndex customViewsIndex search isNonNull + createView { + fieldMode + } itemView { fieldMode + fieldPosition + } + listView { + fieldMode } } + groups { __typename label @@ -92,72 +106,33 @@ export const staticAdminMetaQuery = gql` } ` +// TODO: FIXME: should use DeepNullable export type StaticAdminMetaQuery = { keystone: { __typename: 'KeystoneMeta' adminMeta: { __typename: 'KeystoneAdminMeta' - lists: { + lists: (ListMeta & { __typename: 'KeystoneAdminUIListMeta' - key: string - path: string - description: string | null - label: string - labelField: string - singular: string - plural: string - - fields: { + fields: (Omit & { __typename: 'KeystoneAdminUIFieldMeta' - path: string - label: string - description: string | null - fieldMeta: JSONValue | null - viewsIndex: number - customViewsIndex: number | null - search: QueryMode | null - isNonNull: ('read' | 'create' | 'update')[] - itemView: { - __typename: 'KeystoneAdminUIFieldMetaItemView' - fieldPosition: KeystoneAdminUIFieldMetaItemViewFieldPosition | null - fieldMode: KeystoneAdminUIFieldMetaItemViewFieldMode | null - } | null - }[] - groups: { + isNonNull: FieldMeta['graphql']['isNonNull'] // TODO: FIXME: flattened? + })[] + groups: (FieldGroupMeta & { __typename: 'KeystoneAdminUIFieldGroupMeta' - label: string - description: string | null - fields: Array<{ + fields: (FieldMeta & { __typename: 'KeystoneAdminUIFieldMeta' - path: string - }> - }[] + })[] + })[] graphql: { names: GraphQLNames }, - pageSize: number - initialColumns: Array - initialSort: { + initialSort: ({ __typename: 'KeystoneAdminUISort' - field: string - direction: KeystoneAdminUISortDirection - } | null - isSingleton: boolean - - hideNavigation: boolean - hideCreate: boolean - hideDelete: boolean - }[] + } & ListMeta['initialSort']) + })[] } } } - -type QueryMode = 'default' | 'insensitive' - -type KeystoneAdminUIFieldMetaItemViewFieldMode = 'edit' | 'read' | 'hidden' - -type KeystoneAdminUIFieldMetaItemViewFieldPosition = 'form' | 'sidebar' - -type KeystoneAdminUISortDirection = 'ASC' | 'DESC' diff --git a/packages/core/src/admin-ui/utils/useAdminMeta.tsx b/packages/core/src/admin-ui/utils/useAdminMeta.tsx index 99d8dd8bf7a..51bb503f9af 100644 --- a/packages/core/src/admin-ui/utils/useAdminMeta.tsx +++ b/packages/core/src/admin-ui/utils/useAdminMeta.tsx @@ -108,12 +108,8 @@ export function useAdminMeta (adminMetaHash: string, fieldViews: FieldViews) { runtimeAdminMeta.lists[list.key].fields[field.path] = { ...field, - itemView: { - fieldMode: field.itemView?.fieldMode ?? null, - fieldPosition: field.itemView?.fieldPosition ?? null, - }, graphql: { - isNonNull: field.isNonNull, + isNonNull: field.isNonNull, // TODO: FIXME: flattened? }, views, controller: views.controller({ diff --git a/packages/core/src/lib/create-admin-meta.ts b/packages/core/src/lib/create-admin-meta.ts index 224370dd02e..e2710f61f66 100644 --- a/packages/core/src/lib/create-admin-meta.ts +++ b/packages/core/src/lib/create-admin-meta.ts @@ -26,7 +26,7 @@ type FieldMetaRootVal_ = { isOrderable: ContextFunction isFilterable: ContextFunction - isNonNull: ('read' | 'create' | 'update')[] + isNonNull: ('read' | 'create' | 'update')[] // TODO: FIXME: flattened? createView: { fieldMode: ContextFunction<'edit' | 'hidden'> } @@ -38,6 +38,7 @@ type FieldMetaRootVal_ = { fieldMode: ContextFunction<'read' | 'hidden'> } } + export type FieldMetaRootVal = FieldMetaRootVal_ & Omit diff --git a/packages/core/src/lib/resolve-admin-meta.ts b/packages/core/src/lib/resolve-admin-meta.ts index 5587cc1291e..a7ca0dacd75 100644 --- a/packages/core/src/lib/resolve-admin-meta.ts +++ b/packages/core/src/lib/resolve-admin-meta.ts @@ -16,11 +16,11 @@ import { } from '../types/utils' import { QueryMode } from '../types' import { graphql as graphqlBoundToKeystoneContext } from '../types/schema' -import { - type AdminMetaRootVal, - type FieldGroupMetaRootVal, - type FieldMetaRootVal, - type ListMetaRootVal, +import type { + AdminMetaRootVal, + FieldGroupMetaRootVal, + FieldMetaRootVal, + ListMetaRootVal, } from './create-admin-meta' type Context = KeystoneContext | { isAdminUIBuildProcess: true }