diff --git a/web/core/components/workspace/sidebar/favorites/favorite-items/common/favorite-item-title.tsx b/web/core/components/workspace/sidebar/favorites/favorite-items/common/favorite-item-title.tsx index d8fc0d0b3bf..5b25b858a49 100644 --- a/web/core/components/workspace/sidebar/favorites/favorite-items/common/favorite-item-title.tsx +++ b/web/core/components/workspace/sidebar/favorites/favorite-items/common/favorite-item-title.tsx @@ -3,6 +3,7 @@ import React, { FC } from "react"; import Link from "next/link"; type Props = { + projectId: string | null; href: string; title: string; icon: JSX.Element; @@ -10,14 +11,21 @@ type Props = { }; export const FavoriteItemTitle: FC = (props) => { - const { href, title, icon, isSidebarCollapsed } = props; + const { projectId, href, title, icon, isSidebarCollapsed } = props; const linkClass = "flex items-center gap-1.5 truncate w-full"; const collapsedClass = "group/project-item cursor-pointer relative group w-full flex items-center justify-center gap-1.5 rounded px-2 py-1 outline-none text-custom-sidebar-text-200 hover:bg-custom-sidebar-background-90 active:bg-custom-sidebar-background-90 truncate p-0 size-8 aspect-square mx-auto"; + const handleOnClick = () => { + if (projectId) { + const projectItem = document.getElementById(`${projectId}`); + projectItem?.scrollIntoView({ behavior: "smooth" }); + } + }; + return ( - + {icon} {!isSidebarCollapsed && {title}} diff --git a/web/core/components/workspace/sidebar/favorites/favorite-items/common/helper.tsx b/web/core/components/workspace/sidebar/favorites/favorite-items/common/helper.tsx index 8f7fb9859e2..e2f303afe78 100644 --- a/web/core/components/workspace/sidebar/favorites/favorite-items/common/helper.tsx +++ b/web/core/components/workspace/sidebar/favorites/favorite-items/common/helper.tsx @@ -44,6 +44,6 @@ const entityPaths: Record = { export const generateFavoriteItemLink = (workspaceSlug: string, favorite: IFavorite) => { const entityPath = entityPaths[favorite.entity_type]; return entityPath - ? `/${workspaceSlug}/projects/${favorite.project_id}/${entityPath}/${favorite.entity_identifier || ""}` + ? `/${workspaceSlug}/projects/${favorite.project_id}/${entityPath}/${entityPath === "issues" ? "" : favorite.entity_identifier || ""}` : `/${workspaceSlug}`; }; diff --git a/web/core/components/workspace/sidebar/favorites/favorite-items/root.tsx b/web/core/components/workspace/sidebar/favorites/favorite-items/root.tsx index b001b7f69de..cb9449f94ea 100644 --- a/web/core/components/workspace/sidebar/favorites/favorite-items/root.tsx +++ b/web/core/components/workspace/sidebar/favorites/favorite-items/root.tsx @@ -90,7 +90,13 @@ export const FavoriteRoot: FC = observer((props) => { <> {!sidebarCollapsed && } - + {!sidebarCollapsed && ( = observer((props) => { useEffect(() => { if (URLProjectId === project.id) setIsProjectListOpen(true); + else setIsProjectListOpen(false); }, [URLProjectId]); return ( @@ -291,6 +292,7 @@ export const SidebarProjectsListItem: React.FC = observer((props) => { "p-0 size-8 aspect-square justify-center mx-auto": isSidebarCollapsed, } )} + id={`${project?.id}`} > {!disableDrag && (