fix:news ticker api get, article get interceptor, category create parent mandatory
This commit is contained in:
parent
30d7250abf
commit
a614cbe33d
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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: {
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue