회원 검색 기능 보완
This commit is contained in:
parent
c50c8d01df
commit
d428a70b69
|
|
@ -38,6 +38,7 @@ export function DepartmentMembers({
|
||||||
const [searchQuery, setSearchQuery] = useState("");
|
const [searchQuery, setSearchQuery] = useState("");
|
||||||
const [searchResults, setSearchResults] = useState<any[]>([]);
|
const [searchResults, setSearchResults] = useState<any[]>([]);
|
||||||
const [isSearching, setIsSearching] = useState(false);
|
const [isSearching, setIsSearching] = useState(false);
|
||||||
|
const [hasSearched, setHasSearched] = useState(false); // 검색 버튼을 눌렀는지 여부
|
||||||
const [duplicateMessage, setDuplicateMessage] = useState<string | null>(null);
|
const [duplicateMessage, setDuplicateMessage] = useState<string | null>(null);
|
||||||
|
|
||||||
// 부서원 삭제 확인 모달
|
// 부서원 삭제 확인 모달
|
||||||
|
|
@ -75,10 +76,12 @@ export function DepartmentMembers({
|
||||||
const handleSearch = async () => {
|
const handleSearch = async () => {
|
||||||
if (!searchQuery.trim()) {
|
if (!searchQuery.trim()) {
|
||||||
setSearchResults([]);
|
setSearchResults([]);
|
||||||
|
setHasSearched(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
setIsSearching(true);
|
setIsSearching(true);
|
||||||
|
setHasSearched(true); // 검색 버튼을 눌렀음을 표시
|
||||||
try {
|
try {
|
||||||
const response = await departmentAPI.searchUsers(companyCode, searchQuery);
|
const response = await departmentAPI.searchUsers(companyCode, searchQuery);
|
||||||
if (response.success && response.data) {
|
if (response.success && response.data) {
|
||||||
|
|
@ -108,6 +111,7 @@ export function DepartmentMembers({
|
||||||
setIsAddModalOpen(false);
|
setIsAddModalOpen(false);
|
||||||
setSearchQuery("");
|
setSearchQuery("");
|
||||||
setSearchResults([]);
|
setSearchResults([]);
|
||||||
|
setHasSearched(false); // 검색 상태 초기화
|
||||||
loadMembers();
|
loadMembers();
|
||||||
onMemberChange?.(); // 부서 구조 새로고침
|
onMemberChange?.(); // 부서 구조 새로고침
|
||||||
|
|
||||||
|
|
@ -341,7 +345,7 @@ export function DepartmentMembers({
|
||||||
{/* 검색 결과 */}
|
{/* 검색 결과 */}
|
||||||
{isSearching ? (
|
{isSearching ? (
|
||||||
<div className="py-8 text-center text-sm text-muted-foreground">검색 중...</div>
|
<div className="py-8 text-center text-sm text-muted-foreground">검색 중...</div>
|
||||||
) : searchResults.length > 0 ? (
|
) : hasSearched && searchResults.length > 0 ? (
|
||||||
<div className="max-h-64 space-y-2 overflow-y-auto rounded-lg border p-2">
|
<div className="max-h-64 space-y-2 overflow-y-auto rounded-lg border p-2">
|
||||||
{searchResults.map((user) => (
|
{searchResults.map((user) => (
|
||||||
<div
|
<div
|
||||||
|
|
@ -363,7 +367,7 @@ export function DepartmentMembers({
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
) : searchQuery && !isSearching ? (
|
) : hasSearched && searchResults.length === 0 ? (
|
||||||
<div className="py-8 text-center text-sm text-muted-foreground">
|
<div className="py-8 text-center text-sm text-muted-foreground">
|
||||||
검색 결과가 없습니다.
|
검색 결과가 없습니다.
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -377,6 +381,7 @@ export function DepartmentMembers({
|
||||||
setIsAddModalOpen(false);
|
setIsAddModalOpen(false);
|
||||||
setSearchQuery("");
|
setSearchQuery("");
|
||||||
setSearchResults([]);
|
setSearchResults([]);
|
||||||
|
setHasSearched(false); // 검색 상태 초기화
|
||||||
}}
|
}}
|
||||||
className="h-8 flex-1 text-xs sm:h-10 sm:flex-none sm:text-sm"
|
className="h-8 flex-1 text-xs sm:h-10 sm:flex-none sm:text-sm"
|
||||||
>
|
>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue