File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
import {useMemo, useState} from "react";
import {ADMIN_BBS_MASTER_ROUTE} from "../../../../route/adminRouteMap.ts";
import {useCheckedList} from "../../../../hook/useCheckedList.ts";
import type {BoardArticleSearchParams} from "../../type/board.types.ts";
import {useBoardArticleList} from "../query/useBoardArticleList.ts";
const initSearchParam: BoardArticleSearchParams = {
pageIndex: 1,
pageUnit: 10,
searchCnd: "0",
searchKeyword: "",
searchSortCnd: "FRST_REGIST_PNTTM",
searchSortOrd: "ASC",
bbsId: ""
};
const searchOptions = [
{value: '0', label: '제목'},
{value: '1', label: '내용'},
{value: '2', label: '작성자'},
];
export const useBoardArticleListPage = (bbsId: string) => {
const [searchDraft, setSearchDraft] = useState<BoardArticleSearchParams>(initSearchParam);
const searchParams = useMemo(
() => ({
...searchDraft,
bbsId,
}),
[bbsId, searchDraft]
);
const {
list,
extraData,
totalItems,
currentPage,
totalPages,
size,
isLoading,
error
} = useBoardArticleList(searchParams);
const articleIds = useMemo(
() => list.map((item) => item.nttId),
[list]
);
const {
checkedIds,
isAllChecked,
isPartiallyChecked,
isChecked,
handleCheck,
handleCheckAll,
resetChecked,
} = useCheckedList(articleIds);
const bbsNm = extraData?.boardMaster?.bbsNm ?? '';
const bbsTyCode = extraData?.boardMaster?.bbsTyCode ?? '';
const title = `${bbsNm || '게시글'} 목록`;
const breadcrumb = [
{label: '게시판 관리', url: ADMIN_BBS_MASTER_ROUTE},
{label: title}
];
const successMessage = bbsNm
? `${bbsNm} 목록을 불러왔습니다.`
: '게시글 목록을 불러왔습니다.';
const handleSearchChange = (params: BoardArticleSearchParams) => {
setSearchDraft({
...params,
bbsId: "",
});
};
const handlePageChange = (pageIndex: number) => {
setSearchDraft((prev) => ({
...prev,
pageIndex,
}));
};
return {
title,
breadcrumb,
searchOptions,
searchParams,
list,
bbsTyCode,
totalItems,
currentPage,
totalPages,
size,
isLoading,
error,
successMessage,
checkedIds,
isAllChecked,
isPartiallyChecked,
isChecked,
handleCheck,
handleCheckAll,
resetChecked,
handleSearchChange,
handlePageChange,
};
};