From 4fb41bde46c32194edf11f41df657a99f5357005 Mon Sep 17 00:00:00 2001 From: amel Date: Wed, 22 Jan 2025 14:52:38 +0800 Subject: [PATCH 1/5] upd: edit profile - Deskripsi: - resize image 300px No Issues --- bun.lockb | Bin 286217 -> 286177 bytes package.json | 1 + src/app/api/user/profile/route.ts | 20 ++++++++++++++++++-- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/bun.lockb b/bun.lockb index 9bb5d6ff1ca693d3fe4775ac8747eb31103aa4b2..0b76528c24115ae96e64878c65de73466d679c9e 100755 GIT binary patch delta 12966 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 SPCtLiN&V;aA5$`a-G2h0@Yu=# delta 13191 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 diff --git a/package.json b/package.json index 35dedb1..86623f1 100644 --- a/package.json +++ b/package.json @@ -53,6 +53,7 @@ "readdirp": "^3.6.0", "recharts": "2", "rrule": "^2.8.1", + "sharp": "^0.33.5", "supabase": "^1.192.5", "web-push": "^3.6.7", "wibu-cli": "^1.0.91", diff --git a/src/app/api/user/profile/route.ts b/src/app/api/user/profile/route.ts index 4676f6e..3a27995 100644 --- a/src/app/api/user/profile/route.ts +++ b/src/app/api/user/profile/route.ts @@ -3,6 +3,7 @@ import { funGetUserByCookies } from "@/module/auth"; import { createLogUser } from "@/module/user"; import _ from "lodash"; import { NextResponse } from "next/server"; +import sharp from "sharp"; // GET PROFILE BY COOKIES @@ -119,9 +120,24 @@ export async function PUT(request: Request) { if (String(file) != "undefined" && String(file) != "null") { const fExt = file.name.split(".").pop() const fileName = user.id + '.' + fExt; - const newFile = new File([file], fileName, { type: file.type }); + + // Resize ukuran + const imageBuffer = await file.arrayBuffer(); + const resize = await sharp(imageBuffer).resize(300).toBuffer(); + + // Convert buffer ke Blob + const blob = new Blob([resize], { type: file.type }); + + // Convert Blob ke File + const resizedFile = new File([blob], fileName, { + type: file.type, + lastModified: new Date().getTime(), + }); + + // const newFile = new File([file], fileName, { type: file.type }); + await funDeleteFile({ fileId: String(update.img) }) - const upload = await funUploadFile({ file: newFile, dirId: DIR.user }) + const upload = await funUploadFile({ file: resizedFile, dirId: DIR.user }) if (upload.success) { await prisma.user.update({ where: { From 53b803d7ac76b029d710b593cb9718a4d4749fe7 Mon Sep 17 00:00:00 2001 From: amel Date: Wed, 22 Jan 2025 15:48:47 +0800 Subject: [PATCH 2/5] upd: user Deskripsi: - resize image user create anggota dan edit anggota No Issues --- src/app/api/user/[id]/route.ts | 20 ++++++++++++++++++-- src/app/api/user/route.ts | 20 ++++++++++++++++++-- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src/app/api/user/[id]/route.ts b/src/app/api/user/[id]/route.ts index 24e6875..9cb622f 100644 --- a/src/app/api/user/[id]/route.ts +++ b/src/app/api/user/[id]/route.ts @@ -3,6 +3,7 @@ import { funGetUserByCookies } from "@/module/auth"; import { createLogUser } from "@/module/user"; import _ from "lodash"; import { NextResponse } from "next/server"; +import sharp from "sharp"; // GET ONE MEMBER / USER export async function GET(request: Request, context: { params: { id: string } }) { @@ -207,9 +208,24 @@ export async function PUT(request: Request, context: { params: { id: string } }) if (String(file) != "undefined" && String(file) != "null") { const fExt = file.name.split(".").pop() const fileName = id + '.' + fExt; - const newFile = new File([file], fileName, { type: file.type }); + + // Resize ukuran + const imageBuffer = await file.arrayBuffer(); + const resize = await sharp(imageBuffer).resize(300).toBuffer(); + + // Convert buffer ke Blob + const blob = new Blob([resize], { type: file.type }); + + // Convert Blob ke File + const resizedFile = new File([blob], fileName, { + type: file.type, + lastModified: new Date().getTime(), + }); + + // const newFile = new File([file], fileName, { type: file.type }); + await funDeleteFile({ fileId: String(updates.img) }) - const upload = await funUploadFile({ file: newFile, dirId: DIR.user }) + const upload = await funUploadFile({ file: resizedFile, dirId: DIR.user }) await prisma.user.update({ where: { id: id diff --git a/src/app/api/user/route.ts b/src/app/api/user/route.ts index 420c818..526a4a7 100644 --- a/src/app/api/user/route.ts +++ b/src/app/api/user/route.ts @@ -3,6 +3,7 @@ import { funGetUserByCookies } from "@/module/auth"; import { createLogUser } from "@/module/user"; import _ from "lodash"; import { NextResponse } from "next/server"; +import sharp from "sharp"; // GET ALL MEMBER / USER export async function GET(request: Request) { @@ -194,8 +195,23 @@ export async function POST(request: Request) { const fExt = file.name.split(".").pop() const fileName = user.id + '.' + fExt; - const newFile = new File([file], fileName, { type: file.type }); - const upload = await funUploadFile({ file: newFile, dirId: DIR.user }) + + // Resize ukuran + const imageBuffer = await file.arrayBuffer(); + const resize = await sharp(imageBuffer).resize(300).toBuffer(); + + // Convert buffer ke Blob + const blob = new Blob([resize], { type: file.type }); + + // Convert Blob ke File + const resizedFile = new File([blob], fileName, { + type: file.type, + lastModified: new Date().getTime(), + }); + + // const newFile = new File([file], fileName, { type: file.type }); + + const upload = await funUploadFile({ file: resizedFile, dirId: DIR.user }) if (upload.success) { await prisma.user.update({ where: { From fa4a662e03e150ea8e1dc4d9e29b4e634a7c4d4f Mon Sep 17 00:00:00 2001 From: amel Date: Wed, 22 Jan 2025 17:28:57 +0800 Subject: [PATCH 3/5] upd: version api --- src/app/api/version-app/route.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/api/version-app/route.ts b/src/app/api/version-app/route.ts index 854c05f..bff3dab 100644 --- a/src/app/api/version-app/route.ts +++ b/src/app/api/version-app/route.ts @@ -2,7 +2,7 @@ import { NextResponse } from "next/server"; export async function GET(request: Request) { try { - return NextResponse.json({ success: true, version: "1.1.2", tahap: "beta", update:"-pdf viewer new -jumlah anggota pada grid list divisi" }, { status: 200 }); + return NextResponse.json({ success: true, version: "1.1.3", tahap: "beta", update:"-resize profile image user (create anggota, edit anggota, edit profile)" }, { status: 200 }); } catch (error) { console.error(error); return NextResponse.json({ success: false, version: "Gagal mendapatkan version, coba lagi nanti (error: 500)", reason: (error as Error).message, }, { status: 500 }); From d1f92640a77ba474eb68fed5dd872a3a909248fa Mon Sep 17 00:00:00 2001 From: amel Date: Thu, 23 Jan 2025 11:13:20 +0800 Subject: [PATCH 4/5] upd: image type heic Deskripsi: - ga jadi pake heic - fitur : banner, dokumen, project, task, anggota, profile No Issues --- src/module/banner/ui/create_banner.tsx | 28 +++++++++---------- src/module/banner/ui/edit_banner.tsx | 8 +++--- .../ui/drawer_menu_document_division.tsx | 4 +-- .../project/ui/add_file_detail_project.tsx | 4 +-- src/module/project/ui/create_project.tsx | 6 ++-- src/module/task/ui/add_file_detail_task.tsx | 4 +-- src/module/task/ui/create_task.tsx | 4 +-- src/module/user/member/ui/create_member.tsx | 4 +-- src/module/user/member/ui/edit_member.tsx | 4 +-- src/module/user/profile/ui/edit_profile.tsx | 4 +-- 10 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/module/banner/ui/create_banner.tsx b/src/module/banner/ui/create_banner.tsx index 8331050..0364387 100644 --- a/src/module/banner/ui/create_banner.tsx +++ b/src/module/banner/ui/create_banner.tsx @@ -120,9 +120,9 @@ function CreateBanner() { }} activateOnClick={false} maxSize={10 * 1024 ** 2} - accept={['image/png', 'image/jpeg', 'image/heic']} + accept={['image/png', 'image/jpeg']} onReject={(files) => { - return toast.error('File yang diizinkan: .png, .jpg, dan .heic dengan ukuran maksimal 10 MB') + return toast.error('File yang diizinkan: .png dan .jpg dengan ukuran maksimal 10 MB') }} onClick={() => openRef.current?.()} > @@ -159,17 +159,17 @@ function CreateBanner() {
- + Klik Untuk Upload Image - Mohon unggah gambar dalam resolusi + Mohon unggah gambar dalam resolusi - 1535 x 450 piksel untuk memastikan + 1535 x 450 piksel untuk memastikan - tampilan sesuai dengan kebutuhan desain. + tampilan sesuai dengan kebutuhan desain.
@@ -177,15 +177,15 @@ function CreateBanner() { - - {touched.image && !imgForm && ( - - Silahkan Pilih Gambar - - )} - + + {touched.image && !imgForm && ( + + Silahkan Pilih Gambar + + )} + - { - return toast.error('File yang diizinkan: .png, .jpg, dan .heic dengan ukuran maksimal 10 MB') + return toast.error('File yang diizinkan: .png dan .jpg dengan ukuran maksimal 10 MB') }} onClick={() => openRef.current?.()} > diff --git a/src/module/document/ui/drawer_menu_document_division.tsx b/src/module/document/ui/drawer_menu_document_division.tsx index a1d67bf..40771dc 100644 --- a/src/module/document/ui/drawer_menu_document_division.tsx +++ b/src/module/document/ui/drawer_menu_document_division.tsx @@ -149,12 +149,12 @@ export default function DrawerMenuDocumentDivision() { }} activateOnClick={false} maxSize={100 * 1024 ** 2} - accept={['image/png', 'image/jpeg', 'image/heic', 'application/pdf', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']} + accept={['image/png', 'image/jpeg', 'application/pdf', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']} onReject={(files) => { refresh.set(true) setOpenModal(false) setOpenDrawerDocument(false) - toast.error('File yang diizinkan: .csv, .png, .jpg, .heic, .pdf, .doc, .docx, .xls, .xlsx dengan ukuran maksimal 100 MB') + toast.error('File yang diizinkan: .csv, .png, .jpg, .pdf, .doc, .docx, .xls, .xlsx dengan ukuran maksimal 100 MB') }} > openRef.current?.()}> diff --git a/src/module/project/ui/add_file_detail_project.tsx b/src/module/project/ui/add_file_detail_project.tsx index 71f3582..f557e4b 100644 --- a/src/module/project/ui/add_file_detail_project.tsx +++ b/src/module/project/ui/add_file_detail_project.tsx @@ -106,9 +106,9 @@ export default function AddFileDetailProject() { }} activateOnClick={false} maxSize={100 * 1024 ** 2} - accept={['image/png', 'image/jpeg', 'image/heic', 'application/pdf', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']} + accept={['image/png', 'image/jpeg', 'application/pdf', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']} onReject={(files) => { - return toast.error('File yang diizinkan: .csv, .png, .jpg, .heic, .pdf, .doc, .docx, .xls, .xlsx dengan ukuran maksimal 100 MB') + return toast.error('File yang diizinkan: .csv, .png, .jpg, .pdf, .doc, .docx, .xls, .xlsx dengan ukuran maksimal 100 MB') }} > diff --git a/src/module/project/ui/create_project.tsx b/src/module/project/ui/create_project.tsx index 97a2ef3..886a919 100644 --- a/src/module/project/ui/create_project.tsx +++ b/src/module/project/ui/create_project.tsx @@ -200,7 +200,7 @@ export default function CreateProject() { label="Grup" size="md" styles={{ - input: { + input: { border: `1px solid ${"#D6D8F6"}`, borderRadius: 10, }, @@ -413,9 +413,9 @@ export default function CreateProject() { }} activateOnClick={false} maxSize={100 * 1024 ** 2} - accept={['image/png', 'image/jpeg', 'image/heic', 'application/pdf', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']} + accept={['image/png', 'image/jpeg', 'application/pdf', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']} onReject={(files) => { - return toast.error('File yang diizinkan: .csv, .png, .jpg, .heic, .pdf, .doc, .docx, .xls, .xlsx dengan ukuran maksimal 100 MB') + return toast.error('File yang diizinkan: .csv, .png, .jpg, .pdf, .doc, .docx, .xls, .xlsx dengan ukuran maksimal 100 MB') }} > diff --git a/src/module/task/ui/add_file_detail_task.tsx b/src/module/task/ui/add_file_detail_task.tsx index 25183e3..f252803 100644 --- a/src/module/task/ui/add_file_detail_task.tsx +++ b/src/module/task/ui/add_file_detail_task.tsx @@ -107,9 +107,9 @@ export default function AddFileDetailTask() { }} activateOnClick={false} maxSize={100 * 1024 ** 2} - accept={['image/png', 'image/jpeg', 'image/heic', 'application/pdf', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']} + accept={['image/png', 'image/jpeg', 'application/pdf', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']} onReject={(files) => { - return toast.error('File yang diizinkan: .csv, .png, .jpg, .heic, .pdf, .doc, .docx, .xls, .xlsx dengan ukuran maksimal 100 MB') + return toast.error('File yang diizinkan: .csv, .png, .jpg, .pdf, .doc, .docx, .xls, .xlsx dengan ukuran maksimal 100 MB') }} > diff --git a/src/module/task/ui/create_task.tsx b/src/module/task/ui/create_task.tsx index 70f4c7a..d83564a 100644 --- a/src/module/task/ui/create_task.tsx +++ b/src/module/task/ui/create_task.tsx @@ -336,9 +336,9 @@ export default function CreateTask() { }} activateOnClick={false} maxSize={100 * 1024 ** 2} - accept={['image/png', 'image/jpeg', 'image/heic', 'application/pdf', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']} + accept={['image/png', 'image/jpeg', 'application/pdf', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']} onReject={(files) => { - return toast.error('File yang diizinkan: .csv, .png, .jpg, .heic, .pdf, .doc, .docx, .xls, .xlsx dengan ukuran maksimal 100 MB') + return toast.error('File yang diizinkan: .csv, .png, .jpg, .pdf, .doc, .docx, .xls, .xlsx dengan ukuran maksimal 100 MB') }} > diff --git a/src/module/user/member/ui/create_member.tsx b/src/module/user/member/ui/create_member.tsx index 7c78b48..64105d2 100644 --- a/src/module/user/member/ui/create_member.tsx +++ b/src/module/user/member/ui/create_member.tsx @@ -284,9 +284,9 @@ export default function CreateMember() { }} activateOnClick={false} maxSize={10 * 1024 ** 2} - accept={['image/png', 'image/jpeg', 'image/heic']} + accept={['image/png', 'image/jpeg']} onReject={(files) => { - return toast.error('File yang diizinkan: .png, .jpg, dan .heic dengan ukuran maksimal 10 MB') + return toast.error('File yang diizinkan: .png dan .jpg dengan ukuran maksimal 10 MB') }} > diff --git a/src/module/user/member/ui/edit_member.tsx b/src/module/user/member/ui/edit_member.tsx index d47b630..56b4599 100644 --- a/src/module/user/member/ui/edit_member.tsx +++ b/src/module/user/member/ui/edit_member.tsx @@ -216,9 +216,9 @@ export default function EditMember({ id }: { id: string }) { }} activateOnClick={false} maxSize={10 * 1024 ** 2} - accept={['image/png', 'image/jpeg', 'image/heic']} + accept={['image/png', 'image/jpeg']} onReject={(files) => { - return toast.error('File yang diizinkan: .png, .jpg, dan .heic dengan ukuran maksimal 10 MB') + return toast.error('File yang diizinkan: .png dan .jpg dengan ukuran maksimal 10 MB') }} > diff --git a/src/module/user/profile/ui/edit_profile.tsx b/src/module/user/profile/ui/edit_profile.tsx index e0e6750..9859221 100644 --- a/src/module/user/profile/ui/edit_profile.tsx +++ b/src/module/user/profile/ui/edit_profile.tsx @@ -179,10 +179,10 @@ export default function EditProfile() { }} activateOnClick={false} maxSize={10 * 1024 ** 2} - accept={["image/png", "image/jpeg", "image/heic"]} + accept={["image/png", "image/jpeg"]} onReject={(files) => { return toast.error( - "File yang diizinkan: .png, .jpg, dan .heic dengan ukuran maksimal 10 MB" + "File yang diizinkan: .png dan .jpg dengan ukuran maksimal 10 MB" ); }} > From 43c36f03cd8d2960475ef935085246f34780c9bf Mon Sep 17 00:00:00 2001 From: amel Date: Thu, 23 Jan 2025 13:56:12 +0800 Subject: [PATCH 5/5] upd: api version --- src/app/api/version-app/route.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/api/version-app/route.ts b/src/app/api/version-app/route.ts index bff3dab..524f12b 100644 --- a/src/app/api/version-app/route.ts +++ b/src/app/api/version-app/route.ts @@ -2,7 +2,7 @@ import { NextResponse } from "next/server"; export async function GET(request: Request) { try { - return NextResponse.json({ success: true, version: "1.1.3", tahap: "beta", update:"-resize profile image user (create anggota, edit anggota, edit profile)" }, { status: 200 }); + return NextResponse.json({ success: true, version: "1.1.4", tahap: "beta", update:"-resize profile image user (create anggota, edit anggota, edit profile) -menghilangkan image extensi heic" }, { status: 200 }); } catch (error) { console.error(error); return NextResponse.json({ success: false, version: "Gagal mendapatkan version, coba lagi nanti (error: 500)", reason: (error as Error).message, }, { status: 500 });