further types
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user