Skip to content

Commit

Permalink
feat(@tinacms/fields): clicking on ImageField opens the media picker ui
Browse files Browse the repository at this point in the history
  • Loading branch information
ncphillips committed Sep 11, 2020
1 parent 94ee917 commit 7bb8fdb
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
Expand Up @@ -26,6 +26,7 @@ import { LoadingDots } from '@tinacms/react-forms'
interface ImageUploadProps {
onDrop: (acceptedFiles: any[]) => void
onClear?: () => void
onClick?: () => void
value?: string
previewSrc?: string
loading?: boolean
Expand Down Expand Up @@ -103,17 +104,19 @@ const StyledImageContainer = styled.div`
export const ImageUpload = ({
onDrop,
onClear,
onClick,
value,
previewSrc,
loading,
}: ImageUploadProps) => {
const { getRootProps, getInputProps } = useDropzone({
accept: 'image/*',
onDrop,
noClick: !!onClick,
})

return (
<DropArea {...getRootProps()}>
<DropArea {...getRootProps()} onClick={onClick}>
<input {...getInputProps()} />
{value ? (
<StyledImageContainer>
Expand Down
11 changes: 11 additions & 0 deletions packages/@tinacms/fields/src/plugins/ImageFieldPlugin.tsx
Expand Up @@ -75,6 +75,17 @@ export const ImageField = wrapFieldsWithMeta<InputProps, ImageProps>(props => {
value={props.input.value}
previewSrc={src}
loading={srcIsLoading}
onClick={() => {
cms.events.dispatch({
type: 'media:open',
onSelect(media: any) {
if (media.filename == props.input.value) {
props.input.onChange('') // trigger rerender
}
props.input.onChange(media)
},
})
}}
onDrop={async ([file]: File[]) => {
const directory = props.field.uploadDir(props.form.getState().values)
// @ts-ignore cms.media
Expand Down

0 comments on commit 7bb8fdb

Please sign in to comment.