Skip to content

Commit

Permalink
type fixes and deduplication, fixes for 49e6898
Browse files Browse the repository at this point in the history
  • Loading branch information
dcousens committed Aug 21, 2024
1 parent d098cdf commit 2552031
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 63 deletions.
79 changes: 27 additions & 52 deletions packages/core/src/admin-ui/admin-meta-graphql.ts
Original file line number Diff line number Diff line change
@@ -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`
Expand All @@ -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
Expand Down Expand Up @@ -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<FieldMeta, 'graphql'> & {
__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<string>
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'
6 changes: 1 addition & 5 deletions packages/core/src/admin-ui/utils/useAdminMeta.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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({
Expand Down
3 changes: 2 additions & 1 deletion packages/core/src/lib/create-admin-meta.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ type FieldMetaRootVal_ = {
isOrderable: ContextFunction<boolean>
isFilterable: ContextFunction<boolean>

isNonNull: ('read' | 'create' | 'update')[]
isNonNull: ('read' | 'create' | 'update')[] // TODO: FIXME: flattened?
createView: {
fieldMode: ContextFunction<'edit' | 'hidden'>
}
Expand All @@ -38,6 +38,7 @@ type FieldMetaRootVal_ = {
fieldMode: ContextFunction<'read' | 'hidden'>
}
}

export type FieldMetaRootVal = FieldMetaRootVal_
& Omit<FieldMeta, keyof FieldMetaRootVal_ | 'controller' | 'graphql' | 'views'>

Expand Down
10 changes: 5 additions & 5 deletions packages/core/src/lib/resolve-admin-meta.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 }
Expand Down

0 comments on commit 2552031

Please sign in to comment.