diff --git a/graph/ui-project-details/src/lib/target-configuration-details-group-container/target-configuration-details-group-container.tsx b/graph/ui-project-details/src/lib/target-configuration-details-group-container/target-configuration-details-group-container.tsx index 0b34d20955..9ccb92267a 100644 --- a/graph/ui-project-details/src/lib/target-configuration-details-group-container/target-configuration-details-group-container.tsx +++ b/graph/ui-project-details/src/lib/target-configuration-details-group-container/target-configuration-details-group-container.tsx @@ -1,4 +1,3 @@ -import { forwardRef } from 'react'; import { TargetConfigurationGroupHeader } from '../target-configuration-details-group-header/target-configuration-details-group-header'; export interface TargetConfigurationGroupContainerProps { @@ -7,27 +6,21 @@ export interface TargetConfigurationGroupContainerProps { children: React.ReactNode; } -export const TargetConfigurationGroupContainer = forwardRef( - ( - { - targetGroupName, - targetsNumber, - children, - }: TargetConfigurationGroupContainerProps, - ref: React.Ref - ) => { - return ( -
-
- -
- {children} -
-
+export function TargetConfigurationGroupContainer({ + targetGroupName, + targetsNumber, + children, +}: TargetConfigurationGroupContainerProps) { + return ( +
+ +
+ {children}
- ); - } -); +
+ ); +} diff --git a/graph/ui-project-details/src/lib/target-configuration-details-group-list/target-configuration-details-group-list.tsx b/graph/ui-project-details/src/lib/target-configuration-details-group-list/target-configuration-details-group-list.tsx index 677abd4813..05f91fd7fa 100644 --- a/graph/ui-project-details/src/lib/target-configuration-details-group-list/target-configuration-details-group-list.tsx +++ b/graph/ui-project-details/src/lib/target-configuration-details-group-list/target-configuration-details-group-list.tsx @@ -1,12 +1,9 @@ /* eslint-disable @nx/enforce-module-boundaries */ // nx-ignore-next-line import type { ProjectGraphProjectNode } from '@nx/devkit'; -import { RefObject, createRef, useEffect, useRef, useState } from 'react'; -import { Transition } from '@headlessui/react'; import { TargetConfigurationDetailsListItem } from '../target-configuration-details-list-item/target-configuration-details-list-item'; import { TargetConfigurationGroupContainer } from '../target-configuration-details-group-container/target-configuration-details-group-container'; -import { TargetConfigurationGroupHeader } from '../target-configuration-details-group-header/target-configuration-details-group-header'; import { groupTargets } from '../utils/group-targets'; export interface TargetConfigurationGroupListProps { @@ -29,80 +26,13 @@ export function TargetConfigurationGroupList({ onViewInTaskGraph, className = '', }: TargetConfigurationGroupListProps) { - const [stickyHeaderContent, setStickHeaderContent] = useState(''); const targetsGroup = groupTargets(project); - const targetGroupRefs = useRef( - Object.keys(targetsGroup.groups).reduce((acc, targetGroupName) => { - acc[targetGroupName] = createRef(); - return acc; - }, {} as Record>) - ); - const targetNameRefs = useRef( - targetsGroup.targets.reduce((acc, targetName) => { - acc[targetName] = createRef(); - return acc; - }, {} as Record>) - ); - - useEffect(() => { - window.addEventListener('scroll', isSticky); - return () => { - window.removeEventListener('scroll', isSticky); - }; - }, []); - - const isSticky = () => { - const scrollTop = window.scrollY + 30; // 30px for the header - const foundTargetGroup: string | undefined = Object.keys( - targetGroupRefs.current - ).find((targetGroupName) => { - const targetGroup = targetGroupRefs.current[targetGroupName]; - if ( - targetGroup && - targetGroup.current && - scrollTop >= targetGroup.current.offsetTop && - scrollTop < - targetGroup.current.offsetTop + targetGroup.current.offsetHeight - ) { - return true; - } - return false; - }); - if (foundTargetGroup) { - setStickHeaderContent(foundTargetGroup); - } else { - setStickHeaderContent(''); - } - }; return ( <> - -
-
- -
-
-
- {Object.entries(targetsGroup.groups).map(([targetGroupName, targets]) => { return ( {targets.map((targetName) => ( { return ( - ) => { - const target = project.data.targets?.[targetName]; - if (!target) { - return null; - } - return ( -
  • - -
  • - ); +export function TargetConfigurationDetailsListItem({ + project, + variant, + sourceMap, + onRunTarget, + onViewInTaskGraph, + targetName, + collapsable, +}: TargetConfigurationDetailsListItemProps) { + const target = project.data.targets?.[targetName]; + if (!target) { + return null; } -); + return ( +
  • + +
  • + ); +}