fix: page name and recents empty state (#6491)

This commit is contained in:
Aaryan Khandelwal 2025-01-28 17:13:20 +05:30 committed by GitHub
parent 97578684c6
commit 74913a6659
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 16 additions and 5 deletions

View file

@ -2,14 +2,18 @@
import { useRef, useState } from "react"; import { useRef, useState } from "react";
import { observer } from "mobx-react"; import { observer } from "mobx-react";
// types import { usePathname } from "next/navigation";
import useSWR from "swr"; import useSWR from "swr";
import { Briefcase, FileText } from "lucide-react"; import { Briefcase, FileText } from "lucide-react";
// plane types
import { TActivityEntityData, THomeWidgetProps, TRecentActivityFilterKeys } from "@plane/types"; import { TActivityEntityData, THomeWidgetProps, TRecentActivityFilterKeys } from "@plane/types";
// components // plane ui
import { LayersIcon } from "@plane/ui"; import { LayersIcon } from "@plane/ui";
// components
import { ContentOverflowWrapper } from "@/components/core/content-overflow-HOC"; import { ContentOverflowWrapper } from "@/components/core/content-overflow-HOC";
// hooks
import { useProject } from "@/hooks/store"; import { useProject } from "@/hooks/store";
// plane web services
import { WorkspaceService } from "@/plane-web/services"; import { WorkspaceService } from "@/plane-web/services";
import { NoProjectsEmptyState, RecentsEmptyState } from "../empty-states"; import { NoProjectsEmptyState, RecentsEmptyState } from "../empty-states";
import { EWidgetKeys, WidgetLoader } from "../loaders"; import { EWidgetKeys, WidgetLoader } from "../loaders";
@ -34,12 +38,16 @@ type TRecentWidgetProps = THomeWidgetProps & {
export const RecentActivityWidget: React.FC<TRecentWidgetProps> = observer((props) => { export const RecentActivityWidget: React.FC<TRecentWidgetProps> = observer((props) => {
const { presetFilter, showFilterSelect = true, workspaceSlug } = props; const { presetFilter, showFilterSelect = true, workspaceSlug } = props;
// state // states
const [filter, setFilter] = useState<TRecentActivityFilterKeys>(presetFilter ?? filters[0].name); const [filter, setFilter] = useState<TRecentActivityFilterKeys>(presetFilter ?? filters[0].name);
// navigation
const pathname = usePathname();
// ref // ref
const ref = useRef<HTMLDivElement>(null); const ref = useRef<HTMLDivElement>(null);
// store hooks // store hooks
const { joinedProjectIds, loader } = useProject(); const { joinedProjectIds, loader } = useProject();
// derived values
const isWikiApp = pathname.includes(`/${workspaceSlug.toString()}/pages`);
const { data: recents, isLoading } = useSWR( const { data: recents, isLoading } = useSWR(
workspaceSlug ? `WORKSPACE_RECENT_ACTIVITY_${workspaceSlug}_${filter}` : null, workspaceSlug ? `WORKSPACE_RECENT_ACTIVITY_${workspaceSlug}_${filter}` : null,
@ -71,7 +79,7 @@ export const RecentActivityWidget: React.FC<TRecentWidgetProps> = observer((prop
} }
}; };
if (!loader && joinedProjectIds?.length === 0) return <NoProjectsEmptyState />; if (!loader && !isWikiApp && joinedProjectIds?.length === 0) return <NoProjectsEmptyState />;
if (!isLoading && recents?.length === 0) if (!isLoading && recents?.length === 0)
return ( return (

View file

@ -10,6 +10,7 @@ import { getFileURL } from "@plane/utils";
import { ListItem } from "@/components/core/list"; import { ListItem } from "@/components/core/list";
// helpers // helpers
import { calculateTimeAgo } from "@/helpers/date-time.helper"; import { calculateTimeAgo } from "@/helpers/date-time.helper";
import { getPageName } from "@/helpers/page.helper";
// hooks // hooks
import { useMember } from "@/hooks/store"; import { useMember } from "@/hooks/store";
@ -55,7 +56,9 @@ export const RecentPage = (props: BlockProps) => {
</div> </div>
)} )}
</div> </div>
<div className="text-custom-text-200 font-medium text-sm whitespace-nowrap">{pageDetails?.name}</div> <div className="text-custom-text-200 font-medium text-sm whitespace-nowrap">
{getPageName(pageDetails?.name)}
</div>
<div className="font-medium text-xs text-custom-text-400">{calculateTimeAgo(activity.visited_at)}</div> <div className="font-medium text-xs text-custom-text-400">{calculateTimeAgo(activity.visited_at)}</div>
</div> </div>
} }