11import FileUploadImage from '../../../../public/assets/event-manage/creation/FileUpload.svg' ;
22import { FunnelState } from '../model/FunnelContext' ;
33import useImageUpload from '../../../shared/hooks/useImageUpload' ;
4+ import { useEffect } from 'react' ;
45
56interface FileUploadProps {
67 value ?: string ;
78 onChange ?: ( url : string ) => void ;
89 setEventState ?: React . Dispatch < React . SetStateAction < FunnelState [ 'eventState' ] > > ;
910 useDefaultImage ?: boolean ;
11+ onValidationChange ?: ( isValid : boolean ) => void ;
1012}
1113
12- const FileUpload = ( { value, onChange, setEventState, useDefaultImage } : FileUploadProps ) => {
14+ const FileUpload = ( { value, onChange, setEventState, useDefaultImage, onValidationChange } : FileUploadProps ) => {
1315 const { previewUrl, fileInputRef, handleFileChange, handleDrop, setIsDragging, isDragging } = useImageUpload ( {
1416 value, // 서버에서 받아온 기본 이미지
1517 onSuccess : url => {
@@ -19,6 +21,12 @@ const FileUpload = ({ value, onChange, setEventState, useDefaultImage }: FileUpl
1921 useDefaultImage,
2022 } ) ;
2123
24+ useEffect ( ( ) => {
25+ if ( onValidationChange ) {
26+ onValidationChange ( ! ! previewUrl ) ;
27+ }
28+ } , [ previewUrl , onValidationChange ] ) ;
29+
2230 return (
2331 < div className = "flex flex-col justify-start gap-1" >
2432 < h1 className = "font-bold text-black text-lg" > 배너 사진 첨부</ h1 >
0 commit comments