Files
payloadcms/demo/collections/CustomComponents/components/fields/Upload/Field/index.tsx
Dan Ribbens 4913441017 Free and open-source under MIT license (#565)
* feat: free and open-source under MIT license
2022-05-16 19:25:20 -04:00

58 lines
1.4 KiB
TypeScript

import React, { useCallback } from 'react';
import UploadInput from '../../../../../../../src/admin/components/forms/field-types/Upload/Input';
import { Props as UploadFieldType } from '../../../../../../../src/admin/components/forms/field-types/Upload/types';
import useField from '../../../../../../../src/admin/components/forms/useField';
import { SanitizedCollectionConfig } from '../../../../../../../src/collections/config/types';
import { useConfig } from '../../../../../../../src/admin/components/utilities/Config';
const Text: React.FC<UploadFieldType> = (props) => {
const {
path,
name,
label,
relationTo,
fieldTypes,
} = props;
const {
value,
setValue,
showError,
} = useField({
path,
});
const onChange = useCallback((incomingValue) => {
const incomingID = incomingValue?.id || incomingValue;
setValue(incomingID);
}, [setValue]);
const {
collections,
serverURL,
routes: {
api,
},
} = useConfig();
const collection = collections.find((coll) => coll.slug === relationTo) || undefined;
return (
<UploadInput
path={path}
relationTo={relationTo}
fieldTypes={fieldTypes}
name={name}
label={label}
value={value as string}
onChange={onChange}
showError={showError}
collection={collection as SanitizedCollectionConfig}
serverURL={serverURL}
api={api}
/>
);
};
export default Text;