fix: edit users
This commit is contained in:
parent
995a5db0b4
commit
dd2344a59f
|
|
@ -124,18 +124,18 @@ interface RoleData {
|
|||
}
|
||||
|
||||
const FormSchema = z.object({
|
||||
level: z.string({
|
||||
required_error: "Required",
|
||||
}),
|
||||
// level: z.string({
|
||||
// required_error: "Required",
|
||||
// }),
|
||||
fullname: z.string({
|
||||
required_error: "Required",
|
||||
}),
|
||||
username: z.string({
|
||||
required_error: "Required",
|
||||
}),
|
||||
role: z.string({
|
||||
required_error: "Required",
|
||||
}),
|
||||
// role: z.string({
|
||||
// required_error: "Required",
|
||||
// }),
|
||||
// nrp: z.string({
|
||||
// required_error: "Required",
|
||||
// }),
|
||||
|
|
@ -170,7 +170,6 @@ export default function EditUserForm() {
|
|||
const MySwal = withReactContent(Swal);
|
||||
const levelName = getCookiesDecrypt("ulnae");
|
||||
const [roleList, setRoleList] = useState<RoleData[]>([]);
|
||||
|
||||
const [userEducations, setUserEducations] = useState<any>();
|
||||
const [userSchools, setUserSchools] = useState<any>();
|
||||
const [userCompetencies, setUserCompetencies] = useState<any>();
|
||||
|
|
@ -189,7 +188,6 @@ export default function EditUserForm() {
|
|||
|
||||
const passwordVal = form.watch("password");
|
||||
const confPasswordVal = form.watch("confirmPassword");
|
||||
const selectedRole = form.watch("role");
|
||||
|
||||
useEffect(() => {
|
||||
getDataAdditional();
|
||||
|
|
@ -198,12 +196,8 @@ export default function EditUserForm() {
|
|||
|
||||
const initData = async () => {
|
||||
loading();
|
||||
|
||||
// 1️⃣ Ambil level dulu
|
||||
const levels = await initFetch();
|
||||
console.log("LEVEL READY:", levels);
|
||||
|
||||
// 2️⃣ Ambil user
|
||||
const response = await getUserById(String(id));
|
||||
close();
|
||||
|
||||
|
|
@ -225,8 +219,8 @@ export default function EditUserForm() {
|
|||
address: user.address ?? "",
|
||||
phoneNumber: user.phoneNumber ?? "",
|
||||
// nrp: user.identityNumber ?? "",
|
||||
level: String(user.userLevelId),
|
||||
role: String(user.userRoleId ?? ""),
|
||||
// level: String(user.userLevelId),
|
||||
// role: String(user.userRoleId ?? ""),
|
||||
password: "",
|
||||
confirmPassword: "",
|
||||
sns: [],
|
||||
|
|
@ -281,7 +275,7 @@ export default function EditUserForm() {
|
|||
}));
|
||||
|
||||
setRoleList(levelsArr);
|
||||
return levelsArr; // ⬅️ PENTING
|
||||
return levelsArr;
|
||||
};
|
||||
|
||||
async function getDataAdditional() {
|
||||
|
|
@ -301,49 +295,6 @@ export default function EditUserForm() {
|
|||
return;
|
||||
}
|
||||
|
||||
const roles =
|
||||
levelName == "MABES POLRI"
|
||||
? [
|
||||
{
|
||||
id: "ADM-ID",
|
||||
name: "Admin",
|
||||
},
|
||||
{
|
||||
id: "APP-ID",
|
||||
name: "Approver",
|
||||
},
|
||||
{
|
||||
id: "CON-ID",
|
||||
name: "Kontributor",
|
||||
},
|
||||
{
|
||||
id: "SPV-ID",
|
||||
name: "Supervisor Feedback Center",
|
||||
},
|
||||
{
|
||||
id: "OPT-ID",
|
||||
name: "Operator Feedback Center",
|
||||
},
|
||||
{
|
||||
id: "KKUR-ID",
|
||||
name: "Koor Kurator",
|
||||
},
|
||||
{
|
||||
id: "KUR-ID",
|
||||
name: "Kurator",
|
||||
},
|
||||
]
|
||||
: [
|
||||
{
|
||||
id: "APP-ID",
|
||||
name: "Approver",
|
||||
},
|
||||
{
|
||||
id: "CON-ID",
|
||||
name: "Kontributor",
|
||||
},
|
||||
];
|
||||
|
||||
async function save(data: z.infer<typeof FormSchema>) {
|
||||
const req = {
|
||||
fullname: data.fullname,
|
||||
|
|
@ -351,8 +302,8 @@ export default function EditUserForm() {
|
|||
email: data.email,
|
||||
address: data.address,
|
||||
phoneNumber: data.phoneNumber,
|
||||
userLevelId: Number(data.level),
|
||||
userRoleId: userRoleId,
|
||||
// userLevelId: Number(data.level),
|
||||
// userRoleId: userRoleId,
|
||||
};
|
||||
|
||||
// let req: any = {
|
||||
|
|
@ -420,7 +371,7 @@ export default function EditUserForm() {
|
|||
className="space-y-6 bg-white p-10 w-full"
|
||||
>
|
||||
<p className="text-xl">Data User</p>
|
||||
<FormField
|
||||
{/* <FormField
|
||||
control={form.control}
|
||||
name="level"
|
||||
render={({ field }) => (
|
||||
|
|
@ -478,7 +429,7 @@ export default function EditUserForm() {
|
|||
<FormMessage />
|
||||
</FormItem>
|
||||
)}
|
||||
/>
|
||||
/> */}
|
||||
<FormField
|
||||
control={form.control}
|
||||
name="fullname"
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ const BannerListTable = () => {
|
|||
|
||||
const [sorting, setSorting] = React.useState<SortingState>([]);
|
||||
const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>(
|
||||
[]
|
||||
[],
|
||||
);
|
||||
const [columnVisibility, setColumnVisibility] =
|
||||
React.useState<VisibilityState>({});
|
||||
|
|
@ -44,7 +44,7 @@ const BannerListTable = () => {
|
|||
pageIndex: 0,
|
||||
pageSize: Number(showData),
|
||||
});
|
||||
const [getData, setGetData] = React.useState<any>([]);
|
||||
const [getData, setGetData] = React.useState<any[]>([]);
|
||||
const dataChange = searchParams?.get("dataChange");
|
||||
|
||||
const [page, setPage] = React.useState(1);
|
||||
|
|
@ -90,17 +90,38 @@ const BannerListTable = () => {
|
|||
}, [page, showData]);
|
||||
|
||||
async function getListBanner() {
|
||||
loading();
|
||||
let temp: any;
|
||||
try {
|
||||
loading();
|
||||
|
||||
const response = await listBanner();
|
||||
const data = response?.data?.data?.content;
|
||||
console.log("banner", data);
|
||||
setGetData(data);
|
||||
const response = await listBanner();
|
||||
|
||||
close();
|
||||
const data = Array.isArray(response?.data?.data?.content)
|
||||
? response.data.data.content
|
||||
: [];
|
||||
|
||||
console.log("banner", data);
|
||||
|
||||
setGetData(data);
|
||||
} catch (error) {
|
||||
console.error("Error fetching banner list:", error);
|
||||
setGetData([]);
|
||||
} finally {
|
||||
close();
|
||||
}
|
||||
}
|
||||
|
||||
// async function getListBanner() {
|
||||
// loading();
|
||||
// let temp: any;
|
||||
|
||||
// const response = await listBanner();
|
||||
// const data = response?.data?.data?.content;
|
||||
// console.log("banner", data);
|
||||
// setGetData(data);
|
||||
|
||||
// close();
|
||||
// }
|
||||
|
||||
return (
|
||||
<>
|
||||
<Table className="overflow-hidden mt-10">
|
||||
|
|
@ -113,7 +134,7 @@ const BannerListTable = () => {
|
|||
? null
|
||||
: flexRender(
|
||||
header.column.columnDef.header,
|
||||
header.getContext()
|
||||
header.getContext(),
|
||||
)}
|
||||
</TableHead>
|
||||
))}
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ const ContentListBanner = () => {
|
|||
const [totalData, setTotalData] = React.useState<number>(1);
|
||||
const [sorting, setSorting] = React.useState<SortingState>([]);
|
||||
const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>(
|
||||
[]
|
||||
[],
|
||||
);
|
||||
const [columnVisibility, setColumnVisibility] =
|
||||
React.useState<VisibilityState>({});
|
||||
|
|
@ -60,7 +60,7 @@ const ContentListBanner = () => {
|
|||
try {
|
||||
const res = await listDataMedia(0, "100", "", "", "");
|
||||
const banners = res?.data?.data?.content?.filter(
|
||||
(item: any) => item.isBanner
|
||||
(item: any) => item.isBanner,
|
||||
);
|
||||
setBannerCount(banners?.length || 0);
|
||||
|
||||
|
|
@ -117,31 +117,67 @@ const ContentListBanner = () => {
|
|||
async function fetchData() {
|
||||
try {
|
||||
loading();
|
||||
|
||||
const res = await listDataMedia(
|
||||
page - 1,
|
||||
showData,
|
||||
searchQuery,
|
||||
categoryFilter?.sort().join(","),
|
||||
statusFilter?.sort().join(",")
|
||||
statusFilter?.sort().join(","),
|
||||
);
|
||||
|
||||
const data = res?.data?.data;
|
||||
const contentData = data?.content;
|
||||
const rawData = res?.data?.data;
|
||||
|
||||
const contentData = Array.isArray(rawData?.content)
|
||||
? rawData.content
|
||||
: [];
|
||||
|
||||
contentData.forEach((item: any, index: number) => {
|
||||
item.no = (page - 1) * Number(showData) + index + 1;
|
||||
});
|
||||
|
||||
console.log("contentData : ", data);
|
||||
|
||||
setData(contentData);
|
||||
setTotalData(data?.totalElements);
|
||||
setTotalPage(data?.totalPages);
|
||||
setTotalData(rawData?.totalElements ?? 0);
|
||||
setTotalPage(rawData?.totalPages ?? 1);
|
||||
|
||||
close();
|
||||
} catch (error) {
|
||||
console.error("Error fetching tasks:", error);
|
||||
close();
|
||||
console.error("Error fetching banner data:", error);
|
||||
setData([]);
|
||||
setTotalData(0);
|
||||
setTotalPage(1);
|
||||
}
|
||||
}
|
||||
|
||||
// async function fetchData() {
|
||||
// try {
|
||||
// loading();
|
||||
// const res = await listDataMedia(
|
||||
// page - 1,
|
||||
// showData,
|
||||
// searchQuery,
|
||||
// categoryFilter?.sort().join(","),
|
||||
// statusFilter?.sort().join(",")
|
||||
// );
|
||||
|
||||
// const data = res?.data?.data;
|
||||
// const contentData = data?.content;
|
||||
// contentData.forEach((item: any, index: number) => {
|
||||
// item.no = (page - 1) * Number(showData) + index + 1;
|
||||
// });
|
||||
|
||||
// console.log("contentData : ", data);
|
||||
|
||||
// setData(contentData);
|
||||
// setTotalData(data?.totalElements);
|
||||
// setTotalPage(data?.totalPages);
|
||||
// close();
|
||||
// } catch (error) {
|
||||
// console.error("Error fetching tasks:", error);
|
||||
// }
|
||||
// }
|
||||
|
||||
React.useEffect(() => {
|
||||
getCategories();
|
||||
}, []);
|
||||
|
|
@ -176,7 +212,7 @@ const ContentListBanner = () => {
|
|||
|
||||
const handleSelect = (id: number) => {
|
||||
setSelectedItems((prev) =>
|
||||
prev.includes(id) ? prev.filter((item) => item !== id) : [...prev, id]
|
||||
prev.includes(id) ? prev.filter((item) => item !== id) : [...prev, id],
|
||||
);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ const AdminTagTable = () => {
|
|||
const [totalData, setTotalData] = React.useState<number>(1);
|
||||
const [sorting, setSorting] = React.useState<SortingState>([]);
|
||||
const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>(
|
||||
[]
|
||||
[],
|
||||
);
|
||||
const [columnVisibility, setColumnVisibility] =
|
||||
React.useState<VisibilityState>({});
|
||||
|
|
@ -95,24 +95,33 @@ const AdminTagTable = () => {
|
|||
try {
|
||||
loading();
|
||||
const response = await getTags();
|
||||
const data = response?.data?.data;
|
||||
|
||||
const data = Array.isArray(response?.data?.data)
|
||||
? response.data.data
|
||||
: [];
|
||||
|
||||
data.forEach((item: any, index: number) => {
|
||||
item.no = (page - 1) * 10 + index + 1;
|
||||
});
|
||||
|
||||
setDataTable(data);
|
||||
setTotalData(data?.length);
|
||||
setTotalData(data.length);
|
||||
setTotalPage(1);
|
||||
close();
|
||||
} catch (error) {
|
||||
console.error("Error fetching tasks:", error);
|
||||
close();
|
||||
console.error("Error fetching tags:", error);
|
||||
setDataTable([]);
|
||||
setTotalData(0);
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="w-full overflow-x-auto bg-white p-4 rounded-sm space-y-3">
|
||||
<div className="flex justify-between mb-10 items-center">
|
||||
<p className="text-xl font-medium text-default-900">{t("tags", { defaultValue: "Tags" })}</p>
|
||||
<p className="text-xl font-medium text-default-900">
|
||||
{t("tags", { defaultValue: "Tags" })}
|
||||
</p>
|
||||
<CreateFAQModal />
|
||||
</div>
|
||||
|
||||
|
|
@ -126,7 +135,7 @@ const AdminTagTable = () => {
|
|||
? null
|
||||
: flexRender(
|
||||
header.column.columnDef.header,
|
||||
header.getContext()
|
||||
header.getContext(),
|
||||
)}
|
||||
</TableHead>
|
||||
))}
|
||||
|
|
@ -134,8 +143,8 @@ const AdminTagTable = () => {
|
|||
))}
|
||||
</TableHeader>
|
||||
<TableBody>
|
||||
{table.getRowModel().rows?.length ? (
|
||||
table.getRowModel().rows.map((row) => (
|
||||
{table?.getRowModel()?.rows?.length ? (
|
||||
table?.getRowModel()?.rows.map((row) => (
|
||||
<TableRow
|
||||
key={row.id}
|
||||
data-state={row.getIsSelected() && "selected"}
|
||||
|
|
|
|||
28
lib/menus.ts
28
lib/menus.ts
|
|
@ -238,20 +238,20 @@ export function getMenuList(pathname: string, t: any): Group[] {
|
|||
icon: "heroicons:arrow-trending-up",
|
||||
children: [],
|
||||
},
|
||||
// {
|
||||
// href: "/admin/settings/tag",
|
||||
// label: "Tag",
|
||||
// active: pathname === "/admin/settings/tag",
|
||||
// icon: "heroicons:arrow-trending-up",
|
||||
// children: [],
|
||||
// },
|
||||
// {
|
||||
// href: "/admin/settings/banner",
|
||||
// label: "Banner",
|
||||
// active: pathname === "/admin/settings/banner",
|
||||
// icon: "heroicons:arrow-trending-up",
|
||||
// children: [],
|
||||
// },
|
||||
{
|
||||
href: "/admin/settings/tag",
|
||||
label: "Tag",
|
||||
active: pathname === "/admin/settings/tag",
|
||||
icon: "heroicons:arrow-trending-up",
|
||||
children: [],
|
||||
},
|
||||
{
|
||||
href: "/admin/settings/banner",
|
||||
label: "Banner",
|
||||
active: pathname === "/admin/settings/banner",
|
||||
icon: "heroicons:arrow-trending-up",
|
||||
children: [],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
|
|
|
|||
Loading…
Reference in New Issue