"use client"; import { useMemo } from "react"; import { observer } from "mobx-react"; import { useRouter, useSearchParams } from "next/navigation"; // plane package imports import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { Tabs } from "@plane/ui"; // components import AnalyticsFilterActions from "@/components/analytics/analytics-filter-actions"; 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"; import { getAnalyticsTabs } from "@/plane-web/components/analytics/tabs"; const AnalyticsPage = observer(() => { const router = useRouter(); const searchParams = useSearchParams(); // 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 ); const ANALYTICS_TABS = useMemo(() => getAnalyticsTabs(t), [t]); const tabs = useMemo( () => ANALYTICS_TABS.map((tab) => ({ key: tab.key, label: tab.label, content: , onClick: () => { router.push(`?tab=${tab.key}`); }, isDisabled: tab.isDisabled, })), [ANALYTICS_TABS, router] ); const defaultTab = searchParams.get("tab") || ANALYTICS_TABS[0].key; return ( <> {workspaceProjectIds && ( <> {workspaceProjectIds.length > 0 || loader === "init-loader" ? (
} />
) : ( { setTrackElement("Analytics empty state"); toggleCreateProjectModal(true); }} disabled={!canPerformEmptyStateActions} /> } /> )} )} ); }); export default AnalyticsPage;