diff --git a/apps/web/src/app/search/PopularSearchHistory.tsx b/apps/web/src/app/search/PopularSearchHistory.tsx
index 2752480..d593682 100644
--- a/apps/web/src/app/search/PopularSearchHistory.tsx
+++ b/apps/web/src/app/search/PopularSearchHistory.tsx
@@ -1,6 +1,6 @@
'use client';
-import { ChartNoAxesCombined } from 'lucide-react';
+import { ChartNoAxesCombined, Loader2 } from 'lucide-react';
import { useSearchLogQuery } from '@/queries/searchLogQuery';
@@ -9,33 +9,36 @@ interface PopularSearchHistoryProps {
}
export default function PopularSearchHistory({ onHistoryClick }: PopularSearchHistoryProps) {
- const { data: searchLogs } = useSearchLogQuery();
-
- if (!searchLogs || searchLogs.length === 0) return null;
+ const { data: searchLogs, isPending } = useSearchLogQuery();
return (
-
+
-
- {searchLogs.slice(0, 10).map((log, index) => (
-
-
{index + 1}
-
onHistoryClick(log.text)}
+ {isPending ? (
+
+
+
+ ) : (
+
+ {searchLogs?.slice(0, 10).map((log, index) => (
+
- {log.text}
-
- {log.count}
-
- ))}
-
+ onHistoryClick(log.text)}
+ >
+ {log.text}
+
+ {log.count}
+
+ ))}
+
+ )}
);
}
diff --git a/apps/web/src/app/search/SearchHistory.tsx b/apps/web/src/app/search/SearchHistory.tsx
index bc72ec2..5e3091d 100644
--- a/apps/web/src/app/search/SearchHistory.tsx
+++ b/apps/web/src/app/search/SearchHistory.tsx
@@ -1,4 +1,5 @@
-import { Clock, X } from 'lucide-react';
+import { Clock, Loader2, X } from 'lucide-react';
+import { useEffect, useState } from 'react';
import useSearchHistoryStore from '@/stores/useSearchHistoryStore';
@@ -8,37 +9,48 @@ interface SearchHistoryProps {
export default function SearchHistory({ onHistoryClick }: SearchHistoryProps) {
const { searchHistory, removeFromHistory } = useSearchHistoryStore();
+ const [isHydrated, setIsHydrated] = useState(false);
- if (searchHistory.length === 0) return null;
+ useEffect(() => {
+ if (searchHistory.length > 0) {
+ setIsHydrated(true);
+ }
+ }, [searchHistory]);
return (
-
+
-
- {searchHistory.slice(10).map((term, index) => (
-
-
onHistoryClick(term)}
+ {!isHydrated ? (
+
+
+
+ ) : (
+
+ {searchHistory.slice(0, 10).map((term, index) => (
+
- {term}
-
- removeFromHistory(term)}
- title="검색 기록 삭제"
- >
-
-
-
- ))}
-
+ onHistoryClick(term)}
+ >
+ {term}
+
+ removeFromHistory(term)}
+ title="검색 기록 삭제"
+ >
+
+
+
+ ))}
+
+ )}
);
}