diff --git a/app/soapbox/features/edit-profile/components/avatar-picker.tsx b/app/soapbox/features/edit-profile/components/avatar-picker.tsx index 09a6b0d29..afbd54a71 100644 --- a/app/soapbox/features/edit-profile/components/avatar-picker.tsx +++ b/app/soapbox/features/edit-profile/components/avatar-picker.tsx @@ -1,30 +1,43 @@ import clsx from 'clsx'; -import React from 'react'; +import React, { useRef } from 'react'; import { FormattedMessage } from 'react-intl'; import { Avatar, Icon, HStack } from 'soapbox/components/ui'; +import { useDraggedFiles } from 'soapbox/hooks'; interface IMediaInput { className?: string src: string | undefined accept: string - onChange: React.ChangeEventHandler + onChange: (files: FileList | null) => void disabled?: boolean } const AvatarPicker = React.forwardRef(({ className, src, onChange, accept, disabled }, ref) => { + const picker = useRef(null); + + const { isDragging, isDraggedOver } = useDraggedFiles(picker, (files) => { + onChange(files); + }); + return (