[common/features, apps/cs] feat: 테이블 정렬 기능 추가

This commit is contained in:
2025-07-02 09:54:19 +09:00
parent 5092dfa6e6
commit 4723d90658
3 changed files with 48 additions and 3 deletions
@@ -30,5 +30,5 @@ export interface PageableList<T> {
export interface PageableParams {
page?: number;
size?: number;
sort?: string[];
sort?: string;
}
@@ -42,6 +42,7 @@ function PostPage({ bbsId }: { bbsId: string }) {
const { bbsInfo, pageMenuAuthority } = useMenuStore((state) => state);
const thumbRefs = useRef<Map<number, string>>(new Map());
const [tableSort, setTableSort] = useState("");
const [postParams, setPostParams] = useState<PostParams>({
keywordType: "title",
keyword: "",
@@ -77,13 +78,14 @@ function PostPage({ bbsId }: { bbsId: string }) {
isLoading,
refetch,
} = useQuery({
queryKey: [ENDPOINT.BOARD_SERVICE.POSTS_USER, bbsId, pagination],
queryKey: [ENDPOINT.BOARD_SERVICE.POSTS_USER, bbsId, pagination, tableSort],
queryFn: () =>
PostApi.getPostList(parseInt(bbsId), {
...postParams,
ansUseYn: bbsInfo?.ansUseYn,
page: pagination.pageIndex,
size: pagination.pageSize,
sort: tableSort,
}),
});
@@ -201,6 +203,24 @@ function PostPage({ bbsId }: { bbsId: string }) {
))}
</SelectContent>
</Select>
<Select
value={tableSort}
onValueChange={(value) => {
setTableSort(value);
}}
>
<SelectTrigger className="h-[3.2rem] w-[8rem]">
<SelectValue placeholder="정렬" />
</SelectTrigger>
<SelectContent>
<SelectItem value="pstTtl,asc">제목&uarr;</SelectItem>
<SelectItem value="pstTtl,desc">제목&darr;</SelectItem>
<SelectItem value="rgtrNm,asc">작성자&uarr;</SelectItem>
<SelectItem value="rgtrNm,desc">작성자&darr;</SelectItem>
<SelectItem value="regDt,asc">등록일&uarr;</SelectItem>
<SelectItem value="regDt,desc">등록일&darr;</SelectItem>
</SelectContent>
</Select>
</div>
</div>
</div>
+26 -1
View File
@@ -46,6 +46,7 @@ function PostPage({ bbsId }: { bbsId: string }) {
const bbsInfo = useMenuStore((state) => state.bbsInfo);
const thumbRefs = useRef<Map<number, string>>(new Map());
const [tableSort, setTableSort] = useState("");
const [postParams, setPostParams] = useState<PostParams>({
keywordType: "title",
keyword: "",
@@ -78,7 +79,12 @@ function PostPage({ bbsId }: { bbsId: string }) {
isLoading,
refetch,
} = useQuery({
queryKey: [ENDPOINT.BOARD_SERVICE.POSTS, bbsInfo?.bbsTypeCd, pagination],
queryKey: [
ENDPOINT.BOARD_SERVICE.POSTS,
bbsInfo?.bbsTypeCd,
pagination,
tableSort,
],
queryFn: () =>
PostApi.getPostList(parseInt(bbsId), {
...postParams,
@@ -86,6 +92,7 @@ function PostPage({ bbsId }: { bbsId: string }) {
ansUseYn: bbsInfo?.ansUseYn,
page: pagination.pageIndex,
size: pagination.pageSize,
sort: tableSort,
}),
enabled: !!bbsInfo?.bbsTypeCd,
});
@@ -205,6 +212,24 @@ function PostPage({ bbsId }: { bbsId: string }) {
))}
</SelectContent>
</Select>
<Select
value={tableSort}
onValueChange={(value) => {
setTableSort(value);
}}
>
<SelectTrigger className="h-[3.2rem] w-[8rem]">
<SelectValue placeholder="정렬" />
</SelectTrigger>
<SelectContent>
<SelectItem value="pstTtl,asc">제목&uarr;</SelectItem>
<SelectItem value="pstTtl,desc">제목&darr;</SelectItem>
<SelectItem value="rgtrNm,asc">작성자&uarr;</SelectItem>
<SelectItem value="rgtrNm,desc">작성자&darr;</SelectItem>
<SelectItem value="regDt,asc">등록일&uarr;</SelectItem>
<SelectItem value="regDt,desc">등록일&darr;</SelectItem>
</SelectContent>
</Select>
</div>
</div>
</div>