import { useEffect } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // components import { ContentWrapper } from "@plane/ui"; import { EmptyState } from "@/components/empty-state"; import { TourRoot } from "@/components/onboarding"; // constants import { EmptyStateType } from "@/constants/empty-state"; import { PRODUCT_TOUR_COMPLETED } from "@/constants/event-tracker"; // helpers import { cn } from "@/helpers/common.helper"; // hooks import { useCommandPalette, useUserProfile, useEventTracker, useDashboard, useProject, useUser } from "@/hooks/store"; import { useHome } from "@/hooks/store/use-home"; import useSize from "@/hooks/use-window-size"; import { IssuePeekOverview } from "../issues"; import { DashboardWidgets } from "./home-dashboard-widgets"; import { UserGreetingsView } from "./user-greetings"; export const WorkspaceHomeView = observer(() => { // store hooks const { // captureEvent, setTrackElement, } = useEventTracker(); const { toggleCreateProjectModal } = useCommandPalette(); const { workspaceSlug } = useParams(); const { data: currentUser } = useUser(); const { data: currentUserProfile, updateTourCompleted } = useUserProfile(); const { captureEvent } = useEventTracker(); const { homeDashboardId, fetchHomeDashboardWidgets } = useDashboard(); const { toggleWidgetSettings } = useHome(); const { joinedProjectIds, loader } = useProject(); const [windowWidth] = useSize(); const handleTourCompleted = () => { updateTourCompleted() .then(() => { captureEvent(PRODUCT_TOUR_COMPLETED, { user_id: currentUser?.id, state: "SUCCESS", }); }) .catch((error) => { console.error(error); }); }; // fetch home dashboard widgets on workspace change useEffect(() => { if (!workspaceSlug) return; fetchHomeDashboardWidgets(workspaceSlug?.toString()); }, [fetchHomeDashboardWidgets, workspaceSlug]); // TODO: refactor loader implementation return ( <> {currentUserProfile && !currentUserProfile.is_tour_completed && (