Fix All Image Add Lazy Loading

This commit is contained in:
2025-09-19 10:41:18 +08:00
parent 9f72e94557
commit 068d8b1077
180 changed files with 390 additions and 323 deletions

View File

@@ -6,17 +6,22 @@ import { Context } from "elysia";
export default async function pegawaiFindMany(context: Context) {
const page = Number(context.query.page) || 1;
const limit = Number(context.query.limit) || 10;
const search = (context.query.search as string) || '';
const search = (context.query.search as string) || "";
const skip = (page - 1) * limit;
// Buat where clause
const where: any = { isActive: true };
const isActiveParam = context.query.isActive;
const where: any = {};
if (isActiveParam !== undefined) {
where.isActive = isActiveParam === "true";
}
// Tambahkan pencarian (jika ada)
if (search) {
where.OR = [
{ namaLengkap: { contains: search, mode: 'insensitive' } },
{ alamat: { contains: search, mode: 'insensitive' } },
{ namaLengkap: { contains: search, mode: "insensitive" } },
{ alamat: { contains: search, mode: "insensitive" } },
];
}
@@ -30,11 +35,11 @@ export default async function pegawaiFindMany(context: Context) {
},
skip,
take: limit,
orderBy: { posisi: { hierarki: 'asc' } },
orderBy: { posisi: { hierarki: "asc" } },
}),
prisma.pegawaiPPID.count({
where,
})
}),
]);
const totalPages = Math.ceil(total / limit);
@@ -58,4 +63,4 @@ export default async function pegawaiFindMany(context: Context) {
total: 0,
};
}
}
}

View File

@@ -34,6 +34,7 @@ export default async function pegawaiUpdate(context: Context) {
imageId,
alamat,
posisiId,
isActive,
} = body;
if (!id) {
@@ -102,7 +103,8 @@ export default async function pegawaiUpdate(context: Context) {
imageId,
telepon,
alamat,
posisiId
posisiId,
isActive,
},
include: {
image: true,

View File

@@ -20,14 +20,18 @@ async function posisiOrganisasiFindMany(context: Context) {
try {
const whereClause = {
...where,
isActive: true
isActive: true,
};
const [data, total] = await Promise.all([
prisma.posisiOrganisasiPPID.findMany({
where: whereClause,
skip: (page - 1) * limit,
take: limit,
...(limit === 0
? {} // kalau limit = 0 → ambil semua data (tanpa skip & take)
: {
skip: (page - 1) * limit,
take: limit,
}),
orderBy: { hierarki: "asc" },
}),
prisma.posisiOrganisasiPPID.count({ where: whereClause }),
@@ -35,15 +39,18 @@ async function posisiOrganisasiFindMany(context: Context) {
return {
success: true,
message: "Berhasil mengambil data posisi organisasi dengan pagination",
message:
limit === 0
? "Berhasil mengambil semua data posisi organisasi"
: "Berhasil mengambil data posisi organisasi dengan pagination",
data: data.map((item: any) => ({
id: item.id,
nama: item.nama,
deskripsi: item.deskripsi,
hierarki: item.hierarki,
})),
page,
totalPages: Math.ceil(total / limit),
page: limit === 0 ? 1 : page,
totalPages: limit === 0 ? 1 : Math.ceil(total / limit),
total,
};
} catch (e) {