Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 21 additions & 3 deletions src/hooks/useMakeFeed.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,9 @@ export const useMakeFeedMutation = ({appartID, feedData, images, deleteImage, fe

if(deleteImage)
{
const files = JSON.stringify(deleteImage);
formData.append('deleteFileUrls', files);
formData.append('deleteFileUrls',
new Blob([JSON.stringify(deleteImage)], { type: 'application/json' })
);
}

const url = feedid ?`/api${API_ENDPOINTS.USER.GETCOMMUNITYFEED}/${feedid}` : `/api${API_ENDPOINTS.USER.GETCOMMUNITYFEED}`;
Expand Down Expand Up @@ -88,12 +89,29 @@ export const useMakeFeedMutation = ({appartID, feedData, images, deleteImage, fe
},
});

const calculateByteLength = (text: string): number => {
const encoder = new TextEncoder();
const encoded = encoder.encode(text);
return encoded.length;
};


const useMakeFeed: Function = () => {
if (!feedData?.title.trim() || !feedData?.contents.trim()) {
alert('제목과 내용을 입력해주세요.');
return;
}
console.log("make feed " + feedid);

const totalLength = calculateByteLength(feedData?.title) + calculateByteLength(feedData?.contents);

if(totalLength > 1048576)
{
console.log("1MB 초과");
alert("제목과 내용의 글자수가 약 100만 자를 넘을 수 없습니다.\n이모지를 포함할 경우, 업로드 가능한 글자수가 적어질 수 있습니다.");
return;
}

console.log(feedid ? "make feed " + feedid : "make new feed");
mutation.mutate(feedid);
};

Expand Down
6 changes: 6 additions & 0 deletions src/pages/make-feed/MakeFeed.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,12 @@ const BodyData = ({feedData, setImages, setDeleteImage}:{feedData:FeedDetailPost

// 새로운 파일들을 읽어서 미리보기 URL 생성
newFiles.forEach(file => {
// 파일 크기 확인 (3MB 초과)
if (file.size > 3145728) {
alert(`${file.name} 파일은 3MB를 초과하여 업로드할 수 없습니다.`);
return;
}

const reader = new FileReader();
reader.onloadend = () => {
setPreviewUrls(prev => [...prev, reader.result as string]);
Expand Down