From dd5af43d339d27b1d208b7efbf47d26d13b7cb64 Mon Sep 17 00:00:00 2001 From: bicochan Date: Wed, 16 Jul 2025 13:30:41 +0900 Subject: [PATCH] =?UTF-8?q?[apps/cs]=20chore:=20=EA=B7=B8=EB=A3=B9?= =?UTF-8?q?=EA=B4=80=EB=A6=AC=20=EB=82=B4=20=EC=82=AC=EC=9A=A9=EC=9E=90=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20=ED=8C=9D=EC=97=85=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?(CS=5FUT05020103)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/pages/groups/ui/add-user-dialog.tsx | 76 ++++++++++++++----- 1 file changed, 56 insertions(+), 20 deletions(-) diff --git a/apps/cs/src/pages/groups/ui/add-user-dialog.tsx b/apps/cs/src/pages/groups/ui/add-user-dialog.tsx index aafba70db..4f8a205ff 100644 --- a/apps/cs/src/pages/groups/ui/add-user-dialog.tsx +++ b/apps/cs/src/pages/groups/ui/add-user-dialog.tsx @@ -1,6 +1,6 @@ "use client"; -import { useState } from "react"; +import { useState, useEffect } from "react"; import { keepPreviousData, useQuery, @@ -22,6 +22,7 @@ import { DialogFooter, Input, Checkbox, + Label, } from "@common/components"; import { UserApi, @@ -41,7 +42,8 @@ function AddUserDialog({ groupId }: AdditionalUserDialogProps) { const alert = useAlertStore((state) => state.setMessage); const [open, setOpen] = useState(false); - const [userSearchQuery, setUserSearchQuery] = useState({ + const [userName, setUserName] = useState(""); + const [searchParam, setSearchParam] = useState({ userName: "", }); const [pagination, setPagination] = useState({ @@ -53,10 +55,10 @@ function AddUserDialog({ groupId }: AdditionalUserDialogProps) { ); const query = useQuery({ - queryKey: [ENDPOINT.USER_SERVICE.USERS, userSearchQuery, pagination], + queryKey: [ENDPOINT.USER_SERVICE.USERS, searchParam, pagination], queryFn: () => UserApi.findPageUser({ - ...userSearchQuery, + ...searchParam, page: pagination.pageIndex, size: pagination.pageSize, }), @@ -118,6 +120,9 @@ function AddUserDialog({ groupId }: AdditionalUserDialogProps) { onRowSelectionChange: setUserRowSelection, getRowId: (row) => row.userUnqId, }, + dataTableOptions: { + viewPagination: true, + }, }); const handleAddUsers = async () => { @@ -144,10 +149,30 @@ function AddUserDialog({ groupId }: AdditionalUserDialogProps) { } }; - const handleSearch = () => { - setPagination({ pageIndex: 0, pageSize: 10 }); + const handleSearch = (e: React.FormEvent) => { + e.preventDefault(); + e.stopPropagation(); + setPagination({ + ...pagination, + pageIndex: 0, + }); + setSearchParam({ userName }); }; + const resetSearch = () => { + setPagination({ + pageIndex: 0, + pageSize: 10, + }); + setUserName(""); + setSearchParam({ userName: "" }); + setUserRowSelection({}); + }; + + useEffect(() => { + if (open) resetSearch(); + }, [open]); + return ( @@ -157,20 +182,31 @@ function AddUserDialog({ groupId }: AdditionalUserDialogProps) { 사용자 추가 -
- - setUserSearchQuery({ - ...userSearchQuery, - userName: e.target.value, - }) - } - className="!text-[1.3rem]" - placeholder="사용자 이름으로 검색" - /> - -
+
+
+ + setUserName(e.target.value)} + placeholder="사용자 이름으로 검색" + /> +
+ + +
{tableComponent}