import React, { useEffect, useState } from "react"; import List from "./List"; import { AddIcon, ArrowIcon, FocusIcon } from "../../icons/ExportCommonIcons"; import KebabMenuListMultiSelect from "./KebebMenuListMultiSelect"; import { useZones } from "../../../store/store"; import { useSelectedZoneStore } from "../../../store/useZoneStore"; interface DropDownListProps { value?: string; // Value to display in the DropDownList items?: { id: string; name: string }[]; // Items to display in the dropdown list showFocusIcon?: boolean; // Determines if the FocusIcon should be displayed showAddIcon?: boolean; // Determines if the AddIcon should be displayed showKebabMenu?: boolean; // Determines if the KebabMenuList should be displayed kebabMenuItems?: { id: string; name: string }[]; // Items for the KebabMenuList defaultOpen?: boolean; // Determines if the dropdown list should be open by default listType?: string; // Type of list to display remove?: boolean; } const DropDownList: React.FC = ({ value = "Dropdown", items = [], showFocusIcon = false, showAddIcon = true, showKebabMenu = true, kebabMenuItems = [ { id: "Buildings", name: "Buildings" }, { id: "Paths", name: "Paths" }, { id: "Zones", name: "Zones" }, ], defaultOpen = false, listType = "default", remove, }) => { const [isOpen, setIsOpen] = useState(defaultOpen); const { zones, setZones } = useZones() const handleToggle = () => { setIsOpen((prev) => !prev); // Toggle the state }; const [zoneDataList, setZoneDataList] = useState<{ id: string; name: string }[]>([]); const { selectedZone, setSelectedZone } = useSelectedZoneStore(); useEffect(() => { // console.log(zones); // setZoneDataList([ // { id: "2e996073-546c-470c-8323-55bd3700c6aa", name: "zone1" }, // { id: "3f473bf0-197c-471c-a71f-943fc9ca2b47", name: "zone2" }, // { id: "905e8fb6-9e18-469b-9474-e0478fb9601b", name: "zone3" }, // { id: "9d9efcbe-8e96-47eb-bfad-128a9e4c532e", name: "zone4" }, // { id: "884f3d29-eb5a-49a5-abe9-d11971c08e85", name: "zone5" }, // { id: "70fa55cd-b5c9-4f80-a8c4-6319af3bfb4e", name: "zone6" }, // ]) const value = (zones || []).map((val: { zoneId: string; zoneName: string }) => ({ id: val.zoneId, name: val.zoneName })); setZoneDataList(prev => (JSON.stringify(prev) !== JSON.stringify(value) ? value : prev)); }, [zones]); return (
{value}
{showFocusIcon && (
)} {showAddIcon && (
)} {showKebabMenu && (
)}
{isOpen && (
{listType === "default" && } {listType === "outline" && ( <> )}
)}
); }; export default DropDownList;