Merge branch 'dev-sabda-v2' of https://gitlab.com/hanifsalafi/mediahub_redesign
This commit is contained in:
commit
b14cc43bbe
|
|
@ -94,9 +94,7 @@ const ContentListBanner = () => {
|
||||||
const [selectedItems, setSelectedItems] = React.useState<number[]>([]);
|
const [selectedItems, setSelectedItems] = React.useState<number[]>([]);
|
||||||
const [page, setPage] = React.useState(1);
|
const [page, setPage] = React.useState(1);
|
||||||
const [totalPage, setTotalPage] = React.useState(1);
|
const [totalPage, setTotalPage] = React.useState(1);
|
||||||
|
const [searchQuery, setSearchQuery] = React.useState("");
|
||||||
let typingTimer: any;
|
|
||||||
const doneTypingInterval = 1500;
|
|
||||||
|
|
||||||
const handleKeyUp = () => {
|
const handleKeyUp = () => {
|
||||||
clearTimeout(typingTimer);
|
clearTimeout(typingTimer);
|
||||||
|
|
@ -108,6 +106,21 @@ const ContentListBanner = () => {
|
||||||
typingTimer = setTimeout(doneTyping, doneTypingInterval);
|
typingTimer = setTimeout(doneTyping, doneTypingInterval);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let typingTimer: NodeJS.Timeout;
|
||||||
|
const doneTypingInterval = 1500;
|
||||||
|
|
||||||
|
const handleTyping = () => {
|
||||||
|
clearTimeout(typingTimer);
|
||||||
|
typingTimer = setTimeout(() => {
|
||||||
|
setPage(1);
|
||||||
|
fetchData();
|
||||||
|
}, doneTypingInterval);
|
||||||
|
};
|
||||||
|
|
||||||
|
React.useEffect(() => {
|
||||||
|
fetchData();
|
||||||
|
}, [categoryFilter, statusFilter]);
|
||||||
|
|
||||||
async function doneTyping() {
|
async function doneTyping() {
|
||||||
fetchData();
|
fetchData();
|
||||||
}
|
}
|
||||||
|
|
@ -133,10 +146,11 @@ const ContentListBanner = () => {
|
||||||
const res = await listDataMedia(
|
const res = await listDataMedia(
|
||||||
page - 1,
|
page - 1,
|
||||||
showData,
|
showData,
|
||||||
"",
|
searchQuery,
|
||||||
categoryFilter?.sort().join(","),
|
categoryFilter?.sort().join(","),
|
||||||
statusFilter?.sort().join(",")
|
statusFilter?.sort().join(",")
|
||||||
);
|
);
|
||||||
|
|
||||||
const data = res?.data?.data;
|
const data = res?.data?.data;
|
||||||
const contentData = data?.content;
|
const contentData = data?.content;
|
||||||
contentData.forEach((item: any, index: number) => {
|
contentData.forEach((item: any, index: number) => {
|
||||||
|
|
@ -224,10 +238,19 @@ const ContentListBanner = () => {
|
||||||
<Input
|
<Input
|
||||||
type="text"
|
type="text"
|
||||||
placeholder="Search"
|
placeholder="Search"
|
||||||
onKeyUp={handleKeyUp}
|
value={searchQuery}
|
||||||
onKeyDown={handleKeyDown}
|
onChange={(e) => {
|
||||||
|
setSearchQuery(e.target.value);
|
||||||
|
handleTyping();
|
||||||
|
}}
|
||||||
className="max-w-[300px]"
|
className="max-w-[300px]"
|
||||||
|
onKeyDown={(e) => {
|
||||||
|
if (e.key === "Enter") {
|
||||||
|
fetchData();
|
||||||
|
}
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{/* <div className="flex flex-row gap-2">
|
{/* <div className="flex flex-row gap-2">
|
||||||
<DropdownMenu>
|
<DropdownMenu>
|
||||||
<DropdownMenuTrigger asChild>
|
<DropdownMenuTrigger asChild>
|
||||||
|
|
@ -393,9 +416,12 @@ const ContentListBanner = () => {
|
||||||
alt={item.title}
|
alt={item.title}
|
||||||
className="w-full h-48 object-cover"
|
className="w-full h-48 object-cover"
|
||||||
/>
|
/>
|
||||||
<div className="p-3">
|
<Link
|
||||||
<h4 className="font-semibold text-sm truncate">{item.title}</h4>
|
href={`/contributor/content/image/detail/${item?.id}`}
|
||||||
</div>
|
className="p-3"
|
||||||
|
>
|
||||||
|
<h4 className="font-semibold text-sm">{item.title}</h4>
|
||||||
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -98,16 +98,21 @@ const PopUpListTable = () => {
|
||||||
loading();
|
loading();
|
||||||
let temp: any;
|
let temp: any;
|
||||||
|
|
||||||
const response = await listDataPopUp(
|
// const response = await listDataPopUp(
|
||||||
page - 1,
|
// page - 1,
|
||||||
showData,
|
// showData,
|
||||||
"",
|
// "",
|
||||||
categoryFilter?.sort().join(","),
|
// categoryFilter?.sort().join(","),
|
||||||
statusFilter?.sort().join(",")
|
// statusFilter?.sort().join(",")
|
||||||
);
|
// );
|
||||||
const data = response?.data?.data?.content;
|
// const data = response?.data?.data?.content;
|
||||||
console.log("banner", data);
|
// console.log("banner", data);
|
||||||
setGetData(data);
|
// setGetData(data);
|
||||||
|
|
||||||
|
const response = await listBanner();
|
||||||
|
const data = response?.data?.data?.content;
|
||||||
|
console.log("banner", data);
|
||||||
|
setGetData(data);
|
||||||
|
|
||||||
close();
|
close();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -94,9 +94,10 @@ const ContentListPopUp = () => {
|
||||||
const [selectedItems, setSelectedItems] = React.useState<number[]>([]);
|
const [selectedItems, setSelectedItems] = React.useState<number[]>([]);
|
||||||
const [page, setPage] = React.useState(1);
|
const [page, setPage] = React.useState(1);
|
||||||
const [totalPage, setTotalPage] = React.useState(1);
|
const [totalPage, setTotalPage] = React.useState(1);
|
||||||
|
const [searchQuery, setSearchQuery] = React.useState("");
|
||||||
|
|
||||||
let typingTimer: any;
|
let typingTimer: NodeJS.Timeout;
|
||||||
const doneTypingInterval = 1500;
|
const doneTypingInterval = 2000;
|
||||||
|
|
||||||
const handleKeyUp = () => {
|
const handleKeyUp = () => {
|
||||||
clearTimeout(typingTimer);
|
clearTimeout(typingTimer);
|
||||||
|
|
@ -105,9 +106,16 @@ const ContentListPopUp = () => {
|
||||||
|
|
||||||
const handleKeyDown = () => {
|
const handleKeyDown = () => {
|
||||||
clearTimeout(typingTimer);
|
clearTimeout(typingTimer);
|
||||||
typingTimer = setTimeout(doneTyping, doneTypingInterval);
|
typingTimer = setTimeout(() => {
|
||||||
|
setPage(1);
|
||||||
|
fetchData();
|
||||||
|
}, doneTypingInterval);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
React.useEffect(() => {
|
||||||
|
fetchData();
|
||||||
|
}, [categoryFilter, statusFilter]);
|
||||||
|
|
||||||
async function doneTyping() {
|
async function doneTyping() {
|
||||||
fetchData();
|
fetchData();
|
||||||
}
|
}
|
||||||
|
|
@ -127,13 +135,40 @@ const ContentListPopUp = () => {
|
||||||
});
|
});
|
||||||
}, [page, showData]);
|
}, [page, showData]);
|
||||||
|
|
||||||
|
// async function fetchData() {
|
||||||
|
// try {
|
||||||
|
// loading();
|
||||||
|
// const res = await listDataPopUp(
|
||||||
|
// page - 1,
|
||||||
|
// showData,
|
||||||
|
// "",
|
||||||
|
// 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);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
async function fetchData() {
|
async function fetchData() {
|
||||||
try {
|
try {
|
||||||
loading();
|
loading();
|
||||||
const res = await listDataPopUp(
|
const res = await listDataMedia(
|
||||||
page - 1,
|
page - 1,
|
||||||
showData,
|
showData,
|
||||||
"",
|
searchQuery, // <-- gunakan nilai pencarian
|
||||||
categoryFilter?.sort().join(","),
|
categoryFilter?.sort().join(","),
|
||||||
statusFilter?.sort().join(",")
|
statusFilter?.sort().join(",")
|
||||||
);
|
);
|
||||||
|
|
@ -224,10 +259,19 @@ const ContentListPopUp = () => {
|
||||||
<Input
|
<Input
|
||||||
type="text"
|
type="text"
|
||||||
placeholder="Search"
|
placeholder="Search"
|
||||||
onKeyUp={handleKeyUp}
|
value={searchQuery}
|
||||||
onKeyDown={handleKeyDown}
|
onChange={(e) => {
|
||||||
|
setSearchQuery(e.target.value);
|
||||||
|
handleKeyDown();
|
||||||
|
}}
|
||||||
|
onKeyDown={(e) => {
|
||||||
|
if (e.key === "Enter") {
|
||||||
|
fetchData();
|
||||||
|
}
|
||||||
|
}}
|
||||||
className="max-w-[300px]"
|
className="max-w-[300px]"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{/* <div className="flex flex-row gap-2">
|
{/* <div className="flex flex-row gap-2">
|
||||||
<DropdownMenu>
|
<DropdownMenu>
|
||||||
<DropdownMenuTrigger asChild>
|
<DropdownMenuTrigger asChild>
|
||||||
|
|
@ -393,9 +437,12 @@ const ContentListPopUp = () => {
|
||||||
alt={item.title}
|
alt={item.title}
|
||||||
className="w-full h-48 object-cover"
|
className="w-full h-48 object-cover"
|
||||||
/>
|
/>
|
||||||
<div className="p-3">
|
<Link
|
||||||
<h4 className="font-semibold text-sm truncate">{item.title}</h4>
|
href={`/contributor/content/image/detail/${item?.id}`}
|
||||||
</div>
|
className="p-3"
|
||||||
|
>
|
||||||
|
<h4 className="font-semibold text-sm">{item.title}</h4>
|
||||||
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -323,10 +323,11 @@ const FilterPage = () => {
|
||||||
let filter = [...categoryFilter];
|
let filter = [...categoryFilter];
|
||||||
|
|
||||||
if (e) {
|
if (e) {
|
||||||
filter = [...categoryFilter, String(id)];
|
filter = [...filter, String(id)];
|
||||||
} else {
|
} else {
|
||||||
filter.splice(categoryFilter.indexOf(id), 1);
|
filter = filter.filter((item) => item !== String(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("checkbox filter", filter);
|
console.log("checkbox filter", filter);
|
||||||
setCategoryFilter(filter);
|
setCategoryFilter(filter);
|
||||||
router.push(`?category=${filter.join("&")}`);
|
router.push(`?category=${filter.join("&")}`);
|
||||||
|
|
|
||||||
|
|
@ -320,10 +320,11 @@ const FilterPage = () => {
|
||||||
let filter = [...categoryFilter];
|
let filter = [...categoryFilter];
|
||||||
|
|
||||||
if (e) {
|
if (e) {
|
||||||
filter = [...categoryFilter, String(id)];
|
filter = [...filter, String(id)];
|
||||||
} else {
|
} else {
|
||||||
filter.splice(categoryFilter.indexOf(id), 1);
|
filter = filter.filter((item) => item !== String(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("checkbox filter", filter);
|
console.log("checkbox filter", filter);
|
||||||
setCategoryFilter(filter);
|
setCategoryFilter(filter);
|
||||||
router.push(`?category=${filter.join("&")}`);
|
router.push(`?category=${filter.join("&")}`);
|
||||||
|
|
|
||||||
|
|
@ -320,10 +320,11 @@ const FilterPage = () => {
|
||||||
let filter = [...categoryFilter];
|
let filter = [...categoryFilter];
|
||||||
|
|
||||||
if (e) {
|
if (e) {
|
||||||
filter = [...categoryFilter, String(id)];
|
filter = [...filter, String(id)];
|
||||||
} else {
|
} else {
|
||||||
filter.splice(categoryFilter.indexOf(id), 1);
|
filter = filter.filter((item) => item !== String(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("checkbox filter", filter);
|
console.log("checkbox filter", filter);
|
||||||
setCategoryFilter(filter);
|
setCategoryFilter(filter);
|
||||||
router.push(`?category=${filter.join("&")}`);
|
router.push(`?category=${filter.join("&")}`);
|
||||||
|
|
|
||||||
|
|
@ -314,10 +314,11 @@ const FilterPage = () => {
|
||||||
let filter = [...categoryFilter];
|
let filter = [...categoryFilter];
|
||||||
|
|
||||||
if (e) {
|
if (e) {
|
||||||
filter = [...categoryFilter, String(id)];
|
filter = [...filter, String(id)];
|
||||||
} else {
|
} else {
|
||||||
filter.splice(categoryFilter.indexOf(id), 1);
|
filter = filter.filter((item) => item !== String(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("checkbox filter", filter);
|
console.log("checkbox filter", filter);
|
||||||
setCategoryFilter(filter);
|
setCategoryFilter(filter);
|
||||||
router.push(`?category=${filter.join("&")}`);
|
router.push(`?category=${filter.join("&")}`);
|
||||||
|
|
|
||||||
|
|
@ -319,14 +319,15 @@ const FilterPage = () => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleCategoryFilter = (e: boolean, id: string) => {
|
const handleCategoryFilter = (e: boolean, id: string) => {
|
||||||
let filter = [...categoryFilter];
|
let filter = [...categoryFilter];
|
||||||
|
|
||||||
if (e) {
|
if (e) {
|
||||||
filter = [...categoryFilter, String(id)];
|
filter = [...filter, String(id)];
|
||||||
} else {
|
} else {
|
||||||
filter.splice(categoryFilter.indexOf(id), 1);
|
filter = filter.filter((item) => item !== String(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("checkbox filter", filter);
|
console.log("checkbox filter", filter);
|
||||||
setCategoryFilter(filter);
|
setCategoryFilter(filter);
|
||||||
router.push(`?category=${filter.join("&")}`);
|
router.push(`?category=${filter.join("&")}`);
|
||||||
|
|
|
||||||
|
|
@ -311,10 +311,11 @@ const FilterPage = () => {
|
||||||
let filter = [...categoryFilter];
|
let filter = [...categoryFilter];
|
||||||
|
|
||||||
if (e) {
|
if (e) {
|
||||||
filter = [...categoryFilter, String(id)];
|
filter = [...filter, String(id)];
|
||||||
} else {
|
} else {
|
||||||
filter.splice(categoryFilter.indexOf(id), 1);
|
filter = filter.filter((item) => item !== String(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("checkbox filter", filter);
|
console.log("checkbox filter", filter);
|
||||||
setCategoryFilter(filter);
|
setCategoryFilter(filter);
|
||||||
router.push(`?category=${filter.join("&")}`);
|
router.push(`?category=${filter.join("&")}`);
|
||||||
|
|
|
||||||
|
|
@ -303,14 +303,15 @@ const FilterPage = () => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleCategoryFilter = (e: boolean, id: string) => {
|
const handleCategoryFilter = (e: boolean, id: string) => {
|
||||||
let filter = [...categoryFilter];
|
let filter = [...categoryFilter];
|
||||||
|
|
||||||
if (e) {
|
if (e) {
|
||||||
filter = [...categoryFilter, String(id)];
|
filter = [...filter, String(id)];
|
||||||
} else {
|
} else {
|
||||||
filter.splice(categoryFilter.indexOf(id), 1);
|
filter = filter.filter((item) => item !== String(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("checkbox filter", filter);
|
console.log("checkbox filter", filter);
|
||||||
setCategoryFilter(filter);
|
setCategoryFilter(filter);
|
||||||
router.push(`?category=${filter.join("&")}`);
|
router.push(`?category=${filter.join("&")}`);
|
||||||
|
|
|
||||||
|
|
@ -303,10 +303,11 @@ const FilterPage = () => {
|
||||||
let filter = [...categoryFilter];
|
let filter = [...categoryFilter];
|
||||||
|
|
||||||
if (e) {
|
if (e) {
|
||||||
filter = [...categoryFilter, String(id)];
|
filter = [...filter, String(id)];
|
||||||
} else {
|
} else {
|
||||||
filter.splice(categoryFilter.indexOf(id), 1);
|
filter = filter.filter((item) => item !== String(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("checkbox filter", filter);
|
console.log("checkbox filter", filter);
|
||||||
setCategoryFilter(filter);
|
setCategoryFilter(filter);
|
||||||
router.push(`?category=${filter.join("&")}`);
|
router.push(`?category=${filter.join("&")}`);
|
||||||
|
|
|
||||||
|
|
@ -325,10 +325,11 @@ const FilterPage = () => {
|
||||||
let filter = [...categoryFilter];
|
let filter = [...categoryFilter];
|
||||||
|
|
||||||
if (e) {
|
if (e) {
|
||||||
filter = [...categoryFilter, String(id)];
|
filter = [...filter, String(id)];
|
||||||
} else {
|
} else {
|
||||||
filter.splice(categoryFilter.indexOf(id), 1);
|
filter = filter.filter((item) => item !== String(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("checkbox filter", filter);
|
console.log("checkbox filter", filter);
|
||||||
setCategoryFilter(filter);
|
setCategoryFilter(filter);
|
||||||
router.push(`?category=${filter.join("&")}`);
|
router.push(`?category=${filter.join("&")}`);
|
||||||
|
|
|
||||||
|
|
@ -326,10 +326,11 @@ const FilterPage = () => {
|
||||||
let filter = [...categoryFilter];
|
let filter = [...categoryFilter];
|
||||||
|
|
||||||
if (e) {
|
if (e) {
|
||||||
filter = [...categoryFilter, String(id)];
|
filter = [...filter, String(id)];
|
||||||
} else {
|
} else {
|
||||||
filter.splice(categoryFilter.indexOf(id), 1);
|
filter = filter.filter((item) => item !== String(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("checkbox filter", filter);
|
console.log("checkbox filter", filter);
|
||||||
setCategoryFilter(filter);
|
setCategoryFilter(filter);
|
||||||
router.push(`?category=${filter.join("&")}`);
|
router.push(`?category=${filter.join("&")}`);
|
||||||
|
|
|
||||||
|
|
@ -329,10 +329,11 @@ const FilterPage = () => {
|
||||||
let filter = [...categoryFilter];
|
let filter = [...categoryFilter];
|
||||||
|
|
||||||
if (e) {
|
if (e) {
|
||||||
filter = [...categoryFilter, String(id)];
|
filter = [...filter, String(id)];
|
||||||
} else {
|
} else {
|
||||||
filter.splice(categoryFilter.indexOf(id), 1);
|
filter = filter.filter((item) => item !== String(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("checkbox filter", filter);
|
console.log("checkbox filter", filter);
|
||||||
setCategoryFilter(filter);
|
setCategoryFilter(filter);
|
||||||
router.push(`?category=${filter.join("&")}`);
|
router.push(`?category=${filter.join("&")}`);
|
||||||
|
|
|
||||||
|
|
@ -319,10 +319,11 @@ const FilterPage = () => {
|
||||||
let filter = [...categoryFilter];
|
let filter = [...categoryFilter];
|
||||||
|
|
||||||
if (e) {
|
if (e) {
|
||||||
filter = [...categoryFilter, String(id)];
|
filter = [...filter, String(id)];
|
||||||
} else {
|
} else {
|
||||||
filter.splice(categoryFilter.indexOf(id), 1);
|
filter = filter.filter((item) => item !== String(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("checkbox filter", filter);
|
console.log("checkbox filter", filter);
|
||||||
setCategoryFilter(filter);
|
setCategoryFilter(filter);
|
||||||
router.push(`?category=${filter.join("&")}`);
|
router.push(`?category=${filter.join("&")}`);
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ import Image from "next/image";
|
||||||
const regions = [
|
const regions = [
|
||||||
{ name: "ITWASUM POLRI", slug: "itwasum", logo: "/logo/satker/ITWASUM.png" },
|
{ name: "ITWASUM POLRI", slug: "itwasum", logo: "/logo/satker/ITWASUM.png" },
|
||||||
{
|
{
|
||||||
name: "BAINTELKAM POLRI",
|
name: "BAINTELKAM POLRI ",
|
||||||
slug: "baintelkam",
|
slug: "baintelkam",
|
||||||
logo: "/logo/satker/BAINTELKAM.png",
|
logo: "/logo/satker/BAINTELKAM.png",
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@ export async function getPublicCategoryData(
|
||||||
page: number = 1
|
page: number = 1
|
||||||
) {
|
) {
|
||||||
return await httpGetInterceptor(
|
return await httpGetInterceptor(
|
||||||
`media/categories/list/publish?enablePage=1&size=12&page=${
|
`media/categories/list/publish?enablePage=1&size=12&sort=desc&sortBy=createdAt&page=${
|
||||||
page - 1
|
page - 1
|
||||||
}&group=${group}&type=${type}&isInt=${isInt}`
|
}&group=${group}&type=${type}&isInt=${isInt}`
|
||||||
);
|
);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue