Skip to content

Commit

Permalink
feat: 이미지 특정 height 값 이하일 때 미리보기 안되게 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
ExceptAnyone committed Feb 22, 2024
1 parent f6a2cea commit 1e8a7fc
Showing 1 changed file with 23 additions and 9 deletions.
32 changes: 23 additions & 9 deletions src/hooks/common/usePreviewImage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,36 @@ const usePreviewImage = () => {
const [imageName, setImageName] = useState<string>('');
const [file, setFile] = useState<File | null>(null);

/**@todo 이미지 최소 height 상의 필요*/
const MIN_IMAGE_HEIGHT = 400;

const handleImageUpload = (event: React.ChangeEvent<HTMLInputElement>) => {
const { files } = event.target;

if (files && files.length > 0) {
const selectedFiles = files as FileList;

/**@todo 이미지 파싱 추가 */
const imageName = files[0].name.trim();

setFile(selectedFiles[0]);

setPreviewImage(URL.createObjectURL(selectedFiles[0]));
setIsImageUploaded(!!selectedFiles?.[0]);

setImageName(imageName);
// console.log('handleImageUpload newformData', newFormData);
const img = new Image();
img.onload = function () {
if (img.height <= MIN_IMAGE_HEIGHT) {
// 이미지 너비가 어느 수준 이하일 때 업로드 x
alert(
`이미지 세로길이가 너무 작습니다. ${MIN_IMAGE_HEIGHT} 이상인 이미지를 선택해주세요.`,
);
setIsImageUploaded(false);
setFile(null);
setPreviewImage(null);
setImageName('');
} else {
// 이미지 너비가 허용된 범위 내에 있을 때
setFile(selectedFiles[0]);
setPreviewImage(URL.createObjectURL(selectedFiles[0]));
setIsImageUploaded(true);
setImageName(imageName);
}
};
img.src = URL.createObjectURL(selectedFiles[0]);
}
};

Expand Down

0 comments on commit 1e8a7fc

Please sign in to comment.