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 [refresh, setRefresh] = useState(false);
const [tag, setTag] = useState(""); const [tag, setTag] = useState("");
const [selectedParent, setSelectedParent] = useState<any>(); const [selectedParent, setSelectedParent] = useState<any>();
const [selectedParentValidation, setSelectedParentValidation] = useState("");
const formOptions = { const formOptions = {
resolver: zodResolver(createArticleSchema), resolver: zodResolver(createArticleSchema),
@ -122,42 +123,46 @@ export default function MasterCategoryTable() {
}; };
const onSubmit = async (values: z.infer<typeof createArticleSchema>) => { const onSubmit = async (values: z.infer<typeof createArticleSchema>) => {
console.log("values,", values); if (selectedParent) {
loading(); loading();
const formData = { const formData = {
title: values.title, title: values.title,
statusId: 1, statusId: 1,
parentId: selectedParent ? selectedParent.id : 0, parentId: selectedParent ? selectedParent.id : 0,
tags: values.tags.join(","), tags: values.tags.join(","),
description: values.description, description: values.description,
}; };
const response = await createCategory(formData); const response = await createCategory(formData);
if (response?.error) { if (response?.error) {
error(response.message); error(response.message);
return false; 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) {
} }
}); 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) => { const handleRemoveFile = (file: File) => {
@ -275,6 +280,11 @@ export default function MasterCategoryTable() {
name="sub-module" name="sub-module"
options={listCategory} options={listCategory}
/> />
{selectedParentValidation !== "" && !selectedParent && (
<p className="text-red-400 text-sm">
{selectedParentValidation}
</p>
)}
</div> </div>
<div className="flex flex-col gap-1"> <div className="flex flex-col gap-1">
<p className="text-sm mt-3">Tag Terkait</p> <p className="text-sm mt-3">Tag Terkait</p>

View File

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

View File

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

View File

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

View File

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

View File

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