"use client" import { Button } from "@/app/_components/ui/button" import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/app/_components/ui/tooltip" import { Popover, PopoverContent, PopoverTrigger } from "@/app/_components/ui/popover" import { ChevronDown, Siren } from "lucide-react" import { IconMessage } from "@tabler/icons-react" import { useEffect, useRef, useState } from "react" import type { ITooltips } from "./tooltips" import MonthSelector from "../month-selector" import YearSelector from "../year-selector" import CategorySelector from "../category-selector" import SourceTypeSelector from "../source-type-selector" // Define the additional tools and features const additionalTooltips = [ { id: "reports" as ITooltips, icon: , label: "Police Report" }, { id: "recents" as ITooltips, icon: , label: "Recent incidents" }, ] interface AdditionalTooltipsProps { activeControl?: string onControlChange?: (controlId: ITooltips) => void selectedYear: number setSelectedYear: (year: number) => void selectedMonth: number | "all" setSelectedMonth: (month: number | "all") => void selectedCategory: string | "all" setSelectedCategory: (category: string | "all") => void selectedSourceType: string setSelectedSourceType: (sourceType: string) => void availableYears?: (number | null)[] availableSourceTypes?: string[] categories?: string[] panicButtonTriggered?: boolean } export default function AdditionalTooltips({ activeControl, onControlChange, selectedYear, setSelectedYear, selectedMonth, setSelectedMonth, selectedCategory, setSelectedCategory, selectedSourceType = "cbu", setSelectedSourceType, availableYears = [], availableSourceTypes = [], categories = [], panicButtonTriggered = false, }: AdditionalTooltipsProps) { const [showSelectors, setShowSelectors] = useState(false) const containerRef = useRef(null) const [isClient, setIsClient] = useState(false) const container = isClient ? document.getElementById("root") : null useEffect(() => { if (panicButtonTriggered && activeControl !== "alerts" && onControlChange) { onControlChange("alerts") } }, [panicButtonTriggered, activeControl, onControlChange]) useEffect(() => { setIsClient(true) }, []) const isControlDisabled = (controlId: ITooltips) => { // When source type is CBU, disable all controls except for layers return selectedSourceType === "cbu" && controlId !== "layers" } return ( <>
{additionalTooltips.map((control) => { const isButtonDisabled = isControlDisabled(control.id) return (

{isButtonDisabled ? "Not available for CBU data" : control.label}

) })}
Source:
Year:
Month:
Category:
{showSelectors && (
)} ) }