import { useEffect, useState } from "react"; import { Box, Paper, Typography, useMediaQuery, useTheme } from "@mui/material"; import { PieChart } from "@mui/x-charts"; import { enqueueSnackbar } from "notistack"; import { getDevices } from "@api/statistic"; import type { DevicesResponse } from "@api/statistic"; type DeviceProps = { title: string; devices: Record; }; const COLORS: Record = { 0: "#7E2AEA", 1: "#FA7738", 2: "#62BB1C", 3: "#0886FB", }; const DEVICES_MOCK: DevicesResponse = { device: { PC: 75, Mobile: 25 }, os: { Windows: 44, AndroidOS: 25, "OS X": 19, Linux: 13 }, browser: { Chrome: 75, Firefox: 25 }, }; const Device = ({ title, devices }: DeviceProps) => { const theme = useTheme(); const data = Object.entries(devices).map(([id, value], index) => ({ id, value, color: COLORS[index], })); return ( {title} {data.map(({ id, value, color }) => ( {id} {value} % ))} ); }; export const Devices = () => { const [devices, setDevices] = useState(DEVICES_MOCK); const theme = useTheme(); const isTablet = useMediaQuery(theme.breakpoints.down(1000)); const isMobile = useMediaQuery(theme.breakpoints.down(700)); useEffect(() => { const requestDevices = async () => { const [devicesResponse, devicesError] = await getDevices("14761"); if (devicesError) { enqueueSnackbar(devicesError); return; } if (!devicesResponse) { enqueueSnackbar("Список девайсов пуст."); return; } setDevices(devicesResponse); }; // requestDevices(); }, []); return ( Статистика пользователей ); };