diff --git a/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/members/page.tsx b/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/members/page.tsx index 458279b87..216a74631 100644 --- a/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/members/page.tsx +++ b/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/members/page.tsx @@ -10,7 +10,7 @@ import { NotAuthorizedView } from "@/components/auth-screens"; import { PageHead } from "@/components/core"; import { ProjectMemberList, ProjectSettingsMemberDefaults } from "@/components/project"; // hooks -import { SettingsContentWrapper } from "@/components/settings"; +import { SettingsContentWrapper, SettingsHeading } from "@/components/settings"; import { useProject, useUserPermissions } from "@/hooks/store"; // plane web imports import { ProjectTeamspaceList } from "@/plane-web/components/projects/teamspaces"; @@ -42,16 +42,10 @@ const MembersSettingsPage = observer(() => { return ( - - - - {t(getProjectSettingsPageLabelI18nKey("members", "common.members"))} - - - - - - + + + + ); }); diff --git a/web/core/components/project/member-list.tsx b/web/core/components/project/member-list.tsx index 4a6722619..2314bb10e 100644 --- a/web/core/components/project/member-list.tsx +++ b/web/core/components/project/member-list.tsx @@ -12,8 +12,6 @@ import { ProjectMemberListItem, SendProjectInvitationModal } from "@/components/ import { MembersSettingsLoader } from "@/components/ui"; // hooks import { useEventTracker, useMember, useUserPermissions } from "@/hooks/store"; -import { getProjectSettingsPageLabelI18nKey } from "@/plane-web/helpers/project-settings"; -import { SettingsHeading } from "../settings"; type TProjectMemberListProps = { projectId: string; @@ -58,35 +56,31 @@ export const ProjectMemberList: React.FC = observer((pr projectId={projectId} workspaceSlug={workspaceSlug} /> - - - - setSearchQuery(e.target.value)} - /> - - {isAdmin && ( - { - setTrackElement("PROJECT_SETTINGS_MEMBERS_PAGE_HEADER"); - setInviteModal(true); - }} - > - {t("add_member")} - - )} - - } - /> - + + {t("common.members")} + + + setSearchQuery(e.target.value)} + /> + + {isAdmin && ( + { + setTrackElement("PROJECT_SETTINGS_MEMBERS_PAGE_HEADER"); + setInviteModal(true); + }} + > + {t("add_member")} + + )} + {!projectMemberIds ? ( ) : ( diff --git a/web/core/components/settings/content-wrapper.tsx b/web/core/components/settings/content-wrapper.tsx index 27b8b09d5..c65418d28 100644 --- a/web/core/components/settings/content-wrapper.tsx +++ b/web/core/components/settings/content-wrapper.tsx @@ -16,7 +16,7 @@ export const SettingsContentWrapper = observer((props: TProps) => { "md:px-16": size === "lg", })} > - {children} + {children} ); }); diff --git a/web/core/components/settings/layout.tsx b/web/core/components/settings/layout.tsx index 522b6d137..ff2b567af 100644 --- a/web/core/components/settings/layout.tsx +++ b/web/core/components/settings/layout.tsx @@ -1,43 +1,10 @@ -import { useEffect, useRef } from "react"; -import throttle from "lodash/throttle"; +import { useRef } from "react"; import { observer } from "mobx-react"; -import { useUserSettings } from "@/hooks/store"; export const SettingsContentLayout = observer(({ children }: { children: React.ReactNode }) => { // refs const ref = useRef(null); - const scrolledRef = useRef(false); - // store hooks - const { toggleIsScrolled, isScrolled } = useUserSettings(); - useEffect(() => { - toggleIsScrolled(false); - const container = ref.current; - if (!container) return; - - const handleScroll = () => { - const scrollTop = container.scrollTop; - if (container.scrollHeight > container.clientHeight || scrolledRef.current) { - const _isScrolled = scrollTop > 0; - toggleIsScrolled(_isScrolled); - } - }; - - // Throttle the scroll handler to improve performance - // Set trailing to true to ensure the last call runs after the delay - const throttledHandleScroll = throttle(handleScroll, 150); - - container.addEventListener("scroll", throttledHandleScroll); - return () => { - container.removeEventListener("scroll", throttledHandleScroll); - // Cancel any pending throttled invocations when unmounting - throttledHandleScroll.cancel(); - }; - }, []); - - useEffect(() => { - scrolledRef.current = isScrolled; - }, [isScrolled]); return ( {children}