import { CoverField } from '@/components/ra-fields';
import { LabeledInput } from '@/components/ra-inputs/LabeledInput';
import { get } from 'lodash';
import React from 'react';
import {
ImageInput as RaImageInput,
ImageInputProps as RaImageInputProps,
useInput,
useRecordContext
} from 'react-admin';
import { useWatch } from 'react-hook-form';
type ImageInputProps = {
source: string;
title?: string;
children?: React.ReactNode;
multiple?: boolean;
} & RaImageInputProps;
function ImageInput({ children = , title, multiple = false, ...props }: ImageInputProps): JSX.Element {
const file = useWatch({ name: props.source });
const record = useRecordContext(props);
const { source } = props;
useInput({ source: `__image__${props?.source}`, defaultValue: props?.source });
return (
// @ts-ignore
{/* @ts-ignore */}
{
/** @ts-ignore */
React.cloneElement(children, {
// @ts-ignore
...children.props,
title,
source,
record: {
...record,
[source]: file?.title || get(record, source),
[`_${source}`]: file?.src || get(record, `_${source}`)
}
})
}
);
}
export { ImageInput };
export type { ImageInputProps };