import React, { useContext, useEffect, useState } from "react";
import { getLayout } from "../../src/layouts/AppLayout";
import {
Spinner,
Flex,
Heading,
Stack,
Text,
Spacer,
IconButton,
Editable,
EditableInput,
EditablePreview,
Button,
} from "@chakra-ui/react";
import Scrollable from "../../src/components/Scrollable";
import RangeSelector from "../../src/components/RangeSelector";
import useDashboard from "../../src/core/hooks/useDashboard";
import { useRouter, useSubscriptions } from "../../src/core/hooks";
import { BiTrash } from "react-icons/bi";
import OverlayContext from "../../src/core/providers/OverlayProvider/context";
import SubscriptionReport from "../../src/components/SubscriptionReport";
import { v4 } from "uuid";
import { DRAWER_TYPES } from "../../src/core/providers/OverlayProvider/constants";
import Page404 from "../../src/components/FourOFour";
import { BsGear } from "react-icons/bs";
const HOUR_KEY = "Hourly";
const DAY_KEY = "Daily";
const MINUTE_KEY = "Minutes";
let timeMap = {};
timeMap[DAY_KEY] = "month";
timeMap[HOUR_KEY] = "week";
timeMap[MINUTE_KEY] = "day";
const Analytics = () => {
const { toggleAlert } = useContext(OverlayContext);
const [timeRange, setTimeRange] = useState(timeMap[MINUTE_KEY]);
const router = useRouter();
const overlay = useContext(OverlayContext);
const { dashboardId } = router.params;
const {
dashboardCache,
dashboardLinksCache,
deleteDashboard,
updateDashboard,
} = useDashboard(dashboardId);
const { subscriptionsCache } = useSubscriptions();
useEffect(() => {
if (typeof window !== "undefined") {
if (dashboardCache?.data?.data?.resource_data?.name) {
document.title = dashboardCache?.data?.data?.resource_data?.name;
} else {
document.title = `Dashboard`;
}
}
}, [dashboardCache?.data?.data?.resource_data?.name]);
const updateCallback = ({ name }) => {
updateDashboard.mutate({
id: dashboardCache.data.id,
dashboard: {
dashboard_id: dashboardCache.data.id,
name: name,
subscription_cache:
dashboardCache.data.resource_data.subscription_setting,
},
});
};
if (
dashboardCache.isLoading ||
dashboardLinksCache.isLoading ||
subscriptionsCache.isLoading
)
return ;
if (
dashboardCache.isLoadingError &&
dashboardCache?.error?.response?.status === 404
) {
return ;
}
const plotMinW = "250px";
return (
updateCallback({
name: nextValue,
})
}
>
}
variant="ghost"
colorScheme="red"
size="sm"
onClick={() => toggleAlert(() => deleteDashboard.mutate())}
/>
{
setTimeRange(timeMap[e]);
}}
/>
overlay.toggleDrawer({
type: DRAWER_TYPES.NEW_DASHBOARD_ITEM,
props: dashboardCache.data.resource_data,
})
}
size="md"
colorScheme="blue"
variant="outline"
icon={}
/>
<>
{Object.keys(dashboardLinksCache.data.data).map((key) => {
const s3PresignedURLs = dashboardLinksCache.data.data[key];
const name = subscriptionsCache.data.subscriptions.find(
(subscription) => subscription.id === key
)?.label;
return (
{name ?? ""}
);
})}
{dashboardCache.data.resource_data.subscription_settings[0] ===
undefined && (
)}
>
);
};
Analytics.getLayout = getLayout;
export default Analytics;