import { Accordion, ActionIcon, Collapse, ColorSwatch, Flex, MantineStyleProp, ScrollAreaAutosize, Stack, Text, useMantineColorScheme } from '@mantine/core' import useSWR from 'swr' import { fetcher } from '../../../http/axiosInstance' import { BASE_URL } from '../../../constants' import { useDisclosure } from '@mantine/hooks' import { IconChevronDown } from '@tabler/icons-react' const MapLegend = ({ selectedDistrict, selectedYear, style }: { selectedDistrict: number | null, selectedYear: number | null, style: MantineStyleProp }) => { const { colorScheme } = useMantineColorScheme() const { data: existingObjectsList } = useSWR( selectedYear && selectedDistrict ? `/general/objects/list?year=${selectedYear}&city_id=${selectedDistrict}&planning=0` : null, (url) => fetcher(url, BASE_URL.ems), { revalidateOnFocus: false } ) const { data: planningObjectsList } = useSWR( selectedYear && selectedDistrict ? `/general/objects/list?year=${selectedYear}&city_id=${selectedDistrict}&planning=1` : null, (url) => fetcher(url, BASE_URL.ems), { revalidateOnFocus: false } ) const [opened, { toggle }] = useDisclosure(false) return ( Легенда Существующие {existingObjectsList && } Планируемые {planningObjectsList && } ) } const LegendGroup = ({ objectsList, border }: { objectsList: { id: number, name: string, count: number, r: number | null, g: number | null, b: number | null }[], border: 'solid' | 'dotted' }) => { const borderStyle = () => { switch (border) { case 'solid': return '2px solid black' case 'dotted': return '2px dotted black' default: return 'none' } } return ( {objectsList.map(object => ( - {object.name} ))} ) } export default MapLegend