fix: page name and recents empty state (#6491)
This commit is contained in:
parent
97578684c6
commit
74913a6659
2 changed files with 16 additions and 5 deletions
|
|
@ -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 (
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue