fix:news ticker api get, article get interceptor, category create parent mandatory

This commit is contained in:
Rama Priyanto 2025-05-25 22:17:10 +07:00
parent 30d7250abf
commit a614cbe33d
6 changed files with 65 additions and 53 deletions

View File

@ -74,6 +74,7 @@ export default function MasterCategoryTable() {
const [refresh, setRefresh] = useState(false);
const [tag, setTag] = useState("");
const [selectedParent, setSelectedParent] = useState<any>();
const [selectedParentValidation, setSelectedParentValidation] = useState("");
const formOptions = {
resolver: zodResolver(createArticleSchema),
@ -122,42 +123,46 @@ export default function MasterCategoryTable() {
};
const onSubmit = async (values: z.infer<typeof createArticleSchema>) => {
console.log("values,", values);
loading();
const formData = {
title: values.title,
statusId: 1,
parentId: selectedParent ? selectedParent.id : 0,
tags: values.tags.join(","),
description: values.description,
};
if (selectedParent) {
loading();
const formData = {
title: values.title,
statusId: 1,
parentId: selectedParent ? selectedParent.id : 0,
tags: values.tags.join(","),
description: values.description,
};
const response = await createCategory(formData);
const response = await createCategory(formData);
if (response?.error) {
error(response.message);
return false;
}
const categoryId = response?.data?.data?.id;
const formFiles = new FormData();
formFiles.append("files", files[0]);
const resFile = await uploadCategoryThumbnail(categoryId, formFiles);
if (resFile?.error) {
error(resFile.message);
return false;
}
close();
setRefresh(!refresh);
MySwal.fire({
title: "Sukses",
icon: "success",
confirmButtonColor: "#3085d6",
confirmButtonText: "OK",
}).then((result) => {
if (result.isConfirmed) {
if (response?.error) {
error(response.message);
return false;
}
});
const categoryId = response?.data?.data?.id;
const formFiles = new FormData();
formFiles.append("files", files[0]);
const resFile = await uploadCategoryThumbnail(categoryId, formFiles);
if (resFile?.error) {
error(resFile.message);
return false;
}
close();
setRefresh(!refresh);
MySwal.fire({
title: "Sukses",
icon: "success",
confirmButtonColor: "#3085d6",
confirmButtonText: "OK",
}).then((result) => {
if (result.isConfirmed) {
}
});
return false;
}
setSelectedParentValidation("Parent harus diisi");
};
const handleRemoveFile = (file: File) => {
@ -275,6 +280,11 @@ export default function MasterCategoryTable() {
name="sub-module"
options={listCategory}
/>
{selectedParentValidation !== "" && !selectedParent && (
<p className="text-red-400 text-sm">
{selectedParentValidation}
</p>
)}
</div>
<div className="flex flex-col gap-1">
<p className="text-sm mt-3">Tag Terkait</p>

View File

@ -17,6 +17,7 @@ export default function NewsTicker() {
search: "",
limit: "10",
sortBy: "created_at",
isPublish: true,
sort: "desc",
};
const response = await getListArticle(req);

View File

@ -141,19 +141,21 @@ export default function ArticleTable() {
const setupList = (data: any, type: string) => {
const temp = [];
for (const element of data) {
temp.push({
id: element.id,
label: element.title || element.fullname,
value: element.id,
});
}
if (type === "users") {
setUsers(temp);
}
if (data) {
for (const element of data) {
temp.push({
id: element.id,
label: element.title || element.fullname,
value: element.id,
});
}
if (type === "users") {
setUsers(temp);
}
if (type === "category") {
setCategories(temp);
if (type === "category") {
setCategories(temp);
}
}
};
@ -582,7 +584,7 @@ export default function ArticleTable() {
</PopoverContent>
</Popover>
</div>
<div className="flex flex-col gap-1 w-full lg:w-[120px]">
<div className="flex flex-col gap-1 w-full lg:w-[140px]">
<p className="font-semibold text-sm">End Date</p>
<Popover

View File

@ -3,7 +3,7 @@
"version": "0.0.1",
"private": true,
"scripts": {
"dev": "next dev",
"dev": "next dev -p 4000",
"build": "next build",
"start": "next start -p 4000",
"lint": "next lint"

View File

@ -147,9 +147,8 @@ export async function getCategoryPagination(data: any) {
Authorization: `Bearer ${token}`,
};
return await httpGet(
`/article-categories?limit=${data?.limit}&page=${data?.page}&title=${data?.search}`,
headers
return await httpGetInterceptor(
`/article-categories?limit=${data?.limit}&page=${data?.page}&title=${data?.search}`
);
}
@ -202,7 +201,7 @@ export async function getStatisticSummary() {
"content-type": "application/json",
Authorization: `Bearer ${token}`,
};
return await httpGet(`/articles/statistic/summary`, headers);
return await httpGetInterceptor(`/articles/statistic/summary`);
}
export async function submitApproval(data: {

View File

@ -43,9 +43,9 @@ axiosInterceptorInstance.interceptors.response.use(
if (error.response.status === 401 && !originalRequest._retry) {
originalRequest._retry = true;
const data = {
grantType: "refresh_token",
// grantType: "refresh_token",
refreshToken: refreshToken,
clientId: "mediahub-app",
// clientId: "web-humas",
};
console.log("refresh token ", data);
const res = await postSignIn(data);