feat: update category, admin settings, management user

This commit is contained in:
hanif salafi 2025-06-22 12:08:08 +07:00
parent 4d3aaab4e2
commit b60ac3a9b4
5 changed files with 39 additions and 3 deletions

View File

@ -26,12 +26,13 @@ import {
import { useEffect, useState } from "react";
import {
AdministrationLevelList,
checkRolePlacementsAvailability,
getListCompetencies,
getListExperiences,
saveUserInternal,
saveUserRolePlacements,
} from "@/service/management-user/management-user";
import { loading } from "@/config/swal";
import { error, loading } from "@/config/swal";
import { Eye, EyeOff } from "lucide-react";
const FormSchema = z.object({
@ -134,6 +135,26 @@ export default function AddExpertForm() {
};
loading();
// check availability first
var placementArr: any[] = [];
placementRows.forEach((row: any) => {
placementArr.push({
roleId: Number(row.roleId),
userLevelId: Number(row.userLevelId),
});
});
const dataReqAvail = {
placements: placementArr,
};
const resAvail = await checkRolePlacementsAvailability(dataReqAvail);
if (resAvail?.error) {
close();
error(resAvail.message);
return false;
}
const res = await saveUserInternal(dataReq);
const resData = res?.data?.data;
const userProfileId = resData?.id;

View File

@ -67,6 +67,16 @@ const columns: ColumnDef<any>[] = [
</span>
),
},
{
id: "created",
accessorKey: "created",
header: "Dibuat Oleh",
cell: ({ row }) => (
<div className="flex flex-col items-center">
<span className="text-sm text-gray-500">{row.original.createdByName}</span><span className="text-xs font-bold">({row.original.createdByUserLevelName})</span>
</div>
),
},
{
id: "actions",
accessorKey: "action",

View File

@ -81,7 +81,7 @@ const ContentCategory = (props: { group?: string; type: string }) => {
alt="category"
width={2560}
height={1440}
src={category?.smallThumbnailLink}
src={category?.thumbnailLink}
className="w-full lg:h-[300px] h-40 object-cover group-hover:scale-110 transition-transform duration-300"
/>

View File

@ -152,7 +152,7 @@ export async function getTagsBySubCategoryId(subCategory: any) {
}
export async function listEnableCategory(type: any) {
const url = `media/categories/list/enable?enablePage=0&sort=desc&sortBy=id&type=${type}`;
const url = `media/categories/list?enablePage=0&sort=desc&sortBy=id&type=${type}`;
return httpGetInterceptor(url);
}

View File

@ -46,6 +46,11 @@ export async function saveUserInternal(data: any) {
return httpPostInterceptor(url, data);
}
export async function checkRolePlacementsAvailability(data: any) {
const url = "users/role-placements/availability";
return httpPostInterceptor(url, data);
}
export async function saveUserRolePlacements(data: any) {
const url = "users/role-placements";
return httpPostInterceptor(url, data);