"use client"; import React, { Fragment } from "react"; import { observer } from "mobx-react"; import { useSearchParams } from "next/navigation"; import { Tab } from "@headlessui/react"; // plane package imports import { ANALYTICS_TABS, EUserPermissionsLevel, EUserPermissions } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { Header, EHeaderVariant } from "@plane/ui"; // components import { CustomAnalytics, ScopeAndDemand } from "@/components/analytics"; import { PageHead } from "@/components/core"; import { ComicBoxButton, DetailedEmptyState } from "@/components/empty-state"; // hooks import { useCommandPalette, useEventTracker, useProject, useUserPermissions, useWorkspace } from "@/hooks/store"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; const AnalyticsPage = observer(() => { const searchParams = useSearchParams(); const analytics_tab = searchParams.get("analytics_tab"); // plane imports const { t } = useTranslation(); // store hooks const { toggleCreateProjectModal } = useCommandPalette(); const { setTrackElement } = useEventTracker(); const { workspaceProjectIds, loader } = useProject(); const { currentWorkspace } = useWorkspace(); const { allowPermissions } = useUserPermissions(); // helper hooks const resolvedPath = useResolvedAssetPath({ basePath: "/empty-state/onboarding/analytics" }); // derived values const pageTitle = currentWorkspace?.name ? t(`workspace_analytics.page_label`, { workspace: currentWorkspace?.name }) : undefined; // permissions const canPerformEmptyStateActions = allowPermissions( [EUserPermissions.ADMIN, EUserPermissions.MEMBER], EUserPermissionsLevel.WORKSPACE ); // TODO: refactor loader implementation return ( <> {workspaceProjectIds && ( <> {workspaceProjectIds.length > 0 || loader === "init-loader" ? (
{ANALYTICS_TABS.map((tab) => ( {({ selected }) => ( )} ))}
) : ( { setTrackElement("Analytics empty state"); toggleCreateProjectModal(true); }} disabled={!canPerformEmptyStateActions} /> } /> )} )} ); }); export default AnalyticsPage;