further types

This commit is contained in:
James
2020-11-30 17:31:05 -05:00
parent c398c8b2a2
commit 100d1e7220
13 changed files with 98 additions and 118 deletions

View File

@@ -14,13 +14,13 @@ export type Fields = {
}
export type Data = {
[key: string]: unknown
[key: string]: any
}
export type Props = {
disabled?: boolean
onSubmit?: (fields: Fields, data: Data) => void
method?: 'GET' | 'PUT' | 'DELETE' | 'POST'
method?: 'get' | 'put' | 'delete' | 'post'
action?: string
handleResponse?: (res: Response) => void
onSuccess?: (json: unknown) => void

View File

@@ -69,11 +69,7 @@ const RenderFields: React.FC<Props> = (props) => {
if ((filter && typeof filter === 'function' && filter(field)) || !filter) {
const FieldComponent = field?.admin?.hidden ? fieldTypes.hidden : fieldTypes[field.type];
let fieldPermissions = permissions?.[field.name];
if (!field.name) {
fieldPermissions = permissions;
}
const fieldPermissions = field?.name ? permissions?.[field.name] : permissions;
let { admin: { readOnly } = {} } = field;

View File

@@ -1,5 +1,6 @@
import { CollectionPermission, GlobalPermission } from '../../../../auth/types';
import { Field } from '../../../../fields/config/types';
import { CollectionFieldPermissions, GlobalFieldPermissions } from '../../../../auth/types';
import { FieldWithPath } from '../../../../fields/config/types';
import { FieldTypes } from '../field-types';
export type Operation = 'create' | 'update'
@@ -11,7 +12,8 @@ export type Props = {
className?: string
operation: Operation
readOnly: boolean
permissions: CollectionPermission | GlobalPermission
permissions: CollectionFieldPermissions | GlobalFieldPermissions
filter: (field: Field) => boolean
fieldSchema: Field[]
fieldSchema: FieldWithPath[]
fieldTypes: FieldTypes
}

View File

@@ -19,7 +19,28 @@ import array from './Array';
import row from './Row';
import upload from './Upload';
export default {
export type FieldTypes = {
code: React.ComponentType
email: React.ComponentType
hidden: React.ComponentType
text: React.ComponentType
date: React.ComponentType
password: React.ComponentType
relationship: React.ComponentType
textarea: React.ComponentType
select: React.ComponentType
number: React.ComponentType
checkbox: React.ComponentType
richText: React.ComponentType
radio: React.ComponentType
blocks: React.ComponentType
group: React.ComponentType
array: React.ComponentType
row: React.ComponentType
upload: React.ComponentType
}
const fieldTypes: FieldTypes = {
code,
email,
hidden,
@@ -39,3 +60,5 @@ export default {
row,
upload,
};
export default fieldTypes;