From 1772ced959dc6714b83124ab66a7491f6c3f4f2d Mon Sep 17 00:00:00 2001 From: 3dtours Date: Tue, 16 Jun 2026 15:35:45 +0700 Subject: [PATCH] =?UTF-8?q?feat:=20n=C3=BAt=20l=E1=BB=8Dc=20filter=20tags?= =?UTF-8?q?=20dropdown?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/pages/ExploreMap.tsx | 66 +++++++++++++++++++------------ 1 file changed, 41 insertions(+), 25 deletions(-) diff --git a/frontend/src/pages/ExploreMap.tsx b/frontend/src/pages/ExploreMap.tsx index 4e1208e..2502d56 100644 --- a/frontend/src/pages/ExploreMap.tsx +++ b/frontend/src/pages/ExploreMap.tsx @@ -78,6 +78,7 @@ export const ExploreMap = ({ onBack, onLogout, user, onViewTour }: { onBack: () const [mapZoom] = useState(initialViewState?.zoom || 13); const [isAdminModalOpen, setIsAdminModalOpen] = useState(false); const [isCreateModalOpen, setIsCreateModalOpen] = useState(false); + const [isFilterDropdownOpen, setIsFilterDropdownOpen] = useState(false); // State để điều khiển hiển thị dropdown lọc const [searchQuery, setSearchQuery] = useState(''); // State cho giá trị tìm kiếm const [suggestions, setSuggestions] = useState<{ type: 'tour' | 'location', id: string, name: string, lat?: number, lon?: number }[]>([]); const [isSearchingSuggestions, setIsSearchingSuggestions] = useState(false); @@ -228,6 +229,44 @@ export const ExploreMap = ({ onBack, onLogout, user, onViewTour }: { onBack: () + {/* Nút lọc Tag và Dropdown */} +
+ + + {/* Filter Dropdown Content */} + {isFilterDropdownOpen && ( +
+
+ + Lọc theo loại +
+
{/* Hiển thị tag theo chiều dọc */} + + {allFilterTags.map(tag => ( + + ))} +
+
+ )} +
+ {/* Search Box - Thay thế div "Khám phá khu vực" */}
@@ -310,28 +349,6 @@ export const ExploreMap = ({ onBack, onLogout, user, onViewTour }: { onBack: ()
- {/* Ribbon lọc theo Tag - Đặt ngay dưới top-bar, có thể cuộn ngang */} -
-
- - - {allFilterTags.map(tag => ( - - ))} -
-
- - - {/* Đóng menu khi tương tác bản đồ */} - { setShareMenu(null); setSuggestions([]); }} /> + {/* Đóng menu và dropdown khi tương tác bản đồ */} + { setShareMenu(null); setSuggestions([]); setIsFilterDropdownOpen(false); }} /> {/* Tự động di chuyển bản đồ đến vị trí người dùng khi tìm thấy tọa độ */}