/** * Copyright (c) 2023-present Plane Software, Inc. and contributors * SPDX-License-Identifier: AGPL-3.0-only * See the LICENSE file for details. */ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import useSWR from "swr"; // plane imports import { ContentWrapper } from "@plane/ui"; // hooks import { useHome } from "@/hooks/store/use-home"; import { useUserProfile, useUser } from "@/hooks/store/user"; // plane web imports import { TourRoot } from "@/components/onboarding/tour/root"; // local imports import { DashboardWidgets } from "./home-dashboard-widgets"; import { UserGreetingsView } from "./user-greetings"; import { HomePeekOverviewsRoot } from "../issues/peek-overview/peek-overviews"; export const WorkspaceHomeView = observer(function WorkspaceHomeView() { // store hooks const { workspaceSlug } = useParams(); const { data: currentUser } = useUser(); const { data: currentUserProfile, updateTourCompleted } = useUserProfile(); const { fetchWidgets } = useHome(); useSWR( workspaceSlug ? `HOME_DASHBOARD_WIDGETS_${workspaceSlug}` : null, workspaceSlug ? () => fetchWidgets(workspaceSlug?.toString()) : null, { revalidateIfStale: true, revalidateOnFocus: false, revalidateOnReconnect: true, } ); const handleTourCompleted = async () => { try { await updateTourCompleted(); } catch (error) { console.error("Error updating tour completed", error); } }; // TODO: refactor loader implementation return ( <> {currentUserProfile && !currentUserProfile.is_tour_completed && (
)} <>
{currentUser && }
); });